This release adds 4 notable features for engineering teams evaluating rollout.
✓ No known CVEs patched in this version
Topics
+13 more
Summary
AI summaryUpdates Other changes, https://github.com/blackwell-systems/gcf/blob/main/SPEC.md, and https://github.com/blackwell-systems/gcf-go/releases/tag/v1.1.0 across a mixed release.
Changes in this release
| Type | Severity | Summary | CVE |
|---|---|---|---|
| Performance | Medium |
Upgraded to gcf-go v1.1.0, implementing GCF spec v3 for more efficient nested data encoding. Upgraded to gcf-go v1.1.0, implementing GCF spec v3 for more efficient nested data encoding. Source: llm_adapter@2026-06-13 Confidence: high |
— |
| Bugfix | Medium |
Workspace ready check added to all LSP query methods, preventing -32001 errors on cold start. Workspace ready check added to all LSP query methods, preventing -32001 errors on cold start. Source: llm_adapter@2026-06-13 Confidence: high |
— |
| Bugfix | Medium |
QualifiedName space sanitization fixes GCF graph decoding for symbol names with spaces (e.g., TypeScript). QualifiedName space sanitization fixes GCF graph decoding for symbol names with spaces (e.g., TypeScript). Source: llm_adapter@2026-06-13 Confidence: high |
— |
Full changelog
v0.15.0: 25% fewer tokens on nested tool responses (GCF spec v3)
Upgraded to gcf-go v1.1.0, which implements GCF spec v3. This improves the generic/tabular profile used by all 66 tool handlers.
What changed
Tools that return nested data (diagnostics with metadata, symbols with caller lists, references with context) now encode 25.5% more efficiently. Two improvements:
Inline schema encoding. Nested objects with 3+ fields are encoded positionally on the parent row instead of as separate attachment blocks. Fewer lines, fewer tokens.
Shared array schemas. When multiple records contain arrays with the same structure (e.g., every symbol has a .refs array with {file, line, kind}), the field header is declared once and omitted on subsequent records.
Before (v1.0.0):
@0 AuthMiddleware|fn|src/auth.go|42|^
.refs [3]{file,line,kind}
src/server.go|15|calls
src/router.go|88|calls
@1 ValidateToken|fn|src/auth.go|67|^
.refs [3]{file,line,kind}
src/auth.go|45|calls
src/middleware.go|23|calls
After (v1.1.0):
@0 AuthMiddleware|fn|src/auth.go|42|^
.refs [3]{file,line,kind}
src/server.go|15|calls
src/router.go|88|calls
@1 ValidateToken|fn|src/auth.go|67|^
.refs [3]
src/auth.go|45|calls
src/middleware.go|23|calls
Second record's .refs omits {file,line,kind} (shared schema). Multiplied across a blast_radius response with 50 symbols, each with callers, the savings add up.
Token savings summary
| Profile | Savings vs JSON |
|---------|----------------|
| Tabular (all tools, v0.15.0) | 40-60% (was 30-51%) |
| Graph (symbol-returning tools) | 79-84% |
| Graph + session dedup | 92.7% (5th call) |
Other changes
- Workspace ready check on all LSP query methods: 15 methods now wait for indexing before sending requests, preventing -32001 errors on cold start.
- QualifiedName space sanitization: Symbol names with spaces (TypeScript) no longer break GCF graph decoding.
GCF
GCF (Graph Compact Format) is a token-optimized wire format for LLM tool responses.
- Spec · Go · Python · TypeScript · Proxy · Playground
Weekly OSS security release digest.
The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.
No spam, unsubscribe anytime.
Share this release
About blackwell-systems/agent-lsp
Stateful MCP server over real language servers. 50 tools, 30 CI-verified languages, 20 agent workflows. Persistent sessions keep the index warm across files and projects. Speculative execution simulates edits in memory before writing to disk.
Related context
Related tools
Beta — feedback welcome: [email protected]