@skein-code/cli 0.3.7 → 0.3.8

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.
@@ -44,7 +44,34 @@
44
44
  7. Execute tools, emit events, and append their grounded results to the model
45
45
  conversation.
46
46
  8. Continue until the model returns a final response or the turn limit is hit.
47
- 9. Run configured verification commands after changes and persist the session.
47
+ 9. Run configured verification commands after changes. The completion gate accepts
48
+ only current successful test, typecheck, lint, build, check, or `git diff
49
+ --check` evidence recorded after the last mutation. An early final response
50
+ receives one bounded recovery turn; the runtime persists `verified`,
51
+ `unverified`, or `verification_failed` instead of trusting completion claims
52
+ in model text.
53
+ 10. Persist the outcome and expose the same status through the TUI, text, JSON,
54
+ and JSONL surfaces.
55
+
56
+ ## Interactive startup gate
57
+
58
+ New interactive sessions establish local context readiness before creating or
59
+ saving a session. Resumed sessions keep their existing transcript-first startup
60
+ and rely on the same per-turn retrieval freshness checks:
61
+
62
+ 1. Inspect and schema-check the persisted local index.
63
+ 2. Compare its manifest with the current workspace.
64
+ 3. Incrementally scan, chunk, and write only when the index is missing, stale,
65
+ or first-run setup explicitly requests a visible build.
66
+ 4. Reload the written artifact from disk and match generation, file count,
67
+ chunk count, and manifest freshness.
68
+ 5. Pass the immutable readiness snapshot to the TUI; only then enable the
69
+ composer and initialize session extensions.
70
+
71
+ An empty workspace produces a valid zero-file generation. Validation failures
72
+ stay in a retry/exit state and occur before an empty session is persisted.
73
+ Headless runs retain non-animated lazy indexing so structured automation does
74
+ not acquire terminal-only behavior.
48
75
 
49
76
  ### Prompt layers
50
77
 
@@ -82,6 +109,12 @@ Index state is persisted in the active project namespace. Search results are
82
109
  revalidated against current files before packing, so a stale index reduces
83
110
  recall rather than silently injecting old code.
84
111
 
112
+ The fresh-session TUI consumes the same verified readiness snapshot. Wide
113
+ terminals expose it in a factual workspace rail alongside the selected model,
114
+ mode, permission posture, tool/Skill/MCP counts, and memory state. Narrow
115
+ terminals collapse to one column, and team activity takes precedence over this
116
+ welcome-only rail.
117
+
85
118
  ## Storage
86
119
 
87
120
  Project-local data is kept in `.mosaic/` and ignored by default:
@@ -122,6 +155,10 @@ useful without silently accumulating guesses.
122
155
  Plan mode additionally injects a read-only, approval-oriented planning
123
156
  directive; Build mode is required before workspace mutation is possible.
124
157
  - Hooks are bounded subprocesses and receive structured environment metadata.
158
+ - Dynamic shell commands with no statically resolvable target use bounded
159
+ before/after content-fingerprint snapshots across workspace files. Incomplete
160
+ observation is persisted as unknown mutation tracking and forces an
161
+ unverified completion rather than a false no-change result.
125
162
  - Checkpoint restore validates paths before writing snapshots back.
126
163
  - Session and checkpoint directories reject symlinked `.mosaic` storage paths;
127
164
  local index files are schema-checked and out-of-root entries are discarded.
@@ -9,16 +9,18 @@ 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.5`.
12
+ - Current repository version: `0.3.8`.
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).
16
- - Retrieval: local BM25/path/symbol index with freshness validation and bounded
17
- packing; no retrieval service is required.
16
+ - Retrieval: local BM25/path/symbol index with visible interactive preparation,
17
+ persisted-content validation, and bounded packing; no retrieval service is
18
+ required.
18
19
  - Agent: provider-agnostic multi-turn runner for OpenAI, Anthropic, Gemini, and
19
20
  OpenAI-compatible endpoints; built-in tools, permissions, checkpoints,
20
21
  workflows, Skills, MCP, expert profiles, sessions, and memory are present.
21
- - UI: real Ink/React terminal UI, not a browser prototype. It supports prompt
22
+ - UI: real Ink/React terminal UI, not a browser prototype. Fresh wide sessions
23
+ include a factual workspace rail; all sizes support prompt
22
24
  history, `@file` completion, command completion, multiline editing, queued
23
25
  follow-ups, live context inspection, permission approval, themes, ASCII mode,
24
26
  `NO_COLOR`, and narrow-height degradation.
@@ -38,8 +40,8 @@ npm audit --omit=dev
38
40
  npm run release:verify -- --output-dir artifacts/package
39
41
  ```
40
42
 
