1.4.0 (2026-06-26)
This release brings low-level refactoring in preparation for Firefox MV3, along with editor experience improvements (edit menu, Ctrl+Shift+F formatting, Monaco quick fix), multi-platform search engine selection for script discovery, new capabilities such as @unwrap / window.onurlchange / @run-at context-menu, comprehensive hardening of cloud storage sync reliability, and a large batch of GM API, UI, and stability fixes (including a long-running memory leak and prototype pollution security vulnerabilities). The ScriptCat AI Agent is available as a preview in dev / Beta builds and is not yet enabled in the stable release.
🚀 Major New Features
- 🧪 ScriptCat AI Agent (Preview — available in dev / Beta builds only, not yet enabled in stable) — AI-powered agent system with conversational interaction, tool calling, Skill system, MCP protocol, and more (#1324) (by @CodFrm)
- ✨ Support the
@unwrapmetadata tag (#1213) (by @cyfung1031) - ✨ Implement TM's
window.onurlchangevia the Navigation API (#1315) (by @cyfung1031) - ✨ Restore
@run-at context-menusupport (#1442) (by @cyfung1031) - ✨ Script discovery supports multi-platform search engine selection (#1295) (by @CodFrm)
- ✨ Add more icon service providers (#1333) (by @cyfung1031)
- ✨ Add an update-check icon to the "last updated" column in the script list (#1304) (by @CodFrm)
- ✨ Improve edit-conflict and script-name-conflict handling (#1223) (by @cyfung1031)
🧑💻 Editor
- ✨ Add an edit menu to the editor (find, replace, undo, etc.) (#1303) (by @CodFrm)
- ✨ Editor supports Ctrl+Shift+F formatting (#1415) (by @cyfung1031)
- ✨ Improve Monaco quick fix and user-script metadata hints (#1461) (by @cyfung1031)
- 🐛 Fix Ctrl-F / Ctrl-H shortcuts (#1312) (by @cyfung1031)
- 🐛 Fix ESLint fix feature not working #1079 (#1184) (by @cyfung1031)
- 🐛 Fix editor CSS layout issues (#1460) (by @cyfung1031)
- 🐛 Fix ScriptEditor script list display in light theme (#1288) (by @CodFrm)
- 🐛 Fix and improve ScriptEditor issues (#1258) (by @cyfung1031)
⚡️ Performance Improvements
- 🚑 Fix a potential memory leak during long-running ScriptCat sessions (#1401) (by @cyfung1031)
- ⚡️ Remove Baidu filesystem dependency on global DNR rules, switch to per-request cookie disabling (#1377) (by @cyfung1031)
- ⚡️ Optimize multi-platform search engine selection for script discovery (#1379) (by @cyfung1031)
- ⚡️ Use a monospace font for the install page loadingStatus to avoid jitter (#1381) (by @cyfung1031)
- ⚡️ Optimize pushValue handling (#1403) (by @cyfung1031)
- ⚡️ More complete permission checks and better userScript permission hints (#1251) (by @cyfung1031)
- ⚡️ Improve MessageConnect memory management and cleanup mechanism (#1248) (by @cyfung1031)
🐛 Bug Fixes
- 🐛 Harden cloud storage sync reliability (Dropbox / WebDAV / Google Drive / OneDrive authentication, path handling, and retry logic) (#1374 ~ #1395) (by @cyfung1031)
- 🐛 Fix multiple cloud sync issues: OneDrive zero-byte upload, Google Drive / OneDrive error normalization, S3 custom metadata modifiedDate (#1405) (#1406) (#1408) (by @cyfung1031)
- 🐛 Remove the WebDAV verify write-probe to avoid false negatives on services with a non-writable root (e.g. Nutstore) (#1445) (by @CodFrm)
- 🐛 Fix cross-origin request failure when site access permission is missing (#1477) (by @cyfung1031)
- 🐛 Fix Edge Android mobile popup adaptation #686 (#1507) (by @CodFrm)
- 🐛 Fix white background flash during initial load #1497 (#1498) (by @cyfung1031)
- 🐛 Fix message connections (GM API / ports) not being cleaned up properly (#1474) (by @cyfung1031)
- 🐛 Fix
@matchtemplate mismatch when search is missing (#1466) (by @cyfung1031) - 🐛 Add
protoBaseDescsto fix ancestor-class inheritance in the Tampermonkey semi-sandbox (#1463) (by @cyfung1031) - 🐛 Fix missing null handling for
GM_xmlhttpRequestmsgConn (#1433) (by @cyfung1031) - 🐛 Fix GM xhr not handling abnormal onloadend correctly (#1412) (by @cyfung1031)
- 🐛 Fix ScriptEditor list dynamic update and display issues (#1414) (by @cyfung1031)
- 🐛 Fix session rule count issue with concurrent xhr (#1353) (by @cyfung1031)
- 🐛 Fix entire page crash caused by an invalid cron expression (#1327) (by @cyfung1031)
- 🐛 Fix all scripts failing when a single script times out during batch update check (#1265) (by @cyfung1031)
- 🐛 Add extensionEnv handling for isIncognito, userAgent, and run-in (#1368) (by @cyfung1031)
- 🐛 Fix onboarding guide button being partially hidden #1396 (#1398) (by @cyfung1031)
- 🐛 Fix tooltip being obscured on the script management page #1386 (#1387) (by @Xdy1579883916)
- 🐛 Fix Sidebar causing abnormal resizing in card mode #1179 (#1373) (by @cyfung1031)
- 🐛 Fix incorrect origin set when installing local files via drag-and-drop (#1371) (by @cyfung1031)
- 🐛 Fix language switching prompt message (#1380) (by @cyfung1031)
- 🐛 Improve log display UI (#1372) (by @cyfung1031)
- 🐛 Fix UserConfigPanel CSS (#1361) (by @cyfung1031)
- 🐛 Use
Object.create(null)for the empty object in create_context (#1397) (by @cyfung1031) - 🐛 Fix silent update and connect permission logic for subscribed scripts (#1201) (by @cyfung1031)
- 🐛 Fix log page query button not refreshing the time (#1294) (by @CodFrm)
🔒 Security Improvements
- 🔒 Fix prototype pollution via untrusted YAML user-config keys (#1494) (by @qdzsh)
- 🔒 Fix all npm dependency security vulnerabilities (#1350) (#1364) (#1365) (by @cyfung1031)
♻️ Refactoring & Compatibility
- ♻️ Low-level refactoring in preparation for Firefox MV3 adaptation (#1457) (#1480) (by @cyfung1031)
- ♻️ Refactor script resource update logic (updateResource) and concurrency control, restore resource cache compatibility (#1193) (by @cyfung1031)
- ♻️ Replace jszip with JSZipp for ZIP handling (backup import / export), and remove the unused jszip dependency (#1479) (by @cyfung1031)
- ♻️ Unify Offscreen ↔ ServiceWorker communication over the postMessage channel (#1299) (by @CodFrm)
- ♻️ Refactor VSCodeConnect code (#1170) (by @cyfung1031)
- ⚡️ Compress ts.worker.js to 4MB to pass AMO validation, fix MV3 background permission error (#1221) (by @cyfung1031)
🌐 Internationalization
- 🌐 Fix multi-language terminology translations (mainly improving Traditional Chinese) and add translation terminology guidelines (#1468) (by @cyfung1031)
Others
- ✨ Switch the fetchIconByDomain icon service to scriptcat.org (#1268) (by @cyfung1031)
- 🔥 Remove Crowdin and ach-UG pseudo-language related content (#1385) (by @CodFrm)
Full changelog: Compare v1.3.2...v1.4.0