@skein-code/cli 0.3.22 → 0.3.24

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.
@@ -268,13 +268,18 @@ JavaScript plugins are intentionally unsupported because they would share the
268
268
  CLI's full filesystem, environment, and process privileges.
269
269
 
270
270
  MCP is the interoperability boundary for external executable capabilities. It
271
- is disabled by default, removed from untrusted project configuration, exposes
272
- namespaced tools, treats server annotations as untrusted, and applies argument,
273
- schema, result, server-count, timeout, and transport limits. Every MCP call
274
- currently requires the network permission category. A configured stdio server
275
- is still an external program with the user's operating-system privileges; cwd
276
- and environment validation reduce accidental exposure but are not a sandbox.
277
- Only reviewed user-owned configuration should enable one.
271
+ is disabled by default, removed from untrusted project configuration, exposes a
272
+ compact lazy activation catalog during normal chat startup, treats server
273
+ annotations as untrusted, and applies argument, schema, result, server-count,
274
+ timeout, and transport limits. The `mcp_activate` catalog connects a selected
275
+ server on demand, discovers its remote tools, and registers at most eight
276
+ request-relevant schemas into the live registry; explicit diagnostic commands
277
+ such as `skein mcp status` can still connect all configured servers eagerly.
278
+ Every MCP activation and remote MCP call currently requires the network
279
+ permission category. A configured stdio server is still an external program
280
+ with the user's operating-system privileges; cwd and environment validation
281
+ reduce accidental exposure but are not a sandbox. Only reviewed user-owned
282
+ configuration should enable one.
278
283
 
279
284
  Before any marketplace-style plugin support, add a declarative capability
280
285
  manifest, first-run review, lazy tool-schema activation, per-server permission
