Skip to content

feat: super extension — AI-native gating, cockpit, interactive findings, multi-root#1

Merged
nugehs merged 2 commits into
mainfrom
feat/super-extension
Jun 14, 2026
Merged

feat: super extension — AI-native gating, cockpit, interactive findings, multi-root#1
nugehs merged 2 commits into
mainfrom
feat/super-extension

Conversation

@nugehs

@nugehs nugehs commented Jun 14, 2026

Copy link
Copy Markdown
Owner

Turns the gate VS Code / Cursor extension from a read-only verdict mirror into a full editor surface, and lifts the engine cap that was starving it. Engine 0.2.0 → 0.3.0, extension 0.3.0.

Tier 0 — AI-native gating (the headline)

The assistant writing the code is now checked by the same gate as CI:

  • @gate chat participant (@gate can this ship?, @gate /why)
  • gate_check Language Model tool that agent mode can call before it declares "done"
  • MCP server provider that registers gate's own gate mcp server with the editor
  • All three feature-detected → graceful on forks that lack the APIs

Tier 1 — feedback loop

  • Debounced run-on-save + in-flight runs superseded (child process killed via AbortController)
  • Lifted the hard 5-findings-per-domain cap in the engine JSON (MAX_FINDINGS guard) so the editor gets every located finding
  • Multi-root workspaces — every folder checked, worst verdict in the status bar

Tier 2 — interactive findings

Quick Fixes (mute / open docs), hovers, CodeLens, and reversible per-workspace finding muting.

Tier 3 — presence

A webview verdict cockpit in gate's own Activity Bar container, a getting-started walkthrough, and an install-the-engine flow.

Tier 4 — trust & polish

gate.strict / gate.codeLens / gate.debounceMs settings, clickable rule links in Problems, extensionKind: workspace, and marketplace metadata.

Verification

  • Engine npm run ci: 60 tests + version check ✓
  • Extension npm test: 36 tests ✓ (13 new for multi-root/muting, 9 new headless activation smoke that runs the real activate() against a mock vscode and exercises the cockpit, chat participant, LM tool and MCP provider)
  • .vsix packages cleanly — vsce accepts all three new contribution points

Deferred (engine-side, cross-tool)

  • --changed incremental scan so saves don't cold-spawn four full scanners
  • Engine-honored // gate-ignore suppression (muting is currently extension-level)

Release

Not tagged here. v0.3.0 → engine release; ext-v0.3.0 → extension release workflow (Marketplace + Open VSX).

🤖 Generated with Claude Code

nugehs added 2 commits June 14, 2026 10:24
…e findings, multi-root

Grow the gate extension from a read-only verdict mirror into a full editor
surface, and lift the engine cap that starved it.

Engine (0.2.0 -> 0.3.0)
- Findings are no longer capped at 5 per domain in the JSON (MAX_FINDINGS
  runaway guard instead). The editor gets every located finding, not a sample.
- server.json + lockfiles synced to 0.3.0.

Extension (clients/vscode 0.3.0)
- AI-native gating: @gate chat participant, a gate_check Language Model tool
  agent mode can call before it says "done", and an MCP server provider — so
  the assistant writing the code is checked by the same gate as CI.
- Verdict cockpit: an interactive webview in gate's own Activity Bar container.
- Interactive findings: Quick Fixes (mute / open docs), hovers, CodeLens.
- Feedback loop: debounced run-on-save, in-flight runs superseded (child killed).
- Multi-root workspaces; gate.strict / gate.codeLens / gate.debounceMs settings;
  getting-started walkthrough; install-the-engine flow.

Tests: engine 60, extension 27. .vsix packages clean.
… a mock vscode

Inject a fake `vscode`, run the compiled activate(), and exercise the cockpit
render, chat participant, LM tool and MCP provider end-to-end. Catches runtime
wiring bugs the type-checker can't, without a live editor. +9 tests (36 total).
@nugehs nugehs merged commit 4740804 into main Jun 14, 2026
8 checks passed
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