Jump to content

adrian

PW-Moderators
  • Posts

    11,182
  • Joined

  • Last visited

  • Days Won

    372

Everything posted by adrian

  1. A few tweaks and a major improvement to the d() and db() calls from the Console panel - these now make use of Tracy's Lazy loading option so the DOM is not populated with huge nested objects - it gets generated dynamically as you toggle open each element with the object. This should solve the massive browser slowdown I am sure we've all experienced at times when dumping lots of large objects. This together with the change from localStorage to IndexedDB has made a huge improvement to the Console panel.
  2. Looking forwarding to trying out the memory feature @ryan Here's something of related interest: https://github.com/memvid/claude-brain I do love this description of the issue: You: "Remember that auth bug we fixed?" Claude: "I don't have memory of previous conversations." You: "We spent 3 hours on it yesterday" Claude: "I'd be happy to help debug from scratch!"
  3. Hi @PWaddict - just wondering how things are working out for? Did you also try the new v2?
  4. New v5 namespaced version is released:
  5. @maximus - sorry, not really, but happy to accept a PR if you're willing.
  6. Well, it's been about a year in the making, but v5 is finally available. I have upgraded a lot of sites to it now without issues, but I would still caution you to be ready to revert (or delete module) files if the namespace changes cause any issues - there were a lot early on. The two new banner features are: the console panel can now run very long running scripts (there is a one hour limit just so that broken scripts don't run forever) which is great for massive batch modifications or the like. The dumps recorder panel (either manually loaded or via Enable Guest Dumps) now live polls for new dumps so you don't need to continually load the page to see the entries as they are logged. Have fun! Breaking Changes - Minimum requirements bumped to ProcessWire 3 and PHP 7.1 - Removed legacy Tracy 2.5.x core branch and FireLogger support - Panel DOM IDs now include `ProcessWire-` prefix — update any custom CSS/JS targeting panel IDs Namespace Support - Full `namespace ProcessWire` support across all panels and POST processing files - Autoloader bridge for seamless non-namespaced to namespaced module migration - Third-party panels bridged automatically via `class_alias()` Security - Comprehensive security hardening: XSS sanitization, CSRF protection on all panels, directory traversal fixes, CSP nonces on all inline scripts, cookie SameSite enforcement, and input sanitization New Features - Console — long-running scripts automatically switch to background polling, surviving gateway timeouts; session locks released so you can continue browsing while scripts run; storage migrated to IndexedDB - PW Version Switcher — extracted into its own class with automatic version reverting on failure - Dumps Recorder live polling — live-polls for new dumps from other users and guest sessions - File Editor BlueScreen integration — exception page links open in the built-in file editor - Various smaller additions across Diagnostics, API Explorer, Request Info, and PW Info panels Bug Fixes - PHP 8.x compatibility fixes for `htmlspecialchars()`, `trim()`, and `isset` null handling - Fixed Console panel snippet and polling issues, including cache-busting for CDN/proxy environments - Fixed File Editor not opening files linked from BlueScreen exception pages - Fixed Adminer URL/namespace issues and thumbnail viewer path handling - Fixed Debug Mode panel to use modern API methods instead of deprecated ones - Fixed API Explorer "What's New" section and reflection errors for hooked methods - Fixed "unsaved changes" false positive when saving pages in PW admin - Windows path and line ending fixes Performance - Session lock contention reduced - Various loop and query optimizations
  7. Thanks Ryan - just starting to play with this now. Remember that for some reason Claude needs to be reminded to add a version check around around curl_close Deprecated: Function curl_close() is deprecated since 8.5, as it has no effect since PHP 8.0 in site/modules/AgentTools/AgentToolsEngineer.php:592
  8. In case it helps anyone, these are the settings I've been using for while which I believe make a huge difference to how it looks and its usability: And then in custom CSS section: :root { --pw-text-color: #444; --pw-muted-color: #999; --pw-button-radius: 10px; --pw-main-background: #fbfbfb; --pw-menu-item-background-hover: #EEEEEE; } html { font-size: 15px; } .PageList .PageListItem:hover { box-shadow: inset 0 0.5px 0 0 #ccc, inset 0 -0.5px 0 0 #ccc; } h1, .uk-h1 { font-size: 1.6rem; } .uk-card :is(a, .uk-link) { text-decoration: none; } .InputfieldHeaderHidden { --pw-border-color: transparent }
  9. 211 71 46 Keep in mind that most of these are the parent/child templates for page reference "tag" fields.
  10. No plans on that from me - I was just seeing if Claude could do it - I think it would be something that would require core modifications and maybe modules that plugged into the core abstraction layer for each DB.
  11. I actually played around and got Claude to build an DB abstraction layer for PW that would allow using Postgres etc. Seems like there is definitely potential on this front.
  12. Sorry about that @PWaddict - both versions should be fixed now.
  13. Hi @PWaddict - I have fixed that in 1.4.0 but I have also created a new 2.0 branch if you'd like to test it. It contains a lot of bug fixes along with removing the need for DOMDocument and eval() Please let me know if you find any issues in 2.0
  14. If anyone is interested in being able to set script-src-attr to "none" on the frontend of their sites, the namespaced branch of Tracy now uses eventListeners everywhere - no more inline handlers.
  15. Did you all notice that hovering menu items on their website preloads the content? Not sure that's a great idea. It makes things feel snappy, but it makes me think of Chrome's preload feature and its privacy concerns: https://www.malwarebytes.com/blog/product/2026/02/chrome-preloading-could-be-leaking-your-data-and-causing-problems-in-browser-guard
  16. Just thought it's worth noting that on modern setups, that 64K limit shouldn't apply anymore. If you run: lsblk -f and the replace the "/dev/nvme0n1p1" with the appropriate partition in this: sudo tune2fs -l /dev/nvme0n1p1 | grep features It will return something like: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent 64bit flex_bg sparse_super large_file huge_file dir_nlink extra_isize metadata_csum If you see "dir_nlink" then the limit doesn't apply.
  17. I am sure many of you have seen @Ex-user's comments about AI data centres in the in the ProcessWire 3.0.257 – Core updates thread. It seems like we have lost them from the community, but I do think a Pub topic about the darker side of AI is worthwhile. I have watched the video that was posted and here is another one worth a watch. I must admit that Claude code is making me much more productive, so it's a strange situation to be in. I do worry about all of the environmental and human health concerns posted in that other video and all of the societal ones in this video and so I think it's important that we are at least aware of these things when we talk about AI in ProcessWire. Let's keep the dialog respectful and productive.
  18. Thanks @monollonom - my main concern is really the upgrade process from the non-namespaced to the new namespaced version. Until a couple of days ago, this would break the entire site, but hopefully that is being managed now.
  19. Not really sure this is a tutorial, but if you're struggling with large PNG files, here is a nice little hook to compress them with pngquant. Obviously you need to install pngquant (https://pngquant.org/) first and exec() can't be disabled. $wire->addHookAfter('Pageimage::size', function(HookEvent $event) { $img = $event->return; // the resized Pageimage variation $path = $img->filename; // Only process PNGs if (strtolower(pathinfo($path, PATHINFO_EXTENSION)) !== 'png') return; // Skip if already optimized (optional marker file approach) $marker = $path . '.pngquant'; if (file_exists($marker)) return; // Run pngquant (overwrites in place, quality 65-80) $cmd = sprintf( 'pngquant --quality=65-80 --force --output %s -- %s 2>&1', escapeshellarg($path), escapeshellarg($path) ); exec($cmd, $output, $returnCode); // Mark as optimized so we don't re-process on subsequent calls if ($returnCode === 0 || $returnCode === 99) { // 99 = quality target not met, kept original touch($marker); } });
      • 6
      • Like
      • Thanks
  20. One of the reasons I no longer use ChatGPT for anything - I don't want to get political here, but IYKYK. I would love to boycott Google and Amazon completely as well. I do my best on these fronts, but it's basically impossible.
  21. Hi everyone, Well, I finally have a version of Tracy which is ProcessWire namespaced. This has not been easy, although the last issue (which was breaking sites on upgrade from an old non-namespaced version) finally seems to be resolved thanks to some AI help. Unfortunately because this version took so long I lost patience with maintaining separate branches so it also includes a move to IndexedDB instead of LocalStorage for Console data (since I added the multiple tabs if you dumped a lot of content across several tabs it was possible to hit the 5MB LocalStorage limit). It also includes a lot of other random fixes and security improvements (although I think mostly hypothetical given the access restrictions to it). I have also dropped support for PHP < 7.1 (inline with PW). If anyone would be willing to test the upgrade from https://github.com/adrianbj/TracyDebugger/archive/refs/heads/namespaced.zip I'd really appreciate it. Please only test on a dev site and if you do run into any issues, the best way to recover is to delete TracyDebugger folder from /site/modules folder and go back to the admin and reinstall, but hopefully this is no longer a problem. Thanks, Adrian
  22. @mattgs - I am very environmentally conscious (it was my career in a previous life). The decisions we make in life are hard and never black and white. If AI can make us be more effective developers so we can create things faster and better, then we might actually be able to help people and the planet in the process, or maybe volunteer for good if we have more spare time available. Maybe AI can help us to figure out ways to get off oil faster, or preserve species on the brink of extinction. I really don't know and I have a lot of concerns about AI in the bigger picture, but we're definitely not going to stop it at this point, so let's try to use it for good as best we can.
  23. Thanks @maximus - looks good so far - I'll keep testing and let you know if I find any other issues.
  24. Thanks for the fixes @maximus - unfortunately I am still getting instantly blocked when not logged in. I am testing on localhost (in case that might make a difference). Even after clearing the cache files, the block is triggered on my first visit. Anything I can do to help debug?
×
×
  • Create New...