feat(extension): v0.0.2 — activation summary + healthcheck webview + self-test + reset#132
Open
George-iam wants to merge 2 commits into
Open
feat(extension): v0.0.2 — activation summary + healthcheck webview + self-test + reset#132George-iam wants to merge 2 commits into
George-iam wants to merge 2 commits into
Conversation
…lf-test, reset
Five quality-of-life features that close the silent-failure UX hole
surfaced during v0.0.1 install (users had no clear signal when hooks
or auth quietly failed during activation):
1. ActivationReport + per-step failure surfacing (extension)
- extension/src/activation-report.ts: small class that tracks
ok/fail per step (binary, mcp, hooks, auth, setup). At the end
of activate(), shows a single info notification on full success
("AXME Code ready: ✓ MCP ✓ Hooks ✓ Auth (cursor_sdk) ✓ KB (33
dec, 6 mems)") OR a warning with [Show output] button when
anything failed.
- extension.ts: every step now wrapped in runStep() helper that
records to the report AND surfaces a per-step warning toast on
failure. Previously hooks/auth/setup errors landed only in the
output channel with no user-visible signal.
2. AXME: Show Status → webview (extension)
- extension/src/status-webview.ts: structured healthcheck panel
with rows for extension version, binary, MCP server boot probe
(spawns serve + initialize handshake), hooks file (parses
~/.cursor/hooks.json, counts axme entries per kind), auth mode,
KB stats per workspace, last audit timestamp. Each row has a
✓/⚠/✗ status icon. Refresh button on the panel.
- commands.ts: axme.showStatus now opens the webview instead of
dumping to output channel. Old text-dump is preserved as
axme.showStatusText command for power users.
3. axme-code self-test CLI subcommand (core)
- src/self-test.ts: probes four runtime contracts —
• atomicWrite to a temp .axme-code/ path
• Cursor + Claude hook adapter parse (verifies Shell→Bash
normalization) and deny emit shapes (Cursor: exit 2 + flat
JSON; Claude: exit 0 + hookSpecificOutput)
• MCP server boot via stdio initialize handshake (5s timeout)
- cli.ts: 'self-test' case routes to runSelfTest(). Exits 0 on
pass, 1 on any failure. Designed for CI scripts and for users
debugging an install from terminal.
- Smoke-tested: bundled .vsix binary passes 6/6 checks
(storage write, parse Cursor, deny Cursor, parse Claude, deny
Claude, MCP boot).
4. AXME: Reset command (extension)
- extension/src/reset.ts: confirm-dialog command that clears
~/.cursor/hooks.json axme entries + ~/.config/axme-code/auth.yaml.
Optional flag to also wipe ~/.config/axme-code/cursor.yaml
(Cursor SDK key). Per-project .axme-code/ storage is NEVER
touched — that's the user's curated knowledge.
- commands.ts + package.json contribute axme.reset.
5. Misc package.json polish
- extension version bump 0.0.1 → 0.0.2.
- New commands surfaced in command palette: axme.showStatusText,
axme.reauthAuditor, axme.reset.
What this does NOT include (deferred to v0.0.3):
- VS Code branch with cooperative axme_safety_check tool
- @cursor/sdk bundled into per-platform .vsix
- vscode-test framework + headless e2e
- Welcome view / walkthrough
Verified locally: bundled binary self-test 6/6 pass. tsc clean. .vsix
builds at 519 KB.
#!axme pr=none repo=AxmeAI/axme-code
…tion/error states - setup CLI now prints "Open a new chat in Cursor" when invoked with --ide=cursor instead of "Run 'claude'". Eliminates user confusion when the extension's setup-controller wraps the CLI. - Status bar adds two non-healthy visual states: yellow "Setup required" warning (when workspace has no .axme-code/) and red "Activation failed" error (when any step in the activation report failed). Each retargets click to axme.showStatus so the user can drill into details. Addresses user feedback that the corner notification toast is barely visible — the status bar is always-on and prominent when colored. #!axme pr=132 repo=AxmeAI/axme-code
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Five quality-of-life features that close the silent-failure UX hole from v0.0.1.
✓ MCP ✓ Hooks ✓ Auth (cursor_sdk) ✓ KB (33 dec, 6 mems))extension/src/activation-report.ts+ refactoredextension.ts[Show output]button on failure (was silent before)extension.tsrunStep()helperextension/src/status-webview.tsaxme-code self-testCLI subcommand — probes storage write + hook parse/deny for both adapters + MCP server boot. Exits 0/1 for CI. Tested on bundled .vsix binary: 6/6 PASSsrc/self-test.ts+src/cli.ts~/.cursor/hooks.jsonaxme entries +~/.config/axme-code/auth.yaml(optionallycursor.yamltoo). Per-project.axme-code/NEVER touchedextension/src/reset.tsVersion bump: extension
0.0.1→0.0.2.What this does NOT include (deferred to v0.0.3)
axme_safety_checkMCP tool.vsixwould grow from 519 KB to ~17 MB)Test plan
npx tsc --noEmitclean (core + extension)npm run buildcleanaxme-code self-test6/6 PASS on bundled binarynpm test604 / 604 pass (no test changes)Rollout
This PR is non-publishing — CI builds 5 platform-specific
.vsixartifacts for download. Open VSX publish only fires onextension-v*tag (human action per D-024).After merge: planned tag
extension-v0.0.2once v0.0.1 has been smoke-tested in production for a few days. v0.0.1 was the initial public release — v0.0.2 is the polish iteration.🤖 Generated with Claude Code