Jump to content

szabesz

Members
  • Posts

    3,056
  • Joined

  • Last visited

  • Days Won

    20

Everything posted by szabesz

  1. Nice solution! @Mikel Thanks for sharing! I will surely try it out. I used the style's menu for solving this, but your module is sure a lot more user-friendly.
  2. @maximus Thanx a lot! A little request: for Cline to pick up a SKILL (unfortunately) the name must exactly match the folder's name `name: context`. So `name: ProcessWire Context - example.com` does not work. In Cline, one can turn SKILLs on/off to save on token usage. Obviously, skills turned off will be excluded. Currently, mine looks like this: Well, the UI is clearly not designed for a lot of skills and mass management of them, but it's still in beta, so I hope it will be improved in the future. I did experiment with how Cline handles the context skill. Here is what I found: Test 1: Finding Child Pages Task: What pages are under the 'About Us' page? Without the context skill: It queries the database and is actually able to give the same information, plus a bit more (page IDs, for example). This uses about 19-24k of the 200k context window. With the context skill: I specifically asked: "What pages are under the 'About Us' page? Do not query the database. Use the SKILL named context to figure it out." Using the skill only is (of course) a lot faster. Both ways used about 19-24k context, but with the skill only, Cline just read 2 files (agents/skills/context/tree.json and agents/skills/context/structure.txt) and outputted: Under the "About Us" page (template: basic-page), there are 3 child pages: Terms & Conditions (template: basic-page) Disclaimer (template: basic-page) Privacy Policy (template: basic-page) Test 2: Explaining Repeater Matrix Fields Task: Explain what Repeater Matrix fields are used by the system, and for what. I tried asking both: "Explain what Repeater Matrix fields are used by the system, and for what. Do not query the database." and just: "Explain what Repeater Matrix fields are used by the system, and for what." Both resulted in similar outcomes, and the database was not queried. Cline read 12 files (the first two were agents/skills/context/matrix-templates.json and agents/skills/context/structure.txt) and also analyzed the template files. For a 99k context usage cost, I got a general overview, not just the structure, but how they are actually used. Restricted to context skill only: Next, I tested this: "Explain what Repeater Matrix fields are used by the system, and for what. Only query the skill named context and nothing else." For a 21k context window usage, I got the structure and info on what they are used for. Naturally, because it was no allowed to analyze the templates, it could not completally figure out how they are actually used in practice. I think Cline is great. It is – of course – an improvement over a simple chat window when the developer needs to manually provide files and context for each session. I am yet to test its Memory Bank and other advanced features, but even my basic Skills setup is very powerful already. And thanks to z.ai's GLM-5.1, using it is pretty cheap.
  3. Turns out, I started using Cline in PHPStorm instead of Junie. I used up all credits – that came with Junie's trial period – in no time. However, that was not enough time to decide if Junie is worth the money or not. My main issue was that I want to use agent Skills, but Junie is still in "beta" state in that regard and it has no useful documentation on its Skills feature either. Being new to coding with AI agents, I do not want to spend money on something I do not have enough time to play with in advance. So I looked for alternatives, and found the Cline plugin (extension), and sort of fell in love with it at first sight :D I have a z.ai subscription (GLM Coding Lite-Yearly Plan) which was cheap thanks to last year's Black Friday deal (thanks to @wbmnfktr for mentioning z.ai to me) and the GLM-5.x models are pretty good (https://docs.z.ai/guides/llm/glm-5#coding-performance-on-par-with-claude-opus-4-5) so the Cline + GLM-5.x combo works well, cheap and is relatively easy to get started with. My subscription has a "5 Hours Usage Quota" and the maximum I used it so far was only 6% percent in a 5-hour coding session, giving me plenty of room for a lot more usage. So this setup is cheap and powerful, I "just" need to develop my own Skills library, on which I already started to work on. (BTW, JetBrains IDEs do support 3rd party LLM providers, but z.ai has a non-standard BASE URL, and the IDE does not support that which is a shame. It fails just because of that.) Anyway, thanks to the output path being configurable in the settings of Contex, I pointed it to .agents/skills (that's where Cline saves its files, contrary to Cline's official doc page which is erroneously states it is [~/].cline/skills), so now the module generates files into .agents/skills/context. So far so good, but a Skill to be used properly by the agent needs a proper SKILL.md file too. At least that is my understanding. So I vibe coded a BASH script to generate SKILL.md for me, I just need to run it after each Context generation process, and I get the following in .agents/skills/context/SKILL.md : I am not sure this is the best SKILL.md content but the LLM suggested this and it aligns with Cline's recommendation (after I asked the model to make it align...), so I started using/testing it. @maximus I wonder if you could add support for optionally generating SKILL.md, too. The issue with SKILL.md files is that agents seem to have certain preferences regarding their content (ie. the format of the information is presented in them), so maybe a template-based approach could be adopted. I am just brainstorming here as I have no specific idea about how such a template option could be implemented. Thanks in advance for considering.
  4. Woah! Congrats! I'm loving this :) http://suneditor.com/sample/index.html This one? Could you please compare it to ProcessWire's WYSIWYG editors?
  5. szabesz

    I'm back

    Nice to see you again! What? Has it really been 7? Feels like yesterday...
  6. @ai_slop No worries. I have news regarding my issue. Finally, today Kimi's support replied! (They are definitely having trouble replying to support requests in a timely manner.) Their reply was a step-by-step guide on how to get to their subscription page, the one we are talking about. They also asked for a screenshot of it, even though I provided it in both of my support request emails. Even though I supposedly deleted my account, I could just log in again as usual. So, I made a full browser window screenshot of the same page you and I have already shared our screenshot of, in which there is no "Cancel Plan" button. Support asked: "If there are any other questions, please contact us." I replied: "Now what?" Just a week or two, and they will probably reply again... Cheers,
  7. Hello, Recently I did an extensive research and found https://maileroo.com/pricing to be the best value compared to similar services I found. I registered with them, but the project I will use it for has not yet reached the point where it is actually needed. The ProcessWire instance in question can also handle the initial email sending volumes using the VPN’s own SMTP service.
  8. @Peter Knight Thanks for the work on this, Peter. Gemini AI actually helped me realize that it should work seamlessly with my PhpStorm + Cline + z.ai setup as well. Since your module includes the local Node.js MCP script, I should just be able to point my local Cline instance to that file via its MCP settings, and it will handle the sync workflow right inside PhpStorm. Looking forward to the release!
  9. @_Roy_ Just a quick tip: if mod_security will be enabled and you run into troubles, most of the time the only option is to disable mod_security.
  10. For a "brand new" host (one I've never used before), I always start with a clean installation of ProcessWire because the installer runs its requirements checks during installation. After successfully installing ProcessWire, I replace all files and the database, adjust the config settings, and then it's ready to go.
  11. I left out that I meant this option to be an individual field level setting, not a global one. There are always pros and cons, but this solution also ensures that the default UX/UI of the admin is not changed too much, and if users use both interfaces (standard PW and MediaHub), then less deviation from what they are used to will generate less confusion.
  12. I prefer this one, along with the option to configure which source is shown by default (preferably the first tab is always the default, if possible). A cleaner, more organized interface is better. If image sources are merged, even when page-context images are listed first, how can I tell the actual source? In some cases that does matter. Avoiding confusion up front is the better solution, in my opinion.
  13. @ai_slop Thanks for sharing your experience! Is it what I made this screenshot of? See: I only had the "Upgrade Plan" button, as you can see. Since I have already deleted the account, I have no way to take any further action, except to write to their support.
  14. I recommend not subscribing to a Plaid plan at kimi.com. I wanted to cancel my subscription, but there was no such option, so I had to delete the account, as that was the only option I could find. I wrote to support, but they never replied. I removed my saved credit card on Stripe's interface, but I still receive a message every other day: "...payment to MOONSHOT AI PTE. LTD. was unsuccessful We attempted to charge your card for your MOONSHOT AI PTE. LTD. subscription again, but were unsuccessful. Please update your billing information to continue your subscription." For a theoretically deleted account...
  15. Hello, Interesting "topic". However, what's the site's URL?
  16. Lots of us are interested, I think. @Peter Knight any plans to release it?
  17. As for specs driven development, yesterday I watched this: And started to dive into it using my cheap but pretty good z.ai yearly subscription.
  18. Sure, my question was just too broad, sorry about that. But you nailed it down anyway. I want to implement a page builder based on Repeater Matrix and nested repeaters will likely be required. Does ProDrafts have sort of "partial support" for repeaters or no support at all?
  19. Thank you for the intel! What would you recommend if I need to decide in mid‑April? Should I still buy and rely on the "old" ProDrafts? It wouldn’t be ideal to implement features based on the "old" ProDrafts only to refactor things shortly afterward to "align with the future".
  20. @ryan I have active ProFields license, but I have no access to that board. Can you please provide up-to-date information on what we can expect? I need to tell a client about the state of draft/version management in ProcessWire, and I do not want to provide outdated information.
  21. Gemini AI Pro is crazy good these days. I was stuck why the replace hook had no effect, and this solved it (courtesy of Gemini from Google is in italic): The reason your hook is firing (as proven by your bd() output) but $p->path, $p->url, and $p->httpUrl are reverting back to the original /parent/ path is due to a hook priority conflict, usually caused by ProcessWire's Multi-Language modules (or an SEO/routing module). Here is exactly what is happening under the hood: Your addHookBefore runs, sets $event->replace = true, and sets $event->return to /blog/. ProcessWire skips its native Page::path() method because of the replace flag. However, another module (like LanguageSupportPageNames) has an addHookAfter attached to Page::path. That module runs after your code, looks at the $page object, recalculates the original path from the database tree, and silently overwrites your $event->return before it finally gets handed back to your $p->url call. To fix this, you need to change your hook to an addHookAfter, remove the replace flag, and bump the priority so your code is the absolute last thing to run. Change your hook to the following: $wire->addHookAfter('Page::path', function (HookEvent $event) { $page = $event->object; if ($page->template == 'original-parent') { // Overwrite whatever the core (or other modules) generated $event->return = "/blog/$page->name/"; } }, ['priority' => 1000]); // Priority > 100 ensures this runs AFTER core modules And yes, I have multilingual support installed, and this solution works.
  22. @WireCodex It's strange that you changed your profile name. Now we need to get used to it ;)
  23. Also see: https://processwire.com/talk/topic/31761-developing-while-biking/#findComment-252011
×
×
  • Create New...