Skip to content

Commit d725249

Browse files
committed
chore: update handoff for v1.7.0 release
1 parent 95d2656 commit d725249

1 file changed

Lines changed: 56 additions & 68 deletions

File tree

Plans/handoff.md

Lines changed: 56 additions & 68 deletions
Original file line numberDiff line numberDiff line change
@@ -2,26 +2,13 @@
22

33
**Date:** 2026-04-09
44
**Branch:** main
5-
**Last commit:** bc2c70a (pre-release) → v1.7.0 release pending
5+
**Last commit:** 95d2656 chore: release v1.7.0
66

77
---
88

99
## Session Summary
1010

11-
This session was fully AX-driven. Starting from a clean v1.5.3 baseline, the session built and shipped two releases (v1.6.0 and v1.7.0) across four major workstreams:
12-
13-
1. **v1.6.0** — Three parallel workstreams via isolated worktree agents:
14-
- `docs/AX.md` — First-class AX constitution (goal, budgets, 5 principles, tool schema standards, error message standard, CI enforcement, extension checklist)
15-
- `vslsp uninstall-mapper <lang>` — CLI gap closed; full install/uninstall symmetry
16-
- `tests/http.test.ts` rewrite — 4 brittle source-text string matches → 16 real HTTP behavior tests
17-
18-
2. **AX Audit Round 1** — Audited all 8 tool schemas against the constitution. Found 8 gaps (G1-G8). Fixed G1-G5, G7-G8 (schema/description improvements + file_filter 0-match runtime warning). Flipped G6 (`depth` default `"full"``"signatures"`) with tests explicitly requesting `"full"` where needed.
19-
20-
3. **AX Audit Round 2 (background agent)** — Post-fix validation. Found 7 remaining gaps (F1-F7). `withDiagnosticsAxWarning` and `file_filter` 0-match warning had zero test coverage. `enrichError` missing. Single-file warning message weak. `get_diagnostics` param descriptions lacked 50KB threshold reference.
21-
22-
4. **DevTeam Fix Loop** — Engineer+Reviewer loop implemented all 7 findings. Reviewer caught one gap (B5 conditional guard → made unconditional). All shipped.
23-
24-
5. **v1.7.0** — Released with all of the above.
11+
This session was fully AX-driven across two releases. Starting from v1.5.3, the session produced v1.6.0 (AX constitution, `uninstall-mapper`, real HTTP behavior tests) and v1.7.0 (AX enforcement made rigorous: `depth` default flipped to `"signatures"`, `get_diagnostics` oversize warning, 13 AX ratchet tests, `enrichError` for agent-actionable OS errors). Two audit rounds and one DevTeam Engineer+Reviewer loop ensured every AX principle is now enforced at schema, runtime, and test levels.
2512

2613
---
2714

@@ -30,6 +17,7 @@ This session was fully AX-driven. Starting from a clean v1.5.3 baseline, the ses
3017
### Committed Work (this session)
3118

