@skein-code/cli 0.3.18 → 0.3.20

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.18`.
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.18.tgz`. The verifier writes
45
- its SHA-256 to `artifacts/package/skein-code-cli-0.3.18.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,32 @@ 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 is now a bounded, isolated tie-break
79
+ with exact HEAD-bound cache invalidation and non-Git degradation. Diagnostics
80
+ ranking, broader language AST adapters, and production-scale calibration remain
81
+ follow-up slices.
82
+
57
83
  ### P0-E: Token Economy measurement and bounded schema disclosure
58
84
 
59
85
  Version `0.3.18` adds the repository-owned `token-economy-benchmark-v1`
@@ -192,12 +218,12 @@ Implementation progress:
192
218
  concrete paths involved. `skein doctor` surfaces this as `legacyCompatibility`
193
219
  so users see the removal timeline before aliases disappear.
194
220
 
195
- ### P1: Local Context Engine Reliability And Benchmarking
221
+ ### P0-C: Local Context Engine Reliability And Benchmarking
196
222
 
197
223
  Keep retrieval local and measurable as the repository grows. Content hashes,
198
- generation-keyed query caching, overlap-aware packing, adaptive budgets, and
199
- targeted known-change refresh are now implemented. The next retrieval slice is
200
- language adapters and the expanded multilingual benchmark.
224
+ generation-keyed query caching, overlap-aware packing, adaptive budgets,
225
+ targeted known-change refresh, TypeScript AST facts, import adjacency, score
226
+ provenance, and the expanded multilingual benchmark are now implemented.
201
227
 
202
228
  Definition of done:
203
229
 
@@ -218,8 +244,9 @@ Implementation progress:
218
244
  atomically persist before the next turn in TUI or headless mode.
219
245
  - Size/mtime/ctime reconciliation closes the direct-new-query zero-hit window;
220
246
  repeated empty or unchanged searches stop through the recovery circuit.
221
- - Remaining work is broader language adapters and production-scale benchmark
222
- calibration; the reproducible benchmark pipeline already exists.
247
+ - The v2 fixture is an enforced regression test, including a graph-only import
248
+ neighbor and a no-stale-hit gate. Remaining work is git-recency/diagnostics
249
+ signals, broader language AST adapters, and production-scale calibration.
223
250
 
224
251
  ### P1: Multi-Agent Scheduler And Team UX
225
252
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skein-code/cli",
3
- "version": "0.3.18",
3
+ "version": "0.3.20",
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,9 @@
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",
19
22
  "Large MCP catalogs now disclose at most eight request-relevant schemas per run while preserving network permissions",
20
23
  "Token Ledger receipts report deferred progressive schemas and selected definitions remain stable across tool turns",
21
24
  "A deterministic Token Economy replay benchmark guards evidence, output-firewall, and no-progress invariants",
@@ -33,7 +36,8 @@
33
36
  "Prompt and timeline diagnostics expose the repository-first reuse ladder without blocking legitimate writes",
34
37
  "Known tool changes refresh only their affected local-index paths before the next model turn",
35
38
  "File ctime closes same-size and restored-mtime zero-hit freshness gaps without full-content scans",
36
- "Repeated empty or unchanged search calls stop through the existing recovery circuit"
39
+ "Repeated empty or unchanged search calls stop through the existing recovery circuit",
40
+ "Git recency is an isolated, bounded tie-break with exact HEAD-bound cache invalidation and non-Git degradation"
37
41
  ]
38
42
  },
39
43
  "bin": {
@@ -81,6 +85,7 @@
81
85
  "react": "^19.2.3",
82
86
  "string-width": "^8.2.2",
83
87
  "strip-ansi": "^7.2.0",
88
+ "typescript": "^5.9.3",
84
89
  "yaml": "^2.8.2",
85
90
  "zod": "^4.4.3"
86
91
  },
@@ -90,7 +95,6 @@
90
95
  "@types/react": "^19.2.7",
91
96
  "tsup": "^8.5.1",
92
97
  "tsx": "^4.21.0",
93
- "typescript": "^5.9.3",
94
98
  "vitest": "^4.0.18"
95
99
  },
96
100
  "overrides": {