@skein-code/cli 0.3.12 → 0.3.14

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.
@@ -52,7 +52,10 @@
52
52
  receives one bounded recovery turn; the runtime persists `verified`,
53
53
  `unverified`, or `verification_failed` instead of trusting completion claims
54
54
  in model text.
55
- 10. Persist the outcome and expose the same status through the TUI, text, JSON,
55
+ 10. Before the first substantive write, run the warning-only repository reuse
56
+ gate. It binds current candidate/read evidence to the request, index
57
+ generation, and change sequence without retaining source text.
58
+ 11. Persist the outcome and expose the same status through the TUI, text, JSON,
56
59
  and JSONL surfaces.
57
60
 
58
61
  ## Interactive startup gate
@@ -75,6 +78,12 @@ stay in a retry/exit state and occur before an empty session is persisted.
75
78
  Headless runs retain non-animated lazy indexing so structured automation does
76
79
  not acquire terminal-only behavior.
77
80
 
81
+ Known mutations take a narrower path: the runner validates tool-reported
82
+ `changedFiles`, marks them dirty, targeted-upserts or deletes only those paths,
83
+ and atomically persists the new generation before returning the tool result.
84
+ Manifest reconciliation additionally compares ctime, closing same-size changes
85
+ whose mtime is restored without hashing every source file on an empty query.
86
+
78
87
  ### Prompt layers
79
88
 
80
89
  The runner keeps the cacheable system prefix separate from mutable task state:
