You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: Plans/handoff.md
+59-78Lines changed: 59 additions & 78 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -2,45 +2,24 @@
2
2
3
3
**Date:** 2026-04-10
4
4
**Branch:** main
5
-
**Last commit:**08995e6 fix: AX format parity — single-file warning uses actual serialized size
5
+
**Last commit:**fe539c6 chore: update handoff for v1.7.3 — format parity, AX audit, session complete
6
6
7
7
---
8
8
9
9
## Session Summary
10
10
11
-
Two-day session (Apr 9–10)fully AX-driven across four releases. Starting from v1.5.3, the session produced v1.6.0 and v1.7.x (v1.7.0 through v1.7.3). The arc: build the AX constitution → audit against it → fix every gap found → ship.
11
+
Two-day session (Apr 9–10). Goal: make vslsp fully AX-compliant — every tool, every format, every contract locked in CI. Starting from v1.5.3, shipped v1.6.0 and v1.7.0 through v1.7.3.
-`withDiagnosticsAxWarning()` — warns when `get_diagnostics` unfiltered > 50KB
21
-
-`enrichError()` — ENOENT/EACCES → agent-actionable guidance in all tools
22
-
- 13 AX ratchet tests (A1-A6, A3b, A4b, B1-B5, A5+) locked in CI
23
-
- All tool schema descriptions updated with budget numbers and AX implications
24
-
-`file_filter` 0-match runtime warning added
25
-
26
-
**v1.7.1** — `vslsp --version` flag (CLI DX gap closed)
27
-
28
-
**v1.7.2** — `toTextFormat()` + `toYamlFormat()` client-side serializers; `depth`/`file_filter`/`max_files` now apply to text and yaml formats (previously forced JSON)
-`walkText()` hoisted out of loop (anti-pattern fix)
33
-
-`format` param description updated (no longer claims "ignored when filters set")
34
-
35
-
**v1.7.3** — AX format parity: single-file oversized warning now uses actual serialized size for text/yaml, not JSON proxy (no false-positive warnings for text/yaml that fit the budget)
13
+
The arc: write the AX constitution → audit every tool against it → fix every gap → audit again → fix again → ship. Two background audit agents, one DevTeam Engineer+Reviewer loop, three parallel worktree agents for v1.6.0.
36
14
37
15
---
38
16
39
17
## Current State
40
18
41
-
### Committed Work (since v1.5.3)
19
+
### Committed Work (this session)
42
20
43
21
```
22
+
fe539c6 chore: update handoff for v1.7.3
44
23
08995e6 fix: AX format parity — single-file warning uses actual serialized size
45
24
e4050f5 fix: CodeAudit corrections to toTextFormat/toYamlFormat serializers
46
25
a5e9547 fix: depth and file_filter now apply to text and yaml formats
@@ -65,23 +44,20 @@ None. Working tree clean.
65
44
### Build & Test Status
66
45
67
46
- TypeScript: **clean** (`bun run tsc --noEmit`)
68
-
- Unit tests: **49 pass, 0 fail** (http ×16, types ×10, store ×8, mapper ×6, typescript ×5, rust ×4)
| AX contracts locked in CI | ✅ Working | 13 ratchet tests (A1-A6, A3b, A4b, B1-B5) |
101
-
| AX philosophy documented | ✅ Working |`docs/AX.md` constitution |
102
-
| All output formats AX-equivalent | ✅ Working | JSON/text/yaml all filtered, all warn, all AX-safe (v1.7.3) |
103
-
| Version self-reporting | ✅ Working |`vslsp --version` (v1.7.1+) |
104
-
105
-
**Overall:** ⭐ **Complete** — all AX goals met across all formats, 13 ratchet tests in CI, three audit rounds converged to clean, v1.7.3 released.
106
-
107
-
**Critical next step:** No critical items. Install v1.7.3 once CI builds: `curl -fsSL https://raw.githubusercontent.com/DennisDyallo/vslsp/main/install.sh | bash -s -- --yes`
70
+
| Get compilation errors scoped to what matters | ✅ Working |`severity:"error"` + `limit:20` → < 10KB. Warning fires when unfiltered > 50KB |
71
+
| Understand codebase structure without reading files | ✅ Working |`depth:"signatures"` default; AX truncation at 200KB across all 3 formats |
72
+
| Dry-run compile check before writing (C#) | ✅ Working |`verify_changes` with daemon; in-memory, disk never touched |
73
+
| Responses never exceed context window budget | ✅ Working | Multi-file: auto-truncated with agent-actionable warning. Single-file: warns using actual format size (v1.7.3) |
74
+
| Know when a response is too large and what to do | ✅ Working | Every warning follows AX standard: what happened + directive + example |
75
+
| Install / remove language mappers | ✅ Working |`vslsp install-mapper <lang>` + `vslsp uninstall-mapper <lang>`|
76
+
| Query any project, any directory | ✅ Working | All tools are stateless; `path`/`project`/`manifest`/`solution` per-call |
77
+
| AX contracts don't regress in CI | ✅ Working | 13 ratchet tests: A1-A6, A3b, A4b, B1-B5 (dual-bound: upper + lower) |
78
+
| Check installed version | ✅ Working |`vslsp --version` (v1.7.1+) |
79
+
| All output formats AX-equivalent | ✅ Working | JSON/text/yaml all filtered, all warn, warnings use actual format size (v1.7.3) |
80
+
81
+
**Overall:** ⭐ **Complete** — all stated AX goals met, all formats compliant, 13 ratchet tests in CI, three audit rounds converged to clean. v1.7.3 released.
82
+
83
+
**Critical next step:** No critical items. Upgrade installed binary once CI builds v1.7.3:
3.**Multi-file AX truncation calibrated per format** — Currently uses JSON size as proxy (conservative, always safe). Could be calibrated to actual format size for fewer unnecessary truncations.
116
-
4.**`vslsp install-mapper rust` 404 investigation** — CI may not be cross-compiling Rust mapper for patch releases. Check `.github/workflows/release.yml` build matrix.
95
+
3.**Multi-file AX truncation calibrated per format** — JSON size used as proxy for text/yaml (conservative, always safe). True per-format calibration would need restructuring.
96
+
4.**RustMapper 404 on patch releases** — Investigate `.github/workflows/release.yml`— CI may not build Rust mapper on every patch tag.
117
97
5.**Prune stale worktrees** — `git worktree prune`
118
98
119
99
---
120
100
121
101
## Blockers & Known Issues
122
102
123
-
-**RustMapper 404** — `vslsp install-mapper rust` fails with 404 on v1.7.x patch releases. Likely CI doesn't build Rust mapper on every patch. Workaround: use v1.7.0 binary for Rust mapper, or check release assets.
124
-
-**Installed binary is v1.7.0** — upgrade with `install.sh --yes`once v1.7.3 CI releases.
125
-
-**1 E2E test skipped** — RustMapper not installed. `vslsp install-mapper rust` to fix (once 404 resolved).
103
+
-**RustMapper 404** — `vslsp install-mapper rust` fails with 404 on v1.7.x patches. Use v1.7.0 asset: `gh release download v1.7.0 --pattern "RustMapper-darwin-arm64" -D ~/.local/share/vslsp/rust-mapper/`
104
+
-**Installed binary is v1.7.0** — reinstall once v1.7.3 CI publishes.
105
+
-**1 E2E test skipped** — RustMapper not installed (see above).
126
106
127
107
**Intentional keeps:**
128
-
- Single-file oversize warns but doesn't truncate — `depth:"full"` is opt-in
129
-
- Multi-file AX truncation uses JSON size as proxy — conservative but always safe
130
-
-`withDiagnosticsAxWarning` warns only (no truncation) — preserves full diagnostic semantics
108
+
- Single-file oversize warns but doesn't truncate — `depth:"full"` is opt-in, agent can use `"signatures"` instead
109
+
- Multi-file truncation uses JSON as size proxy — always conservative (safe, never returns too much)
110
+
-`withDiagnosticsAxWarning` warns only for diagnostics — truncating diagnostic results would change semantics
0 commit comments