@skein-code/cli 0.3.17 → 0.3.19

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -9,7 +9,7 @@ one of the milestones below.
9
9
 
10
10
  - Product name: `Skein`; primary executable: `skein`.
11
11
  - Compatibility executables: `mosaic` and `mosaic-code`.
12
- - Current repository version: `0.3.16`.
12
+ - Current repository version: `0.3.19`.
13
13
  - Runtime requirement: Node.js `>=22.16.0` (the runtime uses unflagged
14
14
  `node:sqlite` with FTS5, and current CLI/build dependencies require this
15
15
  Node 22 baseline).
@@ -41,8 +41,8 @@ npm audit --omit=dev
41
41
  npm run release:verify -- --output-dir artifacts/package
42
42
  ```
43
43
 
44
- The latest verified package is `skein-code-cli-0.3.16.tgz`. The verifier writes
45
- its SHA-256 to `artifacts/package/skein-code-cli-0.3.16.tgz.sha256`, and CI
44
+ The latest verified package is `skein-code-cli-0.3.19.tgz`. The verifier writes
45
+ its SHA-256 to `artifacts/package/skein-code-cli-0.3.19.tgz.sha256`, and CI
46
46
  retains the checksum beside the package metadata. The checksum is deliberately
47
47
  not copied into this packaged document because doing so would change the
48
48
  archive it describes.
@@ -54,6 +54,48 @@ short-height case. The current full-suite count is recorded from the latest
54
54
 
55
55
  ## Recommended Order
56
56
 
57
+ ### P0-C: Local Context Engine v2 foundations
58
+
59
+ Version `0.3.19` moves the persisted local index to schema v3 and records
60
+ TypeScript compiler AST definitions, calls, and relative import facts beside
61
+ each content hash. Old schema v2 indexes rebuild instead of crossing the parser
62
+ contract. Python and SQL remain offline through bounded syntax-aware fallbacks;
63
+ this release does not claim equivalent AST coverage for those languages.
64
+
65
+ Matching definitions expand the lexical query, NodeNext `.js` imports resolve
66
+ to indexed TypeScript sources, and import/call neighbors receive a bounded graph
67
+ score. A minimum informative-term coverage removes low-value one-word matches,
68
+ with a fallback to the original ranked candidates when no sufficiently covered
69
+ result exists. Each hit carries generation, SHA-256 content hash, matched and
70
+ expanded terms, and a bm25/path/symbol/phrase/graph score breakdown. Query-cache
71
+ hits and misses are visible while cache entries remain generation-bound.
72
+
73
+ The checked-in `context-benchmark-v2` fixture covers eight TypeScript, Python,
74
+ SQL, CJK, Markdown, and mixed-language cases across ten files. The first
75
+ expanded run failed its preselected useful-token threshold at `0.348`; the
76
+ implementation reached `0.729` while Recall@5/10/20 and MRR remained `1.0`,
77
+ stale-hit rate stayed `0`, warm p95 was below 10 ms, and incremental indexing
78
+ reused every fixture file. Git-recency, diagnostics ranking, broader language
79
+ AST adapters, and production-scale calibration remain follow-up slices.
80
+
81
+ ### P0-E: Token Economy measurement and bounded schema disclosure
82
+
83
+ Version `0.3.18` adds the repository-owned `token-economy-benchmark-v1`
84
+ deterministic replay. Its seven retrieval, large-output, CJK, and repeated
85
+ zero-hit fixtures compare the legacy ceilings with the adaptive budget and
86
+ firewall policies while requiring complete evidence and recovery coverage.
87
+ The replay reports a 36.7% estimated-input reduction; this is a deterministic
88
+ budget measurement, not a provider billing or task-success claim.
89
+
90
+ MCP tool definitions are now marked for progressive disclosure. Catalogs of
91
+ eight or fewer eligible tools remain fully visible; larger catalogs disclose a
92
+ deterministically ranked maximum of eight schemas. Selected schemas retain
93
+ their registry order and remain loaded for the current run, and Token Ledger
94
+ receipts record the deferred count. MCP tools remain `network` operations and
95
+ hidden tool calls remain rejected by the existing boundary. This release does
96
+ not defer MCP connection or remote `listTools` discovery and does not claim the
97
+ provider-cache or Context Compaction 2.0 follow-up work is complete.
98
+
57
99
  ### P0-D: Repository reuse and calibrated duplication enforcement
58
100
 
59
101
  Version `0.3.14` added the prompt ladder and pre-write `ReuseReceipt`. Version
@@ -174,12 +216,12 @@ Implementation progress:
174
216
  concrete paths involved. `skein doctor` surfaces this as `legacyCompatibility`
175
217
  so users see the removal timeline before aliases disappear.
176
218
 
177
- ### P1: Local Context Engine Reliability And Benchmarking
219
+ ### P0-C: Local Context Engine Reliability And Benchmarking
178
220
 
179
221
  Keep retrieval local and measurable as the repository grows. Content hashes,
180
- generation-keyed query caching, overlap-aware packing, adaptive budgets, and
181
- targeted known-change refresh are now implemented. The next retrieval slice is
182
- language adapters and the expanded multilingual benchmark.
222
+ generation-keyed query caching, overlap-aware packing, adaptive budgets,
223
+ targeted known-change refresh, TypeScript AST facts, import adjacency, score
224
+ provenance, and the expanded multilingual benchmark are now implemented.
183
225
 
184
226
  Definition of done:
185
227
 
@@ -200,8 +242,9 @@ Implementation progress:
200
242
  atomically persist before the next turn in TUI or headless mode.
201
243
  - Size/mtime/ctime reconciliation closes the direct-new-query zero-hit window;
202
244
  repeated empty or unchanged searches stop through the recovery circuit.
203
- - Remaining work is broader language adapters and production-scale benchmark
204
- calibration; the reproducible benchmark pipeline already exists.
245
+ - The v2 fixture is an enforced regression test, including a graph-only import
246
+ neighbor and a no-stale-hit gate. Remaining work is git-recency/diagnostics
247
+ signals, broader language AST adapters, and production-scale calibration.
205
248
 
206
249
  ### P1: Multi-Agent Scheduler And Team UX
207
250
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skein-code/cli",
3
- "version": "0.3.17",
3
+ "version": "0.3.19",
4
4
  "description": "A context-first, model-agnostic coding agent with an auditable terminal workspace.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -16,6 +16,12 @@
16
16
  },
17
17
  "skein": {
18
18
  "releaseNotes": [
19
+ "Local index v3 records TypeScript AST definitions, calls, and relative import adjacency for graph-assisted retrieval",
20
+ "Context hits expose generation, content hash, matched terms, and bm25/path/symbol/phrase/graph score provenance",
21
+ "Context benchmark v2 locks multilingual recall, MRR, useful-token, stale-hit, incremental-index, and warm-latency gates",
22
+ "Large MCP catalogs now disclose at most eight request-relevant schemas per run while preserving network permissions",
23
+ "Token Ledger receipts report deferred progressive schemas and selected definitions remain stable across tool turns",
24
+ "A deterministic Token Economy replay benchmark guards evidence, output-firewall, and no-progress invariants",
19
25
  "Calibrated Type-1/2 duplication matches now block completion until reuse or exact audited suppression",
20
26
  "Type-3 duplication remains warning-only and Type-4 semantic equivalence remains explicitly unsupported",
21
27
  "Duplication benchmark fixtures report deterministic recall, precision, false-positive rate, and latency",
@@ -58,6 +64,7 @@
58
64
  "test:pty": "sh test/pty/run-visual.sh",
59
65
  "benchmark:context": "tsx scripts/benchmark-local-index.ts",
60
66
  "benchmark:duplication": "tsx scripts/benchmark-duplication.ts",
67
+ "benchmark:token-economy": "tsx scripts/benchmark-token-economy.ts",
61
68
  "verify:package": "node scripts/verify-package.mjs",
62
69
  "release:verify": "npm run check && npm run verify:package --",
63
70
  "typecheck": "tsc --noEmit",
@@ -77,6 +84,7 @@
77
84
  "react": "^19.2.3",
78
85
  "string-width": "^8.2.2",
79
86
  "strip-ansi": "^7.2.0",
87
+ "typescript": "^5.9.3",
80
88
  "yaml": "^2.8.2",
81
89
  "zod": "^4.4.3"
82
90
  },
@@ -86,7 +94,6 @@
86
94
  "@types/react": "^19.2.7",
87
95
  "tsup": "^8.5.1",
88
96
  "tsx": "^4.21.0",
89
- "typescript": "^5.9.3",
90
97
  "vitest": "^4.0.18"
91
98
  },
92
99
  "overrides": {