You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
- Script conflict detection: `findConflictingScripts()` compares @match/@include patterns across all scripts
73
76
- Info panel shows full perf stats (runs, avg/total time, errors, last URL) with Reset Stats button
74
77
- Popup shows color-coded execution time badges (green <50ms, yellow <200ms, red 200ms+)
78
+
- Script templates: 6 templates in `SCRIPT_TEMPLATES` object in dashboard.js (blank, page modifier, CSS injector, API interceptor, SPA script, cross-site request)
79
+
- Version history: `script.versionHistory` array (max 3 entries), auto-saved on `UpdateSystem.applyUpdate()`. Rollback via `rollbackScript` message handler
80
+
- Storage quota monitor: `updateStats()` renders quota bar + warning toast at 85% of 10MB Chrome limit
81
+
-`getVersionHistory` and `rollbackScript` message handlers in background.core.js
82
+
- Tag filtering: dynamic `@tag` options in filter dropdown, `getFilteredScripts()` supports `tag:` prefix filters
83
+
- Drag-and-drop file install: drop .user.js or .zip files onto dashboard body to install. `showDropOverlay()` for visual feedback
84
+
- Shift+click multi-select: checkbox click handler supports Shift key for range selection via `state._lastCheckedId`
85
+
-@require library browser: cdnjs API search in Externals panel. Inserts `@require` before `==/UserScript==` in editor
86
+
- GM_audio.addStateChangeListener/removeStateChangeListener: background watches via `chrome.tabs.onUpdated` for `audible`/`mutedInfo` changes, forwards via `audioStateChanged` message through content script bridge
87
+
- Linter enhancements: duplicate @match, duplicate @grant, duplicate @require detection; broad match pattern warnings; missing @version/@description info hints
88
+
- Autocomplete snippets: GM_xmlhttpRequest, GM_notification, GM_download insert full code templates with [snippet] suffix; added missing grant values (window.close/focus/onurlchange, GM_audio, GM_addElement, etc.)
- OpenUserJS embedded search: API-based in-dashboard results (falls back to external if API unavailable)
96
+
- Help panel: Getting Started guide, Dashboard Shortcuts section, GM API Quick Reference (4 categories)
97
+
- Batch URL install: paste multiple URLs (one per line) to install in sequence, with progress
98
+
- Script notes: personal notes textarea per-script, saved in script.settings.notes
99
+
- Script diff view: line-by-line diff modal comparing version history entries vs current code, with add/delete/context coloring
100
+
- Author display: shows @author under script name in table rows
101
+
- Description tooltip: hovering script name in table shows @description
102
+
- Editor Ctrl+/ shortcut mapped to comment toggle button
103
+
- Version diff button: "Diff" button alongside "Rollback" in version history
104
+
- Script pinning: star button in action icons, pinned scripts sort to top via stable sort. Persisted as settings.pinned
105
+
-@match pattern tester: test any URL against all installed scripts, shows matching + disabled state, in Help panel
106
+
- Activity log: all toast messages logged to Activity Log section in Utilities, timestamped, capped at 50 entries
107
+
- Script health indicators: rows with errors get red left border, stale scripts (>180 days) get yellow border
108
+
- Tampermonkey backup import: `importTampermonkeyBackup` message handler parses .txt format with multiple scripts separated by blank lines
109
+
- Full-text code search: prefix search with `code:` to search inside script source code, also searches author field
110
+
- Duplicate detection in Find Scripts: installed badge + green border on already-installed scripts, Install button shows "Reinstall"
111
+
- Column visibility toggle: modal with checkboxes for 8 toggleable columns, persisted in settings._hiddenColumns, applied via applyColumnVisibility()
112
+
- Copy install URL: clipboard copy button in script row actions (only shown when downloadURL/updateURL exists)
113
+
- Install page audit (16 fixes): script size/line count display, @connect domains section, @antifeature warnings, @run-at/noframes display, version downgrade warning, inline install errors (no more alert()), large script warning (>500KB), success page shows "Open in Dashboard" button with 5s auto-close, proper extension icon instead of emoji, entrance animation, keyboard shortcuts (Enter=install, Escape=cancel), CodeMirror theme matches catppuccin/oled, @tag display, resource tooltips, show 8 URL patterns (was 5)
114
+
- Popup audit (12 fixes): ScriptVault branding in header, URL bar showing current hostname, total script count in footer, contextual empty state with GreasyFork link, error dots on scripts with errors, stagger animation on script items, click name opens editor (not toggle), dropdown adds Copy URL + Pin/Unpin actions
115
+
- Command Palette: Ctrl+K opens fuzzy-search command palette. Actions, navigation, settings, and all installed scripts searchable. Arrow keys + Enter navigation. Grouped by category.
116
+
- Static Analysis Engine: bg/analyzer.js with 28 pattern detectors across 7 categories (execution, data, network, fingerprint, obfuscation, mining, hijack). Risk score 0-100. Runs on install page with color-coded results. High-entropy string detection.
117
+
- Script Folders: FolderStorage module in storage.js. CRUD operations. Drag scripts into folders. Collapsible folder headers in table. Folder color dots. "New Folder" button in toolbar. "Move to Folder" in script actions. Folder delete with confirmation.
118
+
- Build system: bg/ directory auto-included in build-background.sh
119
+
- Network Request Log (Phase 3C): bg/netlog.js logs all GM_xmlhttpRequest calls. Stores method, URL, status, duration, response size, script name. getNetworkLog/clearNetworkLog message handlers. Dashboard UI with stats bar + scrollable log. HAR export.
120
+
- Workspaces (Phase 4B): bg/workspaces.js manages named snapshots of enabled/disabled script states. Create/activate/save/delete. Dashboard UI with workspace list + switch/save/delete buttons. Activating a workspace re-registers all scripts.
121
+
- Performance Budgets (Phase 5B): configurable default budget (ms) in settings. Per-script budget override. Scripts exceeding budget get purple right border (row-over-budget). Budget setting UI in Utilities panel.
122
+
123
+
## Bug Audit (2026-03-21)
124
+
- Fixed: NetworkLog duration calculation used `_netLogEntry.timestamp` which was undefined; replaced with dedicated `_netLogStartTime` variable
125
+
- Fixed: `state.folders`, `state._collapsedFolders`, `state._lastCheckedId`, `state._quotaWarned` not initialized in dashboard state object
126
+
- Fixed: `switchTab('help')` in command palette failed because help tab is a header icon, not a `.tm-tab`; added special case handling
127
+
- Verified: All version strings match (v1.6.0 across manifest, manifest-firefox, content.js, popup.js, dashboard.js)
128
+
- Verified: All bg/ modules load before background.core.js in build output
129
+
- Verified: `escapeHtml` available in popup.js (shared/utils.js loaded first)
130
+
- Verified: Column index mapping still correct after pin button addition (pin is inside actions TD, not a new column)
0 commit comments