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
**Last commit:**8a76946 feat: unify get_diagnostics across C#/Rust/TypeScript (v1.4.0)
6
6
7
7
---
8
8
9
9
## Session Summary
10
10
11
-
This session resumed from the v1.3.0 handoff, confirmed CI green with all 20 binary assets published, then completed all remaining P2 DX items: expanded the daemon troubleshooting section with a 5-step diagnostic flow, documented port 7850 and custom port override across README.md and skills/vslsp/SKILL.md, and added a first-time Rust setup callout in the Rust workflow section. A DevTeam Engineer→Reviewer loop caught and fixed two technical errors (a wrong binary dependency claim and a fabricated CLI command) before committing. A final independent review pass returned CLEAN PASS with all 8 technical claims cross-verified against source.
11
+
This session unified the three per-language diagnostic tools (`get_diagnostics` C#-only, `get_rust_diagnostics`, `get_ts_diagnostics`) into a single parametrized `get_diagnostics` using discriminant optional fields (`solution`/`manifest`/`project`) with `.refine()` enforcement — reducing the tool count from 10 to 8. A DevTeam Engineer→Reviewer loop caught a `package: rustPackage` variable shadowing bug before it shipped. Tests pass (57 pass, 1 skip, 0 fail), the `vslsp-integration` skill was created, both binaries were rebuilt and installed, and all changes were committed as v1.4.0. Integration test against real codebases was partially completed — Rust and C# `get_code_structure` worked; TS and unified `get_diagnostics({ manifest })` / `get_diagnostics({ project })` require a session restart to pick up the new binary's schema.
12
12
13
13
---
14
14
@@ -17,15 +17,23 @@ This session resumed from the v1.3.0 handoff, confirmed CI green with all 20 bin
17
17
### Committed Work (this session — 1 commit on main)
- TypeScript type check: **clean** (`bun run tsc --noEmit`)
37
-
- Tests: **57 pass, 1 skip, 0 fail**
38
-
- v1.3.0 CI: **completed/success**, all 20 binary assets published
45
+
- Tests: **57 pass, 1 skip, 0 fail** (`bun test`)
46
+
- Binaries: **rebuilt** from 1.4.0 source (both vslsp + vslsp-mcp)
47
+
- CI: not yet triggered for v1.4.0 (no git tag pushed)
39
48
40
49
### Worktree / Parallel Agent State
41
50
@@ -45,70 +54,71 @@ None. Single worktree at main.
45
54
46
55
## Readiness Assessment
47
56
48
-
**Target:** AI agents (Claude Code, Cursor, Copilot) and developers working on C#, Rust, or TypeScript codebases who need real compilation diagnostics and structured code navigation via MCP — installable in one command, with opt-in mapper download.
57
+
**Target:** AI agents (Claude Code, Cursor, Copilot) and developers working on C#, Rust, or TypeScript codebases who need real compilation diagnostics and structured code navigation via MCP — installable in one command, unified API across languages.
49
58
50
59
| Need | Status | Notes |
51
60
|------|--------|-------|
52
-
| Install only the mappers you need | ✅ Working |`--mappers` flag, interactive prompt, `vslsp install-mapper <lang>`|
53
-
| OmniSharp not downloaded if C# is skipped | ✅ Working | Gated behind `[[ "$MAPPERS" == *"csharp"* ]]`|
54
-
| .NET requirement surfaced before install runs | ✅ Working | Callout block at README top; hard error in install.sh if missing |
55
-
| Interactive prompt allows Rust/TS without C# | ✅ Working |[1][2][3] numbered — C# default, not forced |
56
-
| Post-install verification guidance | ✅ Working | "Verify your install" section with per-binary checks |
| Custom daemon port documented | ✅ Working | Port 7850 default + override pattern in README + SKILL.md |
59
-
| RustMapper install pre-advertised at Rust workflow | ✅ Working | Callout in Rust workflow section before first use |
60
-
| MCP and /vslsp skill discoverability | ✅ Working | README install section explains auto-registration |
61
-
| All C#/Rust/TypeScript primary workflows | ✅ Working | Diagnostics + structure analysis for all three |
62
-
| Intel Mac (darwin-x64) binary coverage | ✅ Working | macos-latest cross-compile |
61
+
| Get C# diagnostics via `get_diagnostics({ solution })`| ✅ Working | Tested against Yubico.NET.SDK — valid DiagnosticsResult, 705 errors, 202 files |
62
+
| Get Rust diagnostics via `get_diagnostics({ manifest })`| ⚠️ Partial | Handler correct in source; schema not live in MCP client until session restart |
63
+
| Get TS diagnostics via `get_diagnostics({ project })`| ⚠️ Partial | Same — requires session restart for new binary schema to load |
64
+
|`get_code_structure` for Rust (directory) | ✅ Working |`language: "rust"` explicit — 99 files, 1296 types, 4650 methods on octo-rdt-prototype |
65
+
|`get_code_structure` for C# (directory) | ✅ Working | 3.4M result on Yubico.NET.SDK |
66
+
|`get_code_structure` for TypeScript (directory) | ⚠️ Partial |`language: "typescript"` added to enum in new binary; requires session restart |
67
+
|`get_code_structure` auto-detects language from directory | ⚠️ Partial |`detectLanguage()` uses `endsWith(ext)` — only works for file paths, not dirs; fallback: pass `language:` explicitly |
68
+
| All 8 tools discoverable at `tools/list`| ⚠️ Partial | New binary exposes 8; MCP client schema cached from pre-rebuild session start |
69
+
|`get_diagnostics_summary` (C# daemon summary) | ✅ Working | Unchanged, still C#-only |
70
+
| Daemon lifecycle (start/status/stop/notify/verify) | ✅ Working | All unchanged from v1.3.0 |
71
+
| No API breakage for existing C# `get_diagnostics` callers | ✅ Working |`solution` param still works identically |
72
+
| Install → verify → use in one session | ✅ Working | install.sh, opt-in mappers, vslsp-mcp MCP registration all unchanged |
63
73
| Single-command release | ✅ Working |`bun run release <version>`|
64
-
| CI builds all 20 binary assets across 4 platforms | ✅ Working | 18-job matrix, green on v1.3.0 |
65
74
66
-
**Overall:** 🟢 Production — all primary workflows work for all three personas; DX gaps from the audit are resolved. Remaining items are optional/future scope (Go mapper, uninstall, Node.js action versions).
75
+
**Overall:** 🟢 Production — unified API correct and tested in source; one session restart required for MCP client to load new schema. All 57 tests pass. C# and Rust structure analysis fully working; TS structure needs restart.
67
76
68
-
**Critical next step:**No blocking gaps. Next meaningful change is adding the Go mapper if Go support is desired, or bumping GitHub Actions to Node.js 24-compatible versions before September 2026.
77
+
**Critical next step:**Restart Claude Code to load the 1.4.0 binary schema, then complete the `/vslsp-integration` run to validate Rust and TS diagnostics end-to-end.
69
78
70
79
---
71
80
72
81
## What's Next (Prioritized)
73
82
74
-
### Optional / Future
83
+
1.**[Immediate] Restart Claude Code** — session schema is stale from pre-rebuild binary. After restart, run `/vslsp-integration` to complete the Rust + TS `get_diagnostics` integration test and `get_code_structure({ path, language: "typescript" })`.
75
84
76
-
1.**Go mapper** — Pattern is established. Add `GoMapper`to `src/code-mapping/registry.ts`, CI matrix, and `install.sh` mapper list.
85
+
2.**Fix `detectLanguage()` for directories** — `src/code-mapping/registry.ts:detectLanguage()` uses `targetPath.endsWith(ext)` which only matches file paths. Directories always fall through to C# fallback. Fix: scan directory for files with matching extension. This would allow `get_code_structure({ path: "/some/ts/dir" })` without requiring explicit `language:` param.
77
86
78
-
2.**`vslsp uninstall-mapper`** — Currently no removal path. If a dev installed all but only needs Rust, they can't clean up.
87
+
3.**Tag and release v1.4.0** — `bun run release 1.4.0` (triggers CI, publishes 20 binary assets). Not done yet — source and local binaries are at 1.4.0 but no git tag pushed.
79
88
80
-
3.**Node.js 20 deprecation warnings** — `actions/cache@v4` and `softprops/action-gh-release@v2` will break when Node 24 becomes mandatory (September 2026). Bump to Node 24-compatible versions before that deadline.
89
+
4.**Go mapper** — Pattern is established. Add `GoMapper` to registry.ts, CI matrix, install.sh mapper list.
81
90
82
-
4.**Deeper daemon troubleshooting** — The 5-step flow is good; a flowchart diagram would improve scanability for complex cases.
91
+
5.**`vslsp uninstall-mapper`** — No removal path currently. Complement to `install-mapper`.
92
+
93
+
6.**Node.js 20 deprecation** — `actions/cache@v4` and `softprops/action-gh-release@v2` will break when Node 24 becomes mandatory (September 2026).
83
94
84
95
---
85
96
86
97
## Blockers & Known Issues
87
98
88
-
None. All P0/P1/P2 items from the DX audit are resolved and shipped.
89
-
90
-
---
99
+
-**Session restart required**: The MCP client in the current session cached the pre-1.4.0 binary schema at session start. Binary is rebuilt but schema won't reload until Claude Code restarts. Until then, `get_diagnostics({ manifest })`, `get_diagnostics({ project })`, and `get_code_structure` with `language: "typescript"` will fail schema validation.
91
100
92
-
## Memory Written This Session
101
+
-**`detectLanguage()` directory bug**: `get_code_structure({ path: "/some/directory" })` without an explicit `language:` param silently returns `{ files: 0, types: 0 }` because `detectLanguage()` checks `targetPath.endsWith(ext)` — directories never match. Workaround: always pass `language: "rust"` / `language: "typescript"` / `language: "csharp"` for directory paths. Fix target: `src/code-mapping/registry.ts`.
93
102
94
-
No new memories written. The feedback memory from the previous session (goal-defeating installer pattern) remains accurate and applies.
103
+
-**v1.4.0 release not tagged**: Local source and binaries are v1.4.0 but `gh release` / CI not triggered. CI green from v1.3.0 is the last published set of binaries.
0 commit comments