@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.
- package/README.md +12 -1
- package/dist/cli.js +617 -81
- package/dist/cli.js.map +1 -1
- package/docs/ARCHITECTURE.md +10 -1
- package/docs/NEXT_STEPS.md +37 -18
- package/package.json +7 -4
package/docs/ARCHITECTURE.md
CHANGED
|
@@ -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.
|
|
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:
|
package/docs/NEXT_STEPS.md
CHANGED
|
@@ -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
|
+
- 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.
|
|
45
|
-
its SHA-256 to `artifacts/package/skein-code-cli-0.3.
|
|
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
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
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.
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
decisions, and
|
|
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.
|
|
151
|
-
|
|
152
|
-
|
|
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
|
-
-
|
|
170
|
-
|
|
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.
|
|
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
|
-
"
|
|
20
|
-
"
|
|
21
|
-
"
|
|
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": {
|