Changelog
Every release, documented.
Fixes now land in the file that actually threw
Applying a fix could write it into the wrong file
A JavaScript stack trace lists the innermost frame first, and the code walked it the other way, so the apply target was the caller rather than the function that threw. When a trace named no file at all, which is what a React key warning raised from inside react-dom looks like, there was no anchor and the write landed in whatever file happened to be open. In one of our own sessions that meant appending a JSX snippet to the bottom of index.html. Twice. DebugAI now resolves the innermost frame that belongs to your project, and when it cannot place a fix with confidence it says so and does nothing instead of guessing.
Debugging a failing test finally sends real project context
pytest, jest, vitest and mocha each frame a failure differently, and all three places in the stack that parse error text handled a plain traceback but not a runner’s. The practical effect was no file paths, so no codebase retrieval, on the errors people hit most. All three parsers now agree against a corpus of fourteen real output shapes. Two things follow: a failing test groups with other runs of the same failure in Team Error Memory, and self-verification runs on test-shaped errors where it used to bail out.
A successful apply is no longer reported as a failure
The write went through and the confirmation read the wrong result, so it told you it had not. Nothing was lost, but the message was wrong about the file on your disk.
The overlay no longer hangs on an unanswered debug-adapter call
Every call is bounded, and if one does not come back the status bar names the one that stopped rather than sitting there. Browser stack frames delivered from another OS, such as a Windows path arriving in a WSL or container workspace, now resolve too.
Listing metadata only
Renamed, and the keyword list nearly doubled
No code changed. The extension is now "DebugAI: Root Cause AI Debugger That Reads Your Codebase", and the keywords went from 16 entries to 29. This came out of measuring where the listing actually sits in Marketplace search, which had never been checked: #6 for "ai debugger" but #85 for "ai debugging", same listing and same keywords, so the name is what search matches on and near-literally. "VS Code" was the token spent to make room, since it is redundant on the VS Code Marketplace and wrong on Open VSX, where the readers are on Cursor, Windsurf and VSCodium.
Republish with analytics compiled in
Nothing to relearn
2.7.0 was built with a mistyped build variable, so it shipped a placeholder analytics key and reported no usage events. If you are on 2.7.0 everything works, we simply could not see which parts you use.
Sign in from the editor, and no more shadowed keybinding
Sign in without finding, copying or pasting a key
Run DebugAI: Sign In. The editor gets a short code, opens your browser, and stores the key itself once you confirm. The code lands on your clipboard so you paste rather than retype it, and the wait is cancellable. Free account, 10 debugs a day, no card. Pasting a dbg_ key still works if you prefer it, or if the machine has no browser.
Every "no API key" dead end now signs you in instead
The first-run message, the error you get when analyzing without a key, and the setup nudge all used to send you to a web page to fetch a key by hand. They now sign you in where you already are.
One-click connect works in Cursor, Windsurf and VSCodium
The extension passes its own URI scheme when it opens the dashboard, so the connect link comes back as cursor://, windsurf:// or vscodium:// instead of always assuming vscode://. That link silently did nothing outside VS Code before, which covers every install that came from Open VSX.
The Ctrl+Shift+D keybinding is gone, for real this time
That chord is VS Code’s own Run and Debug view, and shadowing it broke a core editor feature. The 2.0.6 changelog said this was removed; the manifest still declared it, so it never actually was. Every command runs from the command palette, and you can bind your own shortcut in Preferences: Open Keyboard Shortcuts.
Verified badges, mechanical apply, one outcome pipeline
Every fix now shows its verification state, all three of them
"Verified" means a mechanical check passed (currently syntax and import resolution). "Failed check" means DebugAI disproved its own fix before you saw it, and capped the confidence hard. "Not verified" means the confidence number is the model’s own estimate — nothing checked it. We label that third case instead of hiding it; hover the badge for exactly what was (or wasn’t) checked.
Mechanical apply
Fixes now carry exact old/new string edits derived server-side from your own code, not re-generated by the model. Apply uses them first (exact match, fail-closed) and falls back to the proven line-hint applier when they don’t match. Fewer mis-applied patches, same preview-diff-confirm flow.
One outcome pipeline
Fix feedback from the editor and from AI agents (via @debugai/mcp 2.0’s new report_outcome tool) now lands in the same place, so confirmed fixes strengthen your team’s error memory no matter who applied them.
Proactive Scan: catch bugs before they throw
New command, DebugAI: Scan Workspace (Proactive)
Reviews the files you changed on your git branch (or the active file if your tree is clean) for latent bugs before they crash. Auto-indexes them and pulls semantic neighbors from your project index, so each file is reviewed with cross-file context.
Cross-file detection
Catches defects a single-file linter can’t see: wrong arguments to a function defined in another module, return-shape and type mismatches across files, a config value that divides by zero elsewhere, interface violations on a caller.
Ranked findings with one-click fix
Each finding has a severity, explanation, exact file:line, and a suggested fix you preview and apply with the same diff flow as debug.
Tuned against false positives
Benchmarked on 28 original test cases: 20/20 detection (12/12 cross-file), 0 false positives on 8 clean-code controls.
Team Error Memory: learn from every error your team has already seen
"Seen before" and "Fixed before" badges
When an error matches one your project has hit before, the results panel flags it. If a confirmed fix for that exact error already exists, you get a "Fixed before" badge instead of "Seen before," so you know the answer is proven.
Feedback now feeds the memory
Applying, copying, or rating a fix links back to the originating debug session, so confirmed fixes are promoted into your team’s shared error memory and surface first the next time the same error shows up.
Native VS Code theme, smarter fixes, debug history
Results panel now matches your VS Code theme
The DebugAI panel uses VS Code's own theme colors, fonts, and codicons instead of a hardcoded dark design. Light themes, high-contrast modes, and custom themes all render natively.
Smarter, safer fixes from the engine
Fixes now target exact line ranges so applied patches land precisely where they should. Confidence scores are honestly calibrated: 90+ means the bug was verified in your actual code. When a large file is only partially analyzed, the engine automatically runs a second pass with the full content before answering.
Debug history on your dashboard
A new History tab on the dashboard lists every debug session: the error, language, framework, model used, confidence, whether the fix was applied, and how long the analysis took. Free plan shows the last 7 days; paid plans keep everything.
Terminal capture without touching your clipboard
Analyze Terminal Error now reads command output and exit codes directly through VS Code shell integration. The old clipboard method only remains as a fallback for shells without integration support.
Webview security and telemetry compliance
The results panel runs under a strict Content-Security-Policy with per-render script nonces. The extension now fully respects VS Code's global telemetry setting, including turning it off mid-session.
Model upgrade across all tiers
Analysis runs on Claude Haiku 4.5 across the board, with Claude Sonnet 4.6 handling complex cross-file errors on paid tiers.
MCP server: use DebugAI from any AI agent
DebugAI is now an MCP server
The extension exposes a debug_error tool over the Model Context Protocol. Claude Code, Cursor agent mode, and any MCP-aware agent can call DebugAI directly and get root cause plus ranked fixes across your codebase. Auto-registers in VS Code 1.101+ and uses your existing API key.
Agent-aware error handling
Quota and rate-limit responses now tell the calling agent whether retrying makes sense, so agents stop hammering the API once you hit your cap.
One-click VS Code connection
Connect VS Code with one click, no copy-paste
Your dashboard now has a "Connect VS Code" button in the Setup and Settings tabs. Click it: VS Code opens, your key is stored in encrypted SecretStorage, and the connection is verified automatically. No command palette, no pasting, no manual steps.
Secure URI auth handler in the extension
The extension registers a vscode://debugai.debugai/auth handler. Keys are validated for correct format and length, stored encrypted, and confirmed against the API before marking as connected.
Safe override when a key already exists
If you already have a key configured and click Connect VS Code from a different account, VS Code shows a confirmation dialog before replacing anything.
Manual key entry still works as fallback
Ctrl+Shift+P → "DebugAI: Set API Key" remains fully functional. If the URI flow does not work (VS Code not installed, browser policy), the copy method is shown immediately below the button.
Onboarding accuracy and demo conversion fix
Walkthrough no longer interrupts users who already have a key
The Getting Started walkthrough now only opens for new users without an API key. Existing users upgrading to a new version will no longer see the onboarding flow.
Step 1 walkthrough rewritten, no more false "indexing" message
The first walkthrough step previously claimed your codebase was being indexed before you had set a key. It now correctly explains the sign-in flow and what happens after your key is connected.
Demo panel now prompts you to get a key
After viewing the demo analysis, a "Debug your own code → Get free key at debugai.io" button appears so you can act on what you just saw without hunting for a sign-up link.
Status bar tooltip updated to Ctrl+Shift+P
Tooltip now reads "Ctrl+Shift+P → DebugAI: Analyze Error" across all status bar states, matching the actual command palette workflow.
Sign-up nudge delay extended to 90 seconds
The follow-up prompt after clicking "Get Free Key →" now waits 90 seconds instead of 30, giving you time to complete sign-up before being asked to paste your key.
Email, webhook, and onboarding fixes
"See Demo →" in install notification
New users can now try a live demo instantly from the install notification, no API key needed.
Follow-up prompt after sign-up
30 seconds after clicking "Get Free Key →", DebugAI reminds you to paste your key into VS Code.
Fixed Clerk webhook, welcome emails now send
The Next.js middleware was intercepting /api/webhooks/clerk before the route handler. Excluded from matcher, so user.created events now reach the handler and trigger Loops welcome email.
Onboarding fixes and signup funnel
Install notification now links to sign-up
New users see "Get Free Key →" which opens the dashboard directly. No more dead-end prompt asking for a key you don't have yet.
Status bar guides new users
When no API key is set, the status bar shows "Get Free Key" and opens the dashboard on click.
Walkthrough re-shows on each version update
The Getting Started walkthrough now re-opens with every extension update so existing users see new features.
Fixed broken logo and dashboard links on setup page
The DebugAI logo and "Open Dashboard" button on debugai.io/start were broken. Both now navigate correctly.
Fixed keybinding conflict with VS Code debugger
The Ctrl+Shift+D shortcut conflicted with VS Code's built-in Run and Debug view. Removed: use Ctrl+Shift+P → DebugAI commands instead.
Faster and more accurate debugging
Smarter error routing
Simple errors like NameError and SyntaxError resolve in under 2 seconds. Complex cross-file errors get deeper analysis automatically.
Better root cause detection
Files mentioned in your stack trace are always analyzed, even when they are not semantically similar to the error message. Config files, session managers, and decorators are now found reliably.
Git-aware debugging
Recent file changes are included with every debug request. When a regression causes a bug, DebugAI surfaces it immediately.
Reliable during outages
Automatic retry with fallback means you get results even when the primary AI service has issues.
Guided first-run experience
A new walkthrough shows you how to use DebugAI before your first error.
Demo command
Try DebugAI without needing an error ready.