@@ -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.22`.
12
+ - Current repository version: `0.3.24`.
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.22.tgz`. The verifier writes
45
- its SHA-256 to `artifacts/package/skein-code-cli-0.3.22.tgz.sha256`, and CI
44
+ The latest verified package is `skein-code-cli-0.3.24.tgz`. The verifier writes
45
+ its SHA-256 to `artifacts/package/skein-code-cli-0.3.24.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.
@@ -99,14 +99,15 @@ firewall policies while requiring complete evidence and recovery coverage.
99
99
  The replay reports a 36.7% estimated-input reduction; this is a deterministic
100
100
  budget measurement, not a provider billing or task-success claim.
101
101
 
102
- MCP tool definitions are now marked for progressive disclosure. Catalogs of
103
- eight or fewer eligible tools remain fully visible; larger catalogs disclose a
104
- deterministically ranked maximum of eight schemas. Selected schemas retain
105
- their registry order and remain loaded for the current run, and Token Ledger
106
- receipts record the deferred count. MCP tools remain `network` operations and
107
- hidden tool calls remain rejected by the existing boundary. This release does
108
- not defer MCP connection or remote `listTools` discovery and does not claim the
109
- provider-cache or Context Compaction 2.0 follow-up work is complete.
102
+ MCP tool definitions are now marked for progressive disclosure. Normal chat
103
+ startup exposes a compact `mcp_activate` catalog instead of connecting every
104
+ server. Selecting a configured server connects it, runs remote `listTools`, and
105
+ loads at most eight request-relevant schemas into the live registry. Selected
106
+ schemas retain their registry order and remain loaded for the current run, and
107
+ Token Ledger receipts record the deferred count. MCP activation and discovered
108
+ tools remain `network` operations, hidden tool calls remain rejected by the
109
+ existing boundary, and explicit diagnostics such as `skein mcp status` still
110
+ connect eagerly by design.
110
111
 
111
112
  Version `0.3.22` normalizes provider-reported cache and reasoning usage across
112
113
  streaming and non-streaming OpenAI, Anthropic, and Gemini responses. Token
@@ -117,6 +118,26 @@ measurement plumbing only: it does not enable provider cache controls, define a
117
118
  stable cache key, defer MCP connection/discovery, run paid same-model task A/B,
118
119
  or complete Context Compaction 2.0.
119
120
 
121
+ Version `0.3.23` completes the true lazy MCP lifecycle slice: normal chat
122
+ startup performs zero MCP transport connections and zero remote discovery until
123
+ the model explicitly calls `mcp_activate` for a configured server. The release
124
+ does not add per-server trust scopes, provider billing A/B, or Context
125
+ Compaction 2.0.
126
+
127
+ Version `0.3.24` completes the Context Compaction 2.0 engineering slice. Each
128
+ handoff rebuilds a deterministic facts envelope from the Task Contract,
129
+ working state, changed files, last-run verification, permission and failure
130
+ audit, retained artifact handles, and bounded older user corrections. Generated
131
+ narrative is fallible and optional; empty or contradictory output cannot erase
132
+ the authoritative facts, and the complete transcript remains persisted.
133
+ Automatic compaction calls the provider only when three predicted future prompt
134
+ reuses yield positive net estimated savings; explicit `/compact` remains a
135
+ manual override. Provider-reported or locally estimated compaction usage is
136
+ included in session totals and a separate content-free receipt. JSON/JSONL and
137
+ the Context Inspector expose the resulting decision without retaining prompt or
138
+ source text. Paid same-model task-success A/B remains required before closing
139
+ P0-E or making a provider-billing savings claim.
140
+
120
141
  ### P0-D: Repository reuse and calibrated duplication enforcement
121
142
 
122
143
  Version `0.3.14` added the prompt ladder and pre-write `ReuseReceipt`. Version
@@ -364,10 +385,11 @@ Add a first-run catalog and inspection flow for bundled capabilities. Keep
364
385
  installation explicit and reviewable: show source, requested tools, filesystem
365
386
  scope, network scope, and trust state before activation. Add fixture servers and
366
387
  Skills that exercise timeout, malformed schema, disconnect, and version drift.
367
- Introduce lazy MCP schema discovery and declarative capability manifests before
368
- any marketplace. Do not load arbitrary plugin JavaScript in-process; package
369
- reusable extensions as data-only Skills/workflows plus explicitly trusted MCP
370
- servers, with an optional subprocess sandbox for stdio servers.
388
+ Lazy MCP activation is now the default chat path. Next, add declarative
389
+ capability manifests, per-server trust review, activation telemetry, and an
390
+ optional subprocess sandbox before any marketplace. Do not load arbitrary plugin
391
+ JavaScript in-process; package reusable extensions as data-only Skills/workflows
392
+ plus explicitly trusted MCP servers.
371
393
 
372
394
  ### P2: Memory Quality And User Control
373
395
 
@@ -20,7 +20,7 @@ product surfaces.
20
20
 
21
21
  | Area | Mainstream signal | Skein today | Product implication |
22
22
  | --- | --- | --- | --- |
23
- | Context | Auggie automatically indexes projects and offers context-aware interactive and print modes. Its MCP Tool Search avoids loading every remote schema up front. See [Auggie overview](https://docs.augmentcode.com/cli/overview) and [integrations](https://docs.augmentcode.com/cli/integrations). | Local BM25/path/symbol retrieval with language-aware chunks, current-file freshness checks, diversity-aware token packing, progressive Skills, and hard token caps. MCP schemas are registered eagerly. | Benchmark local recall and latency by language, then make MCP tool discovery lazy and measurable. |
23
+ | Context | Auggie automatically indexes projects and offers context-aware interactive and print modes. Its MCP Tool Search avoids loading every remote schema up front. See [Auggie overview](https://docs.augmentcode.com/cli/overview) and [integrations](https://docs.augmentcode.com/cli/integrations). | Local BM25/path/symbol retrieval with language-aware chunks, current-file freshness checks, diversity-aware token packing, progressive Skills, and hard token caps. Normal chat startup exposes only a compact `mcp_activate` server catalog; remote MCP connection, `listTools`, and up to eight relevant schemas are loaded on demand. | Measure lazy MCP activation cost and add per-server trust review/sandboxing before marketplace-style plugin support. |
24
24
  | Tool result economy | FastCtx argues for structured file/search tools, explicit pagination, bounded output tiers, and persistent background-job logs so the model spends fewer turns on shell mechanics. See the [FastCtx repository](https://github.com/yc-duan/fastctx) and its [LINUX DO introduction](https://linux.do/t/topic/2612425). These are design signals, not independent evidence that every model becomes more accurate. | Native tools already use closed schemas and permission/checkpoint boundaries. Oversized results now use a dynamic token budget, head/tail receipts, source-truncation telemetry, and redacted session-scoped local readback. Single-file UTF-8 reads and foreground-only shell execution remain narrower than FastCtx. | Keep FastCtx optional through MCP instead of duplicating the default kernel. Add measured read/list/search continuation and batch reading before considering persistent background jobs. |
25
25
  | Workflow modes | Claude Code documents isolated subagents, agent teams, hooks, code intelligence, Skills, MCP, and plugins in one extension model. See [Claude Code extensions](https://code.claude.com/docs/en/features-overview). Copilot CLI exposes Plan and Autopilot modes. See [Copilot CLI](https://github.com/features/copilot/cli). | Ask and Build modes exist; Ask is read-only but does not produce a named approval-ready plan. | Add an explicit Plan mode. Keep it read-only and require approval before Build. |
26
26
  | Code intelligence | Claude Code advertises language-server-backed symbol navigation and live type errors. | Retrieval is lexical/BM25/path/symbol index based; no LSP diagnostics or rename graph. | Add an optional LSP adapter after storage and scheduler foundations. |
@@ -43,8 +43,9 @@ product surfaces.
43
43
  quarantining the canonical copy; `--recover` handles interrupted operations;
44
44
  `--home` covers user-level state. Shared leases cover live managed writers,
45
45
  while namespace mutation requires an exclusive crash-released lease.
46
- 4. **P1 MCP progressive disclosure:** search and activate remote tool schemas
47
- on demand instead of placing every schema in every model request.
46
+ 4. **P1 MCP trust hardening:** add per-server review, capability manifests,
47
+ activation telemetry, and optional stdio sandboxing on top of lazy MCP
48
+ activation.
48
49
  5. **P1 scheduler and isolation:** retain the shipped task-budget telemetry and
49
50
  reviewer loop, then add cancellation propagation, deterministic integration,
50
51
  and single-writer/worktree boundaries.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skein-code/cli",
3
- "version": "0.3.22",
3
+ "version": "0.3.24",
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,13 @@
16
16
  },
17
17
  "skein": {
18
18
  "releaseNotes": [
19
+ "Context compaction now rebuilds authoritative task, working-state, verification, permission, failure, and artifact facts outside generated narrative",
20
+ "Automatic compaction runs only when three predicted prompt reuses produce positive net token savings while explicit compact commands remain available",
21
+ "Compaction provider usage is included in session totals with separate content-free actual or estimated receipts",
22
+ "Empty or lossy narratives cannot erase deterministic facts, and the complete persisted transcript remains unchanged",
23
+ "Normal chat startup now exposes a compact mcp_activate catalog instead of eagerly connecting MCP servers",
24
+ "MCP activation connects one selected server, discovers remote tools, and loads at most eight relevant schemas",
25
+ "Explicit MCP diagnostics can still connect eagerly while all MCP activation and remote calls remain network operations",
19
26
  "OpenAI, Anthropic, and Gemini usage now normalizes cached input, cache-write input, and reasoning tokens when reported",
20
27
  "Token Ledger, session totals, and structured usage events preserve provider cache and reasoning counts without prompt content",
21
28
  "Streaming, non-streaming, explicit-zero, and legacy-session compatibility paths are covered without claiming cache activation",