@skein-code/cli 0.3.7 → 0.3.9

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,19 @@ 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.9`.
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 sessions use
23
+ a compact Skein identity; wide sessions add a grouped factual workspace rail;
24
+ all sizes support prompt
22
25
  history, `@file` completion, command completion, multiline editing, queued
23
26
  follow-ups, live context inspection, permission approval, themes, ASCII mode,
24
27
  `NO_COLOR`, and narrow-height degradation.
@@ -38,8 +41,8 @@ npm audit --omit=dev
38
41
  npm run release:verify -- --output-dir artifacts/package
39
42
  ```
40
43
 
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
44
+ The latest verified package is `skein-code-cli-0.3.9.tgz`. The verifier writes
45
+ its SHA-256 to `artifacts/package/skein-code-cli-0.3.9.tgz.sha256`, and CI
43
46
  retains the checksum beside the package metadata. The checksum is deliberately
44
47
  not copied into this packaged document because doing so would change the
45
48
  archive it describes.
@@ -47,7 +50,7 @@ archive it describes.
47
50
  The final verification included a fresh install and real PTY interaction for
48
51
  all three executable aliases, `/about`, a permission prompt, denial, and clean
49
52
  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.
53
+ 40x10 short-height case. The current 37-file test suite passes the full check.
51
54
 
52
55
  ## Recommended Order
53
56
 
@@ -75,11 +78,11 @@ Implementation notes:
75
78
  - `npm run release:verify` reproduces the package from source, installs it into
76
79
  an isolated prefix, rejects packaged local state, and exercises `skein`,
77
80
  `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.
81
+ - The `main` branch rule requires the strict `check` status. Version 0.3.9
82
+ refines the real four-stage context handoff, compact Skein welcome, and
83
+ grouped workspace rail. The startup readiness gate, runtime completion
84
+ evidence, and conservative dynamic-shell mutation tracking remain enforced.
85
+ Its tag, GitHub verification, and npm publication use the same source commit.
83
86
 
84
87
  ### P1: Skein Storage Namespace And Migration
85
88
 
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.9",
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
+ "First-run context preparation now shows the real inspect, build, persist, and verify stages",
20
+ "Fresh sessions add a compact Skein identity and grouped workspace rail without filling the terminal",
21
+ "Short and narrow terminals collapse the index handoff while preserving validation and recovery states"
22
22
  ]
23
23
  },
24
24
  "bin": {