Releases: SysAdminDoc/ScriptVault
ScriptVault v2.0.1
ScriptVault v2.0.1
Cleanup release — removes incomplete modules and upgrades the Script Store.
Changes
Removed Modules
- AI Assistant (
dashboard-ai.js) — removed incomplete module - Analytics (
dashboard-analytics.js) — removed along withrecordAnalytics/getAnalyticsbackground handlers - Performance Dashboard (
dashboard-performance.js) — removed along withgetPerfHistory/savePerfSnapshothandlers - Onboarding Wizard (
dashboard-onboarding.js) — removed (one-time modal, low value) - OpenUserJS (
dashboard-openuserjs.js) — merged into Script Store
Upgraded
- Script Store — now multi-source: searches both Greasy Fork and OpenUserJS simultaneously with source badges, color-coded chips, and a source filter bar
Cleaned Up
- Background message handlers for removed analytics/performance features
- Quota manager no longer prunes analytics or perf history data
- Lazy-loader tab mappings updated (heatmap moved to utilities)
- What's New entries trimmed to reflect actual shipped features
- Migration module cleaned of removed feature references
Net change: -5,695 lines removed, +251 added
Downloads
ScriptVault-v2.0.1.crx— Chrome extension (sideload via chrome://extensions)ScriptVault-v2.0.1.zip— Unpacked extension / CWS upload
ScriptVault v2.0.0
ScriptVault v2.0.0
Major release — modular architecture rewrite with 32 new dashboard modules and Monaco editor migration.
Highlights
Architecture
- Dashboard split into 32 lazy-loaded modules for faster load times
- Background service worker expanded to 16,017 lines from 12+ source modules
- New esbuild config for future bundling pipeline
- Vitest test suite with 159 test cases
New Dashboard Modules
- Script Store — Built-in Greasy Fork browser
- AI Assistant — Generate, explain, fix, and security-audit scripts
- Debugger — Console capture, live reload, variable inspector
- Analytics — Detailed script usage charts and metrics
- Scheduler — Time/day/date-based script scheduling
- Theme Editor — Custom theme editor with 10 presets
- Dependency Graph — Force-directed visualization of script dependencies
- Sharing — QR code and data URL script sharing
- Profiles — Multi-profile support for different environments
- Collections — Script bundles/collections management
- CSP Reporter — Content Security Policy compatibility checker
- Onboarding — 5-step welcome wizard for new users
- Card View — Alternative card layout with favicons
- Keyboard Navigation — Full keyboard + vim mode support
- Accessibility — WCAG 2.1 AA compliance
- Pattern Builder — Visual @match pattern builder
- What's New — Per-version changelog modal
- GitHub Gist — Import/export scripts to Gist
- Template Manager — Custom script template library
- Snippets — 30+ reusable code snippets
- Standalone Export — HTML/bookmarklet export
- Firefox Compat — Firefox compatibility polyfills
- Performance Dashboard — Impact scores and monitoring
- Heatmap — Script execution heatmap
- Gamification — Scripting achievements and stats
- Recommendations — Smart script suggestions
- i18n v2 — 8 languages, 600+ keys for all new modules
New Background Modules
npm-resolve.js— npm package resolution via CDNerror-log.js— Structured error log with exportnotifications.js— Enhanced notification systemsync-easycloud.js— Easy Cloud sync via chrome.identitybackup-scheduler.js— Automatic backup schedulinguserstyles.js— UserCSS/userstyle supportpublic-api.js— External API for other extensionsmigration.js— Data migration from other managersquota-manager.js— Storage quota monitoring and management
Other Changes
- Monaco Editor migration (CDN-loaded in sandboxed iframe, replaces CodeMirror addons)
- DevTools Panel v2 — Waterfall timeline, console, body inspector
- Popup Timeline — New timeline view in popup
- Removed CodeMirror addon bundles and Yjs library (replaced by Monaco + offscreen merge)
- Firefox manifest updated to v2.0.0
Downloads
ScriptVault-v2.0.0.crx— Chrome extension (sideload via chrome://extensions)ScriptVault-v2.0.0.zip— Unpacked extension / CWS upload
ScriptVault v1.7.8
v1.7.8 — Script Registration Engine Fixes
Match Pattern Engine
- Port support —
isValidMatchPatternnow accepts patterns with ports (e.g.http://localhost:3000/*). Previously, any pattern with a port was silently rejected. - Wildcard subdomain + port fix —
matchPattern()correctly handles*.example.com:8080patterns. The host comparison was using redundant variables that didn't account for ports in subdomain matching. - convertIncludeToMatch validation — All converted patterns are now validated against
isValidMatchPattern()before being returned. Invalid conversions returnnullinstead of broken patterns that would silently fail to match.
Script Registration
- Enabled state consistency — Fixed 4 locations where
script.enabledwas checked with truthy logic instead ofscript.enabled !== false. Scripts withundefinedenabled state (e.g., from old imports) were incorrectly treated as disabled. - Registration failure logging —
registerAllScripts()now logs which scripts failed to register (was silently swallowed byPromise.allSettled).
DNR Rules
- Rule quota check —
applyWebRequestRules()now checks Chrome's 30,000 dynamic rule limit before applying rules. Previously, exceeding the limit caused a silent API error.
Assets
ScriptVault-v1.7.8.zip— Chrome Web Store ready packageScriptVault-v1.7.8.crx— Direct install CRX3 file
ScriptVault v1.7.7
v1.7.7 — GM_audio Fix, Firefox Compatibility, CSS Fixes
GM API Fixes
- GM_audio was completely non-functional —
addStateChangeListener()referencedwindow.__ScriptVault_ChannelID__which was never defined; all audio state events were silently dropped. Fixed to use the correctCHANNEL_IDvariable. - GM_audio event listener leak — the message handler was added but never removed when
removeStateChangeListener()was called. Now stores handler reference and properly cleans up when the last listener is removed.
Firefox MV3 Compatibility
- Keyboard shortcuts restored —
manifest-firefox.jsonhad emptycommands: {}. Now includes all 3 shortcuts (Alt+Shift+S popup, Alt+Shift+D dashboard, Alt+Shift+E toggle scripts). - Offscreen API guard —
ScriptAnalyzer._ensureOffscreen()now checkschrome.offscreenexistence before calling, gracefully falling back to regex analysis on Firefox.
CSS Fixes
- Z-index hierarchy fixed — Find Scripts overlay (50 -> 55) now correctly stacks above editor overlay (50). Setup warning banner (99 -> 101) now visible above sticky header (100).
- Modal responsiveness —
min-width: min(400px, 90vw)andmax-width: min(500px, 95vw)prevent modals from overflowing on narrow viewports.
Assets
ScriptVault-v1.7.7.zip— Chrome Web Store ready packageScriptVault-v1.7.7.crx— Direct install CRX3 file
ScriptVault v1.7.6
v1.7.6 — Null Safety Hardening
Systematic null check pass across all UI pages to prevent TypeError crashes from missing DOM elements.
Fixes by File
- sidepanel.js —
$()helper now returns a dummy div instead of null, preventing crashes when panel HTML elements are missing - devtools-panel.js — Same null-safe
$()helper - install.js — Optional chaining on
btn-cancel,btn-install,toggle-codeevent listeners - popup.js — Null check on blacklist
.menu-item-textquerySelector before setting textContent - dashboard.js — Command palette input null guard; storage editor save/rename/delete/keySpan buttons all use optional chaining
Impact
These were all "silent crash" scenarios where a missing element would throw a TypeError that blocks subsequent code from running. The sidepanel and devtools panel fixes are especially important since those pages load in constrained contexts (side panel, devtools) where DOM might not be fully available.
Assets
ScriptVault-v1.7.6.zip— Chrome Web Store ready packageScriptVault-v1.7.6.crx— Direct install CRX3 file
ScriptVault v1.7.5
v1.7.5 — Monaco Migration: Toolbar & Editor Features Restored
The Monaco editor migration left many editor toolbar buttons broken because the adapter was missing CodeMirror methods that dashboard.js depends on. This release restores full functionality.
Restored Toolbar Buttons
- Undo / Redo — now route through Monaco's built-in undo/redo
- Fold All / Unfold All — use Monaco's native fold actions (was crashing with
foldCode is not a function) - Comment Toggle (Ctrl+/) — uses Monaco's
commentLineaction instead of broken CodeMirror line-by-line logic - Find / Replace —
Ctrl+FandCtrl+Hnow open Monaco's built-in search - Lint — shows info toast (Monaco handles diagnostics automatically)
Fixed Features
- Snippet Insert — clicking a snippet template now actually inserts text at the cursor position (was a no-op)
- Beautify Code —
getOption('indentWithTabs')andgetOption('indentUnit')now return correct defaults instead ofundefined - Auto-hint trigger —
showHint()is now a safe no-op instead of throwing (Monaco handles completions internally)
Technical Details
- Monaco adapter: added 12 new CodeMirror-compatible methods
- Editor sandbox iframe: added
insert-textandactionmessage handlers - Dashboard: branched Monaco vs CodeMirror paths for fold, comment, lint operations
Assets
ScriptVault-v1.7.5.zip— Chrome Web Store ready packageScriptVault-v1.7.5.crx— Direct install CRX3 file
ScriptVault v1.7.4
v1.7.4 — Critical Dashboard Fix
Bug Fix
Dashboard tabs (Settings, Utilities, Trash) were completely non-functional.
Root cause: During the Monaco editor migration, show-hint.min.js and userscript-hint.js were removed from dashboard.html script loads, but initEditor() still referenced CodeMirror.hint.userscript for autocomplete options. This threw a TypeError that crashed initEditor(), which prevented initEventListeners() from ever running — making all tab buttons, import, settings, and utilities completely unclickable.
Fixes
- Guard
hintOptionswithCodeMirror.hint?.userscriptoptional chaining - Wrap
initEditor()in try-catch so editor init errors never block tab navigation - CRX now uses CRX3 format (Chrome dropped CRX2 support)
Assets
ScriptVault-v1.7.4.zip— Chrome Web Store ready packageScriptVault-v1.7.4.crx— Direct install CRX3 file
ScriptVault v1.7.3
v1.7.3 — Memory Leaks, Missing Handlers & Validation
Background Service Worker
- Added missing
GM_unregisterMenuCommandhandler — previously, unregistering menu commands was a no-op; commands persisted in session storage forever - Menu command cleanup on script delete — session storage entries for deleted scripts are now removed
- Notification callback leak fix —
_notifCallbacksentries now cleaned up when auto-timeout fires (not all platforms trigger theonClosedevent) - XHR request ID collision fix — local request IDs now use a sequential counter instead of
Math.random(), eliminating the possibility of two concurrent requests sharing an ID - GM_cookie validation —
GM_cookie_setandGM_cookie_deletenow validate requiredurlandnameparameters before callingchrome.cookies, preventing silent failures
Dashboard
- Bulk enable/disable error handling — individual failures in bulk operations no longer crash the entire batch; errors are logged and remaining scripts continue processing
- Auto-delete error handling —
closeScriptTabauto-delete for unmodified template scripts now has.catch()to prevent unhandled promise rejections
Assets
ScriptVault-v1.7.3.zip— Chrome Web Store ready packageScriptVault-v1.7.3.crx— Direct install CRX file
ScriptVault v1.7.2
v1.7.2 — Linter, Install Page & Sort Improvements
Linter Severity Fixes
- Unknown
@grantvalues — upgraded from warning to error (unknown grants fail at runtime) - Invalid
@sandboxvalues — upgraded from warning to error (breaks script execution) @grant none+ GM API usage — upgraded from info to warning (API calls will silently fail)- Added
GM_webRequestto autocomplete hints and grant value suggestions - Removed duplicate entries from metadata directive hints
Install Page Hardening
- Fixed XSS vector in icon error fallback (
innerHTML→textContent) - Fixed auto-close race condition — timer now cancels when user clicks Close or Open in Dashboard
Dashboard Sort
- Default sort is
Updateddescending (newest first) — confirmed working - Clicking the
Updatedcolumn header now defaults to descending (newest first) instead of ascending
Other
- Network log capacity increased from 500 → 2000 entries for better DevTools panel utility
Assets
ScriptVault-v1.7.2.zip— Chrome Web Store ready packageScriptVault-v1.7.2.crx— Direct install CRX file
ScriptVault v1.7.1
v1.7.1 — Security & Bug Fix Release
Security Fixes
- postMessage origin validation — Content script bridge now uses
location.origininstead of'/'for all window.postMessage calls - Monaco adapter — Frame messages now scoped to iframe origin instead of wildcard
* - Offscreen document — Added sender ID validation to reject cross-extension messages
- Script signing — Fixed base64url encoding mismatch between sign and verify operations
Critical Bug Fixes
- Side Panel & DevTools were non-functional — Fixed message key mismatch (
type:→action:) that prevented all background communication - Side Panel toggle broken — Fixed
id→scriptIdparameter name for script settings - Duplicate script installations —
installFromUrl()now detects existing scripts by name+namespace and updates instead of duplicating - Popup dropdown — Fixed clicks inside dropdown menu closing it prematurely
Improvements
- DevTools panel uses
Promise.allSettledfor partial failure recovery - Side panel shows error state with retry instead of blank on connection loss
- WebDAV validates URL before upload/download (prevents null crash)
- Google Drive uses random multipart boundary (prevents body collision)
- Token refresh failures now logged for Google, Dropbox
- OneDrive validates upload data before sending
- Static analyzer entropy detection lowered to 80 chars with adaptive threshold
- Build artifacts (*.crx, *.zip, *.pem) added to .gitignore
Assets
ScriptVault-v1.7.1.zip— Chrome Web Store ready packageScriptVault-v1.7.1.crx— Direct install CRX file