41
- The latest verified package was `skein-code-cli-0.3.0.tgz`. The verifier writes
42
- its SHA-256 to `artifacts/package/skein-code-cli-0.3.0.tgz.sha256`, and CI
43
+ The latest verified package is `skein-code-cli-0.3.8.tgz`. The verifier writes
44
+ its SHA-256 to `artifacts/package/skein-code-cli-0.3.8.tgz.sha256`, and CI
43
45
  retains the checksum beside the package metadata. The checksum is deliberately
44
46
  not copied into this packaged document because doing so would change the
45
47
  archive it describes.
@@ -47,7 +49,7 @@ archive it describes.
47
49
  The final verification included a fresh install and real PTY interaction for
48
50
  all three executable aliases, `/about`, a permission prompt, denial, and clean
49
51
  Ctrl+C exit. PTY coverage included 20, 24 ASCII, 40, 80, 120 columns and a
50
- 40x10 short-height case. The current 35-file test suite passes the full check.
52
+ 40x10 short-height case. The current 37-file test suite passes the full check.
51
53
 
52
54
  ## Recommended Order
53
55
 
@@ -75,11 +77,10 @@ Implementation notes:
75
77
  - `npm run release:verify` reproduces the package from source, installs it into
76
78
  an isolated prefix, rejects packaged local state, and exercises `skein`,
77
79
  `mosaic`, and `mosaic-code`.
78
- - The `main` branch rule requires the strict `check` status. The v0.2.3 CI and
79
- release workflows completed successfully and npm published
80
- `@skein-code/cli@0.2.3` under the `latest` tag. The v0.3.0 package was
81
- reproduced and verified locally (34 test files, 317 tests, all three bin
82
- aliases); its tag, CI run, and `npm publish` to `latest` follow this commit.
80
+ - The `main` branch rule requires the strict `check` status. Version 0.3.8 adds
81
+ the startup context-readiness gate, branded wide welcome rail, runtime
82
+ completion evidence, and conservative dynamic-shell mutation tracking. Its
83
+ tag, GitHub verification, and npm publication use the same source commit.
83
84
 
84
85
  ### P1: Skein Storage Namespace And Migration
85
86
 
package/docs/PRODUCT.md CHANGED
@@ -68,14 +68,14 @@ Sources:
68
68
 
69
69
  | Surface | Capability |
70
70
  |---|---|
71
- | Context | Local BM25/path/symbol index, freshness checks, token packing, multi-root, `@file` mentions |
71
+ | Context | Local BM25/path/symbol index, visible startup build/validation gate, freshness checks, token packing, multi-root, `@file` mentions |
72
72
  | Models | OpenAI, Anthropic, Gemini, OpenAI-compatible endpoints |
73
- | Agent | Multi-turn tool loop, task plan, automatic verification, ask-only mode |
73
+ | Agent | Multi-turn tool loop, task plan, evidence-gated completion, automatic verification, ask-only mode |
74
74
  | Tools | Read, list, search, write, patch, shell, Git, context search, task updates |
75
75
  | Trust | Workspace path boundary, allow/ask/deny policy, command rules, hooks, checkpoints |
76
76
  | Sessions | Local persistence, resume/latest, list/show/delete/export |
77
- | UX | Ink TUI, action timeline, context telemetry, plan rail, inline permission band, interruption |
78
- | Automation | Prompt/stdin input, queue, quiet mode, JSON and JSONL event output, exit codes |
77
+ | UX | Ink TUI, responsive branded welcome/workspace rail, action timeline, context telemetry, plan rail, inline permission band, interruption |
78
+ | Automation | Prompt/stdin input, queue, quiet mode, JSON and JSONL output with verified/unverified status, exit codes |
79
79
  | Operations | Init, doctor, config, index/search/context/status, checkpoint management |
80
80
 
81
81
  ## Differentiation
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skein-code/cli",
3
- "version": "0.3.7",
3
+ "version": "0.3.8",
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,9 @@
16
16
  },
17
17
  "skein": {
18
18
  "releaseNotes": [
19
- "Terminal startup no longer leaks Kitty keyboard probes or wraps long model names into stray rows",
20
- "The fresh-session summary is denser and verified across narrow, wide, and short terminal layouts",
21
- "Prompt assembly now keeps optional orchestration guidance out of simple runs and strengthens language, user-work, and verification guardrails"
19
+ "Startup builds or reuses the local index and validates persisted workspace content before chat",
20
+ "Wide fresh sessions add a factual workspace rail for model, context, permissions, tools, and extensions",
21
+ "Completion requires current runtime evidence and conservatively tracks dynamic shell mutations"
22
22
  ]
23
23
  },
24
24
  "bin": {