Skip to content

Releases: SysAdminDoc/ScriptVault

ScriptVault v2.0.1

25 Mar 01:18

Choose a tag to compare

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 with recordAnalytics/getAnalytics background handlers
  • Performance Dashboard (dashboard-performance.js) — removed along with getPerfHistory/savePerfSnapshot handlers
  • 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

25 Mar 00:49

Choose a tag to compare

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 CDN
  • error-log.js — Structured error log with export
  • notifications.js — Enhanced notification system
  • sync-easycloud.js — Easy Cloud sync via chrome.identity
  • backup-scheduler.js — Automatic backup scheduling
  • userstyles.js — UserCSS/userstyle support
  • public-api.js — External API for other extensions
  • migration.js — Data migration from other managers
  • quota-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

24 Mar 20:57

Choose a tag to compare

v1.7.8 — Script Registration Engine Fixes

Match Pattern Engine

  • Port supportisValidMatchPattern now accepts patterns with ports (e.g. http://localhost:3000/*). Previously, any pattern with a port was silently rejected.
  • Wildcard subdomain + port fixmatchPattern() correctly handles *.example.com:8080 patterns. 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 return null instead of broken patterns that would silently fail to match.

Script Registration

  • Enabled state consistency — Fixed 4 locations where script.enabled was checked with truthy logic instead of script.enabled !== false. Scripts with undefined enabled state (e.g., from old imports) were incorrectly treated as disabled.
  • Registration failure loggingregisterAllScripts() now logs which scripts failed to register (was silently swallowed by Promise.allSettled).

DNR Rules

  • Rule quota checkapplyWebRequestRules() 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 package
  • ScriptVault-v1.7.8.crx — Direct install CRX3 file

ScriptVault v1.7.7

24 Mar 20:33

Choose a tag to compare

v1.7.7 — GM_audio Fix, Firefox Compatibility, CSS Fixes

GM API Fixes

  • GM_audio was completely non-functionaladdStateChangeListener() referenced window.__ScriptVault_ChannelID__ which was never defined; all audio state events were silently dropped. Fixed to use the correct CHANNEL_ID variable.
  • 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 restoredmanifest-firefox.json had empty commands: {}. Now includes all 3 shortcuts (Alt+Shift+S popup, Alt+Shift+D dashboard, Alt+Shift+E toggle scripts).
  • Offscreen API guardScriptAnalyzer._ensureOffscreen() now checks chrome.offscreen existence 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 responsivenessmin-width: min(400px, 90vw) and max-width: min(500px, 95vw) prevent modals from overflowing on narrow viewports.

Assets

  • ScriptVault-v1.7.7.zip — Chrome Web Store ready package
  • ScriptVault-v1.7.7.crx — Direct install CRX3 file

ScriptVault v1.7.6

24 Mar 20:03

Choose a tag to compare

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-code event listeners
  • popup.js — Null check on blacklist .menu-item-text querySelector 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 package
  • ScriptVault-v1.7.6.crx — Direct install CRX3 file

ScriptVault v1.7.5

24 Mar 19:42

Choose a tag to compare

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 commentLine action instead of broken CodeMirror line-by-line logic
  • Find / ReplaceCtrl+F and Ctrl+H now 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 CodegetOption('indentWithTabs') and getOption('indentUnit') now return correct defaults instead of undefined
  • Auto-hint triggershowHint() 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-text and action message handlers
  • Dashboard: branched Monaco vs CodeMirror paths for fold, comment, lint operations

Assets

  • ScriptVault-v1.7.5.zip — Chrome Web Store ready package
  • ScriptVault-v1.7.5.crx — Direct install CRX3 file

ScriptVault v1.7.4

24 Mar 19:36

Choose a tag to compare

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 hintOptions with CodeMirror.hint?.userscript optional 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 package
  • ScriptVault-v1.7.4.crx — Direct install CRX3 file

ScriptVault v1.7.3

24 Mar 16:18

Choose a tag to compare

v1.7.3 — Memory Leaks, Missing Handlers & Validation

Background Service Worker

  • Added missing GM_unregisterMenuCommand handler — 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_notifCallbacks entries now cleaned up when auto-timeout fires (not all platforms trigger the onClosed event)
  • 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 validationGM_cookie_set and GM_cookie_delete now validate required url and name parameters before calling chrome.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 handlingcloseScriptTab auto-delete for unmodified template scripts now has .catch() to prevent unhandled promise rejections

Assets

  • ScriptVault-v1.7.3.zip — Chrome Web Store ready package
  • ScriptVault-v1.7.3.crx — Direct install CRX file

ScriptVault v1.7.2

24 Mar 15:08

Choose a tag to compare

v1.7.2 — Linter, Install Page & Sort Improvements

Linter Severity Fixes

  • Unknown @grant values — upgraded from warning to error (unknown grants fail at runtime)
  • Invalid @sandbox values — 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_webRequest to autocomplete hints and grant value suggestions
  • Removed duplicate entries from metadata directive hints

Install Page Hardening

  • Fixed XSS vector in icon error fallback (innerHTMLtextContent)
  • Fixed auto-close race condition — timer now cancels when user clicks Close or Open in Dashboard

Dashboard Sort

  • Default sort is Updated descending (newest first) — confirmed working
  • Clicking the Updated column 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 package
  • ScriptVault-v1.7.2.crx — Direct install CRX file

ScriptVault v1.7.1

24 Mar 14:55

Choose a tag to compare

v1.7.1 — Security & Bug Fix Release

Security Fixes

  • postMessage origin validation — Content script bridge now uses location.origin instead 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 idscriptId parameter name for script settings
  • Duplicate script installationsinstallFromUrl() 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.allSettled for 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 package
  • ScriptVault-v1.7.1.crx — Direct install CRX file