strike v0.2.2
Install
curl -fsSL https://strike.jonathanung.ca/install | bashOr download an archive below, verify checksums.txt, and place strike on your PATH.
Changelog
Patch release: session scratch temp, harness tool broker, partial child handoffs on soft budget stop, diagnostics tool, config JSON Schema, and plugin contract docs. Protocol wire 1.12.0.
Added
- Session temporary directory — each engine session gets a private
os.TempDir()/strike/<session-id>/scratch root. Path tools (write/edit/apply_patch/notebook_edit) may write absolute paths under that root (siblings,.., and symlink escapes stay denied). The path is exposed in the environment prompt; the directory is removed onRunshutdown with bounded stale cleanup for crashes. Relative paths still bind only to the workspace (#877, #884). - Harness tool execution — custom function harnesses can run allowed tools mid-turn through the Strike runtime (
Input.Tools.Executeembedded; additivetool.execute/tool.resulton the external JSONL ABI) with the same permissions, hooks, sandbox, scheduler, redaction, and protocol events as the built-in loop. Finalharness.Resultremains the only committed assistant response. Go/TypeScript/Lean SDKs updated; provider-only Lean harnesses stay arity-compatible (#878, #885). - Partial child handoffs on budget exhaustion — soft per-child budgets (
tool_calls,tokens,wall_clock,cost_usd,dangerous_tools, hardstall/loop) attempt one tools-disabled finalization turn (~45s reserve) so children can return structured findings before stop.ChildCompletedrecordsbudgetKindand finalization outcome; handoffqualityiscomplete|partial|unavailable. Engine-tracked files and artifact refs always merge into the handoff. Hard cancel skips finalization (#879, #886). diagnosticstool — read-only, deferred model-facing workspace diagnostics backed by the LSP manager (workspace / directory / file scopes, severity filter, bounded stable JSON). Soft structured status when servers are missing or down; allow-by-default including the read-only permission preset (#880, #898).- Main config JSON Schema — versioned
schemas/strike-config.schema.jsonfor editor autocomplete/validation of high-traffic config keys. Point$schemaat the raw GitHub URL; Strike ignores$schemaat runtime (no fetch).additionalProperties: trueso unknown/future keys stay valid (#873, #900). - Plugin bundle contract (docs) — normative PLUGIN.1 contract in
docs/plugins.md(manifest, contribution matrix, trust/digest, path confinement, secrets). Loaders and install UX are not shipped yet (#725, #899).
Fixed
- Fixed live sessions losing their scratch temp dir when peer
EnsureSessionTempran stale cleanup after >24h idle on disk by refreshing mtime (at most hourly) on ensure hits (#877, #884). - Fixed macOS sandbox still blocking credential-backed CLIs (Keychain / SecurityServer / trustd) after the initial Keychain allowlist (#887).
Full changelog: v0.2.0...v0.2.2