@skein-code/cli 0.3.21 → 0.3.23

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.21`.
12
+ - Current repository version: `0.3.23`.
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.21.tgz`. The verifier writes
45
- its SHA-256 to `artifacts/package/skein-code-cli-0.3.21.tgz.sha256`, and CI
44
+ The latest verified package is `skein-code-cli-0.3.23.tgz`. The verifier writes
45
+ its SHA-256 to `artifacts/package/skein-code-cli-0.3.23.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,30 @@ 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.
111
+
112
+ Version `0.3.22` normalizes provider-reported cache and reasoning usage across
113
+ streaming and non-streaming OpenAI, Anthropic, and Gemini responses. Token
114
+ Ledger receipts, cumulative session usage, and JSON/JSONL events retain cached
115
+ input, cache-write input, and reasoning counts when present, including explicit
116
+ zero values. The session schema remains compatible with older records. This is
117
+ measurement plumbing only: it does not enable provider cache controls, define a
118
+ stable cache key, defer MCP connection/discovery, run paid same-model task A/B,
119
+ or complete Context Compaction 2.0.
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.
110
126
 
111
127
  ### P0-D: Repository reuse and calibrated duplication enforcement
112
128
 
@@ -355,10 +371,11 @@ Add a first-run catalog and inspection flow for bundled capabilities. Keep
355
371
  installation explicit and reviewable: show source, requested tools, filesystem
356
372
  scope, network scope, and trust state before activation. Add fixture servers and
357
373
  Skills that exercise timeout, malformed schema, disconnect, and version drift.
358
- Introduce lazy MCP schema discovery and declarative capability manifests before
359
- any marketplace. Do not load arbitrary plugin JavaScript in-process; package
360
- reusable extensions as data-only Skills/workflows plus explicitly trusted MCP
361
- servers, with an optional subprocess sandbox for stdio servers.
374
+ Lazy MCP activation is now the default chat path. Next, add declarative
375
+ capability manifests, per-server trust review, activation telemetry, and an
376
+ optional subprocess sandbox before any marketplace. Do not load arbitrary plugin
377
+ JavaScript in-process; package reusable extensions as data-only Skills/workflows
378
+ plus explicitly trusted MCP servers.
362
379
 
363
380
  ### P2: Memory Quality And User Control
364
381
 
@@ -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.21",
3
+ "version": "0.3.23",
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,12 @@
16
16
  },
17
17
  "skein": {
18
18
  "releaseNotes": [
19
+ "Normal chat startup now exposes a compact mcp_activate catalog instead of eagerly connecting MCP servers",
20
+ "MCP activation connects one selected server, discovers remote tools, and loads at most eight relevant schemas",
21
+ "Explicit MCP diagnostics can still connect eagerly while all MCP activation and remote calls remain network operations",
22
+ "OpenAI, Anthropic, and Gemini usage now normalizes cached input, cache-write input, and reasoning tokens when reported",
23
+ "Token Ledger, session totals, and structured usage events preserve provider cache and reasoning counts without prompt content",
24
+ "Streaming, non-streaming, explicit-zero, and legacy-session compatibility paths are covered without claiming cache activation",
19
25
  "Failed configured verification output yields bounded current-run diagnostic ranking without persisting paths",
20
26
  "Diagnostic hints cannot create zero-relevance hits and are cleared on success or the next agent run",
21
27
  "Python absolute and relative module imports now contribute deterministic offline graph adjacency",