@@ -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.12`.
12
+ - Current repository version: `0.3.14`.
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,19 +41,33 @@ 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.12.tgz`. The verifier writes
45
- its SHA-256 to `artifacts/package/skein-code-cli-0.3.12.tgz.sha256`, and CI
44
+ The latest verified package is `skein-code-cli-0.3.14.tgz`. The verifier writes
45
+ its SHA-256 to `artifacts/package/skein-code-cli-0.3.14.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.
49
49
 
50
- The final verification included a fresh install and real PTY interaction for
51
- all three executable aliases, `/about`, a permission prompt, denial, and clean
52
- Ctrl+C exit. PTY coverage included 20, 24 ASCII, 40, 80, 120 columns and a
53
- 40x10 short-height case. The current 42-file, 424-test suite passes the full check.
50
+ The final verification included a fresh install for all three executable
51
+ aliases. PTY coverage included 20, 24 ASCII, 40, 80, 120 columns and a 40x10
52
+ short-height case. The current full-suite count is recorded from the latest
53
+ `npm run check` in the release evidence.
54
54
 
55
55
  ## Recommended Order
56
56
 
57
+ ### P0-D: Warning-only repository reuse gate
58
+
59
+ Version `0.3.14` adds the first runtime reuse slice. The prompt states a short
60
+ repository-first ladder, while `src/agent/reuse-gate.ts` evaluates only the
61
+ first substantive `write_file` or `apply_patch` addition. It flushes the local
62
+ index, re-reads ranked candidates, and persists a bounded `ReuseReceipt` with
63
+ hashed query metadata, paths, symbols, scores, read status, generation, and
64
+ change sequence. The receipt never stores source or prompt text. This release
65
+ is intentionally warning-only; an unavailable index is `unresolved`, not a
66
+ false pass, and legitimate docs/config/test/generated/deletion/local-edit
67
+ changes are exempt. The next slice is deterministic function extraction and
68
+ post-write duplication audit; high-confidence blocking waits for fixture-based
69
+ precision calibration.
70
+
57
71
  ### P0: Continuous Integration And Release Reproducibility
58
72
 
59
73
  `.github/workflows/ci.yml` now covers Node 22 on macOS and Linux. It runs
@@ -78,12 +92,12 @@ Implementation notes:
78
92
  - `npm run release:verify` reproduces the package from source, installs it into
79
93
  an isolated prefix, rejects packaged local state, and exercises `skein`,
80
94
  `mosaic`, and `mosaic-code`.
81
- - The `main` branch rule requires the strict `check` status. Version 0.3.12
82
- adds privacy-safe per-request token receipts, actual-versus-estimated usage
83
- provenance, prompt partition accounting, and adaptive 2k/4k/8k/12k local
84
- retrieval budgets. Session telemetry stores counts, tool names, selection
85
- decisions, and discard reasons, never prompt, source, schema, argument, or
86
- tool-result content.
95
+ - The `main` branch rule requires the strict `check` status. Version 0.3.13
96
+ retains v0.3.12's privacy-safe per-request token ledger and adaptive budgets,
97
+ then adds targeted known-change index refresh, ctime freshness reconciliation,
98
+ and bounded no-progress search recovery. Session telemetry stores counts,
99
+ tool names, selection decisions, and hashes, never prompt, source, schema,
100
+ argument, or tool-result content.
87
101
  Its tag, GitHub verification, and npm publication use the same source commit.
88
102
 
89
103
  ### P1: Skein Storage Namespace And Migration
@@ -147,9 +161,10 @@ Implementation progress:
147
161
 
148
162
  ### P1: Local Context Engine Reliability And Benchmarking
149
163
 
150
- Keep retrieval local and measurable as the repository grows. The next slice
151
- should add content hashes to index entries, a small generation-keyed query cache,
152
- overlap-aware packing, and language adapters for common declaration styles.
164
+ Keep retrieval local and measurable as the repository grows. Content hashes,
165
+ generation-keyed query caching, overlap-aware packing, adaptive budgets, and
166
+ targeted known-change refresh are now implemented. The next retrieval slice is
167
+ language adapters and the expanded multilingual benchmark.
153
168
 
154
169
  Definition of done:
155
170
 
@@ -166,8 +181,12 @@ Implementation progress:
166
181
  - The public `pack/search/index/status` boundary is now a pure local façade.
167
182
  - Legacy external configuration is stripped at the config schema boundary and
168
183
  no external executable or database is probed by the CLI.
169
- - Remaining work is content-hash freshness, cache invalidation, structured
170
- chunking, and the reproducible benchmark.
184
+ - Tool-reported creates, updates, and deletes refresh only affected paths and
185
+ atomically persist before the next turn in TUI or headless mode.
186
+ - Size/mtime/ctime reconciliation closes the direct-new-query zero-hit window;
187
+ repeated empty or unchanged searches stop through the recovery circuit.
188
+ - Remaining work is broader language adapters and production-scale benchmark
189
+ calibration; the reproducible benchmark pipeline already exists.
171
190
 
172
191
  ### P1: Multi-Agent Scheduler And Team UX
173
192
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skein-code/cli",
3
- "version": "0.3.12",
3
+ "version": "0.3.14",
4
4
  "description": "A context-first, model-agnostic coding agent with an auditable terminal workspace.",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -16,9 +16,12 @@
16
16
  },
17
17
  "skein": {
18
18
  "releaseNotes": [
19
- "Each model request records privacy-safe token partitions and actual-versus-estimated provenance",
20
- "Local retrieval now selects focused, standard, broad, or maximum evidence budgets",
21
- "Terminal and JSON diagnostics expose budget decisions without storing prompt or source content"
19
+ "Warning-only Reuse Gate records content-free candidate evidence before the first substantive write",
20
+ "Reuse receipts surface unresolved index/read failures instead of claiming a safe new implementation",
21
+ "Prompt and timeline diagnostics expose the repository-first reuse ladder without blocking legitimate writes",
22
+ "Known tool changes refresh only their affected local-index paths before the next model turn",
23
+ "File ctime closes same-size and restored-mtime zero-hit freshness gaps without full-content scans",
24
+ "Repeated empty or unchanged search calls stop through the existing recovery circuit"
22
25
  ]
23
26
  },
24
27
  "bin": {