3219
```
20+
95d2656 chore: release v1.7.0
3321
bc2c70a test: strengthen B5 — unconditional size assert ensures warning path always executes
3422
0296bea test: AX ratchet tests B5/A3b/A4b/A5+; fix F3 enrichError, F4 single-file msg, F6 param descriptions
3523
771afc9 fix: AX warning for unfiltered get_diagnostics responses
@@ -43,67 +31,62 @@ d00a1ca feat: add vslsp uninstall-mapper command
4331

4432
### Uncommitted Changes
4533

46-
None at session end. Working tree clean after release commit.
34+
None. Working tree clean. Only `.claude/` (untracked worktree metadata) appears in `git status`.
4735

4836
### Build & Test Status
4937

5038
- TypeScript type check: **clean** (`bun run tsc --noEmit`)
51-
- Unit tests: **49 pass, 0 fail** (http ×16, types ×10, store ×8, mapper ×6, typescript ×5, rust ×4)
52-
- E2E tests: 70+ pass (AX contract tests A1-A6, B1-B5, plus schema and daemon tests)
53-
- RustMapper binary uninstalled during smoke test — reinstall with `vslsp install-mapper rust`
54-
55-
### AX Ratchet Tests (locked in CI)
56-
57-
| Test | What it locks |
58-
|------|--------------|
59-
| A1 | `depth:"types"` < 30KB AND non-empty |
60-
| A2 | `depth:"signatures"` < 200KB AND non-empty |
61-
| A3 | `file_filter` scopes to matching files only |
62-
| A3b | `file_filter` 0-match emits warning with pattern + guidance |
63-
| A4 | `max_files` caps file count and summary |
64-
| A4b | `max_files: 0` returns empty files with valid schema |
65-
| A5 | Auto-detect 0-files emits warning with `"typescript"`, `"rust"`, `"csharp"` |
66-
| A6 | AX byte-budget auto-truncation fires for oversized output |
67-
| B1 | `severity:"error"` returns errors only |
68-
| B2 | `limit` caps diagnostic count |
69-
| B3 | `severity` + `limit` combine correctly |
70-
| B4 | `severity:"error"` + `limit:20` < 10KB |
71-
| B5 | Unfiltered `get_diagnostics` > 50KB emits AX warning; absent when filtered |
39+
- Unit tests: **49 pass, 0 fail**
40+
- E2E tests: 70+ pass including 13 AX ratchet tests
41+
- Released: **v1.7.0** — tagged and pushed, CI triggered
42+
43+
### Worktree / Parallel Agent State
44+
45+
Two stale worktrees remain from this session's parallel W1/W2 agents — both fully merged into main:
46+
47+
| Worktree | Branch | Last commit | Status |
48+
|----------|--------|-------------|--------|
49+
| `.claude/worktrees/agent-a53e50a8` | `worktree-agent-a53e50a8` | `e261cf3` docs: AX constitution | ✅ Merged — safe to prune |
50+
| `.claude/worktrees/agent-add47742` | `worktree-agent-add47742` | `d00a1ca` feat: uninstall-mapper | ✅ Merged — safe to prune |
51+
52+
Prune with: `git worktree prune`
7253

7354
---
7455

7556
## Readiness Assessment
7657

58+
**Target:** AI agents (Claude Code, Cursor, Windsurf) working on C#, Rust, or TypeScript codebases who need compilation diagnostics and code structure analysis via MCP — responses must never pollute the agent's context window.
59+
7760
| Need | Status | Notes |
7861
|------|--------|-------|
79-
| AX philosophy documented || `docs/AX.md` — canonical constitution |
80-
| Responses stay within context window || Auto-truncation at 200KB + warnings |
81-
| `get_diagnostics` unfiltered warned || `withDiagnosticsAxWarning` at 50KB threshold |
82-
| Default `depth` is AX-safe || `"signatures"` default; `"full"` opt-in |
83-
| file_filter 0-match warned || Agent-actionable message with pattern + example |
84-
| Tool schema AX-complete || All size-affecting params mention budget/threshold |
85-
| Error messages agent-actionable || `enrichError` + specific mapper/daemon messages |
86-
| Install/uninstall symmetry || `vslsp install-mapper` + `vslsp uninstall-mapper` |
87-
| HTTP server properly tested || 16 real behavior tests across all routes |
88-
| AX contracts in CI || 13 ratchet tests (A1-A6, A3b, A4b, B1-B5) |
89-
90-
**Overall:** ⭐ Complete — AX constitution fully enforced at schema, runtime, and test levels. v1.7.0 released.
62+
| Get all compilation errors, scoped to errors only |Working | `get_diagnostics(severity:"error", limit:20)` → < 10KB |
63+
| Understand codebase structure without reading files |Working | `get_code_structure(depth:"signatures")` default; AX budget enforced |
64+
| Dry-run compile check before writing to disk (C#) |Working | `verify_changes` with daemon; `reverted: true` confirmed |
65+
| Responses never exceed context window budget |Working | Auto-truncation at 200KB with agent-actionable warning |
66+
| Warning when response would be too large |Working | `get_code_structure` truncates + warns; `get_diagnostics` warns at 50KB |
67+
| Install / uninstall mappers per language |Working | `vslsp install-mapper` + `vslsp uninstall-mapper` (new this session) |
68+
| AX contracts locked in CI — regressions caught |Working | 13 ratchet tests: A1-A6, A3b, A4b, B1-B5 (dual-bound: upper + lower) |
69+
| AX philosophy documented and queryable |Working | `docs/AX.md` — constitution, budgets, principles, extension checklist |
70+
71+
**Overall:****Complete** — all AX goals met, 13 ratchet tests in CI, two audit rounds converged to clean, v1.7.0 released.
72+
73+
**Critical next step:** No critical items. Optional: Go mapper (pattern established), or `verify_changes` for Rust/TypeScript (requires persistent `cargo check`/`tsc` processes).
9174

9275
---
9376

9477
## What's Next (Prioritized)
9578

9679
### Optional / Future
9780

98-
1. **Go mapper** — Pattern established. Add `GoMapper` to registry, CI matrix, `install.sh`. Carry forward from v1.5.3 handoff.
81+
1. **Go mapper** — Pattern established: add `GoMapper` to registry, CI matrix, `install.sh`. Carried forward since v1.5.3.
9982

100-
2. **Rust/TS daemon**`verify_changes` dry-run is C#-only. Would require persistent `cargo check`/`tsc` processes.
83+
2. **Rust/TypeScript daemon**`verify_changes` dry-run is C#-only. Would require persistent `cargo check`/`tsc` processes.
10184

102-
3. **`http.test.ts` integration with B5**The B5 test creates a synthetic fixture. A future improvement could share fixture generation logic between A6 (code structure) and B5 (diagnostics) via a helper.
85+
3. **AX truncation for `get_diagnostics`**Currently warns only at 50KB (no truncation). Could add hard cap at e.g. 100KB for parity with `get_code_structure`. Low priority — warning already fires.
10386

104-
4. **AX truncation for `get_diagnostics`**Currently warns only (no truncation). Could add hard truncation at e.g. 100KB similar to `get_code_structure` at 200KB. Low priority given warning already fires.
87+
4. **Update `Plans/federated-coalescing-lampson.md`**Status header should reference v1.7.0.
10588

106-
5. **Update `Plans/federated-coalescing-lampson.md`**Status header should reflect v1.7.0.
89+
5. **Prune stale worktrees**`git worktree prune` to clean up agent-a53e50a8 and agent-add47742.
10790

10891
---
10992

@@ -113,9 +96,9 @@ None.
11396

11497
**Known intentional keeps:**
11598
- `store.clear()` and `didClose()` — valid API surface, not dead code
116-
- Single-file oversize warns but doesn't truncate — by design (`depth:"full"` is opt-in)
117-
- `withDiagnosticsAxWarning` warns only (no truncation) — semantics preserved intentionally
118-
- RustMapper binary removed during smoke test this session — reinstall with `vslsp install-mapper rust`
99+
- Single-file oversize warns but doesn't truncate — `depth:"full"` is opt-in, warning guides agent to use `"signatures"`
100+
- `withDiagnosticsAxWarning` warns only (no truncation) — preserves full diagnostic semantics intentionally
101+
- **RustMapper binary removed** during smoke test this session — reinstall: `vslsp install-mapper rust`
119102

120103
---
121104

@@ -124,15 +107,15 @@ None.
124107
| File | Purpose |
125108
|------|---------|
126109
| `docs/AX.md` | AX constitution — canonical agent experience philosophy |
127-
| `mcp.ts:99,107` | `AX_BUDGET_BYTES` (200KB) and `AX_DIAG_WARN_BYTES` (50KB) constants |
110+
| `mcp.ts:99,107` | `AX_BUDGET_BYTES` (200KB) and `AX_DIAG_WARN_BYTES` (50KB) |
128111
| `mcp.ts:102-187` | `filterCodeStructure()` — depth/glob/max_files + auto-truncation |
129112
| `mcp.ts:218-239` | `withDiagnosticsAxWarning()` — diagnostics oversize warning |
130-
| `mcp.ts:284-294` | `enrichError()` — agent-actionable OS error guidance |
113+
| `mcp.ts:284-294` | `enrichError()`ENOENT/EACCES → agent-actionable guidance |
131114
| `mcp.ts:464` | `depth` default `"signatures"` (was `"full"` before this session) |
132-
| `tests/e2e/mcp-server.test.ts:339-381` | B5 — `withDiagnosticsAxWarning` ratchet test |
133-
| `tests/e2e/mcp-server.test.ts:631-644` | A3b — `file_filter` 0-match ratchet test |
134-
| `tests/e2e/mcp-server.test.ts:659-671` | A4b — `max_files: 0` schema test |
135-
| `tests/http.test.ts` | 16 real HTTP behavior tests (all routes) |
115+
| `tests/e2e/mcp-server.test.ts:339-381` | B5 — `withDiagnosticsAxWarning` ratchet (unconditional) |
116+
| `tests/e2e/mcp-server.test.ts:631-644` | A3b — `file_filter` 0-match warning ratchet |
117+
| `tests/e2e/mcp-server.test.ts:659-671` | A4b — `max_files: 0` schema conformance |
118+
| `tests/http.test.ts` | 16 real HTTP behavior tests (all 8 routes) |
136119
| `vslsp.ts` | CLI — `install-mapper` + `uninstall-mapper` |
137120

138121
---
@@ -146,18 +129,23 @@ cd /Users/Dennis.Dyall/Code/other/vslsp
146129
git log --oneline -5
147130
git status
148131
bun run tsc --noEmit # clean
149-
bun test tests/http.test.ts tests/diagnostics/store.test.ts tests/core/types.test.ts tests/code-mapping/mapper.test.ts tests/diagnostics/rust.test.ts tests/diagnostics/typescript.test.ts --timeout 30000
132+
bun test tests/http.test.ts tests/diagnostics/store.test.ts tests/core/types.test.ts \
133+
tests/code-mapping/mapper.test.ts tests/diagnostics/rust.test.ts \
134+
tests/diagnostics/typescript.test.ts --timeout 30000
150135

151-
# Current version: v1.7.0
136+
# Current version: v1.7.0 (released this session)
152137
# AX constitution: docs/AX.md
153138
# 13 AX ratchet tests in CI
154139

155-
# RustMapper was removed — reinstall if needed:
156-
# vslsp install-mapper rust
140+
# RustMapper was removed during smoke testing — reinstall if needed:
141+
vslsp install-mapper rust
142+
143+
# Clean up stale session worktrees:
144+
git worktree prune
157145

158146
# To run a code audit:
159147
# invoke /CodeAudit
160148

161-
# Integration test (validates all 8 tools against 3 real codebases)
149+
# Integration test (validates all 8 tools against 3 real codebases):
162150
# invoke /vslsp-integration skill
163151
```

0 commit comments

Comments
 (0)