Skip to content

feat(extension): v0.0.2 — activation summary + healthcheck webview + self-test + reset#132

Open
George-iam wants to merge 2 commits into
mainfrom
feat/vscode-extension-v0.0.2-20260511
Open

feat(extension): v0.0.2 — activation summary + healthcheck webview + self-test + reset#132
George-iam wants to merge 2 commits into
mainfrom
feat/vscode-extension-v0.0.2-20260511

Conversation

@George-iam
Copy link
Copy Markdown
Contributor

Summary

Five quality-of-life features that close the silent-failure UX hole from v0.0.1.

# Feature Where
1 ActivationReport — single summary toast at end of activation (✓ MCP ✓ Hooks ✓ Auth (cursor_sdk) ✓ KB (33 dec, 6 mems)) extension/src/activation-report.ts + refactored extension.ts
2 Per-step failure surfacing — each activate() step now shows a non-modal warning toast with [Show output] button on failure (was silent before) extension.ts runStep() helper
3 AXME: Show Status webview — full healthcheck table: binary version, MCP boot probe, hooks count, auth mode, KB stats per workspace, last audit extension/src/status-webview.ts
4 axme-code self-test CLI 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 PASS src/self-test.ts + src/cli.ts
5 AXME: Reset command — confirm-dialog clear of ~/.cursor/hooks.json axme entries + ~/.config/axme-code/auth.yaml (optionally cursor.yaml too). Per-project .axme-code/ NEVER touched extension/src/reset.ts

Version bump: extension 0.0.10.0.2.

What this does NOT include (deferred to v0.0.3)

  • VS Code branch + cooperative axme_safety_check MCP tool
  • @cursor/sdk bundled per-platform (.vsix would grow from 519 KB to ~17 MB)
  • vscode-test framework + headless e2e tests
  • Welcome view / walkthrough on first activation

Test plan

  • npx tsc --noEmit clean (core + extension)
  • npm run build clean
  • axme-code self-test 6/6 PASS on bundled binary
  • npm test 604 / 604 pass (no test changes)
  • Manual: install local .vsix in Cursor, verify summary toast appears + Show Status webview renders correctly

Rollout

This PR is non-publishing — CI builds 5 platform-specific .vsix artifacts for download. Open VSX publish only fires on extension-v* tag (human action per D-024).

After merge: planned tag extension-v0.0.2 once 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

…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
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant