@kal-elsam/kairo-runtime 0.13.0 → 0.14.0

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.
package/CHANGELOG.md ADDED
@@ -0,0 +1,1202 @@
1
+ # Changelog
2
+
3
+ All notable changes to `@kal-elsam/kairo-runtime` are documented here.
4
+ Historical entries below may reference the legacy `@kal-elsam/harness` package name.
5
+
6
+ ## Unreleased
7
+
8
+ ## 0.14.0 — 2026-08-07 (Kairo Runtime)
9
+
10
+ Minor release. Simpler Cockpit, one-command CLI self-update, pnpm for
11
+ contributors, and a minimal IDE status panel. Publish tag:
12
+ `kairo-runtime-v0.14.0`.
13
+
14
+ ### Added
15
+
16
+ - Cockpit Home with three tabs (Home · Settings · History) and two clear
17
+ actions (prepare/repair + Configure). Secondary destinations stay in `/`.
18
+ - `kairo update`: update the Kairo CLI from npm (`--yes` applies). Workspace
19
+ template refresh stays at `kairo update --scope=workspace`.
20
+ - VS Code / Cursor extension scaffold in `packages/kairo-vscode`: status bar +
21
+ explorer tree from `kairo status --json`; sync/doctor/cockpit open a terminal
22
+ (no silent writes). Local VSIX via `npm run package`.
23
+
24
+ ### Changed
25
+
26
+ - Local development and CI use **pnpm 10.x** (`packageManager` pinned). End-user
27
+ installs and `npm publish` (OIDC Trusted Publishing) stay on npm.
28
+ - Install scripts blocked by default (`pnpm.onlyBuiltDependencies: []`);
29
+ `.npmrc` sets `strict-dep-builds` and `minimum-release-age=1440`.
30
+
31
+ ## 0.13.1 — 2026-08-07 (Kairo Runtime)
32
+
33
+ Patch release. Docs/UX/license polish for npm adoption. Publish tag:
34
+ `kairo-runtime-v0.13.1`.
35
+
36
+ ### Changed
37
+
38
+ - Cockpit Overview: plain-language purpose + one next step; companion system
39
+ dumps moved off the first screen (Details only).
40
+ - License: `UNLICENSED` → **MIT** (root `LICENSE`; also `@kal-elsam/harness` bridge).
41
+ - npm README trimmed to a short product page; long reference moved under `docs/`.
42
+ - `kairo help` shows four day-to-day commands; `kairo help --all` lists the rest.
43
+
44
+ ## 0.13.0 — 2026-08-07 (Kairo Runtime)
45
+
46
+ Minor release. Obsidian Knowledge Hub: human knowledge surface under `Kairo/`
47
+ with consent-gated publish and Cockpit status (no auto-sync). Publish tag:
48
+ `kairo-runtime-v0.13.0`.
49
+
50
+ ### Added
51
+
52
+ - Obsidian vault adapter: absolute vault path only; access limited to `Kairo/`;
53
+ refuses escaping symlinks, `.obsidian`, attachments, and secret basenames.
54
+ - Knowledge preview from injectable Engram/Graphify *export* adapters (never
55
+ internal DBs); Markdown proposals with frontmatter + wikilinks.
56
+ - Consent-gated publisher: atomic write, backups under `.kairo-backups/`,
57
+ refuse overwrite of manual notes; dry-run / missing consent never writes.
58
+ - Knowledge views: projects / decisions / architecture / sessions / reviews
59
+ index helpers + index-note proposals (publish via consent only).
60
+ - Cockpit companion `signals.obsidian.vault` + display lines (wide/compact/
61
+ minimal). Unconfigured without absolute `obsidianVaultPath`; no write CTAs.
62
+
63
+ ### Compatibility
64
+
65
+ - Obsidian is a human UI — not a fourth authority beside Engram/Graphify/Kairo.
66
+ - No automatic vault sync; no silent writes.
67
+ - Companion overlays remain secondary to governance health/CTA.
68
+
69
+ ## 0.12.0 — 2026-08-07 (Kairo Runtime)
70
+
71
+ Minor release. Observe-and-recommend companion surfaces: Hermes activity,
72
+ local system resources + advisor, pinned agent-skills bundle, and read-only
73
+ ecosystem update checks. Publish tag: `kairo-runtime-v0.12.0`.
74
+
75
+ ### Added
76
+
77
+ - HermesProvider companion: loopback probe, session activity signal, Cockpit
78
+ overlay lines (wide/compact/minimal). Observe-only — no start/stop control.
79
+ - Local Resource Advisor: macOS system resource sampling (memory/swap/disk/
80
+ processes), deterministic recommendations, Cockpit display. No mutators.
81
+ - Pinned complementary agent-skills component under
82
+ `global-template/components/agent-skills/` (rev `d2478bf0…`).
83
+ - Ecosystem Update Advisor (check surface): `loadEcosystemUpdates`,
84
+ `kairo updates check`, companion `signals.ecosystem.updates`, Cockpit
85
+ Updates lines. Read-only — consent-gated apply deferred.
86
+
87
+ ### Compatibility
88
+
89
+ - Auto-detect only; apply/publish still requires explicit consent.
90
+ - Companion overlays remain secondary to governance health/CTA.
91
+ - No permanent daemon; no silent writes from these surfaces.
92
+
93
+ ## 0.11.0 — 2026-07-31 (Kairo Runtime)
94
+
95
+ Minor release. Cockpit visual identity: amber/ice brand palette, borderless
96
+ shell composition, responsive ASCII wordmark on Overview, and operational
97
+ panel titles with ice focus. Publish tag: `kairo-runtime-v0.11.0`.
98
+
99
+ ### Changed
100
+
101
+ - Brand theme: amber for brand chrome, ice for interactive focus — replaces
102
+ cyan/magenta nested frames.
103
+ - Borderless Cockpit shell: compact header, segmented nav, single-line footer
104
+ without nested panel borders.
105
+ - Overview product cover: static Kairo ASCII wordmark beside status on
106
+ wide/compact layouts; textual brand line on minimal.
107
+ - Shared `ViewTitle` / section labels on Governance, Activity, Orchestration,
108
+ Usage, Settings, and Alerts with ice focus affordances.
109
+ - Loading/error splash colors respect `NO_COLOR` via terminal capabilities.
110
+
111
+ ### Compatibility
112
+
113
+ - No models, keys, CLI, or public API contract changes.
114
+ - Keyboard-first, local, single-user; Ink + React retained.
115
+ - `NO_COLOR`, ASCII glyph fallbacks, and existing shell chrome contracts preserved.
116
+ - README unchanged for this slice.
117
+
118
+ ## 0.10.0 — 2026-07-31 (Kairo Runtime)
119
+
120
+ Minor release. Terminal-first Ink UX Control Plane: semantic primitives across
121
+ the six primary Cockpit surfaces, Setup, Alerts, and NO_COLOR-safe shell chrome.
122
+ Publish tag: `kairo-runtime-v0.10.0`.
123
+
124
+ ### Added
125
+
126
+ - Semantic Ink primitives (ActionList, Callout, Confirm, Details, Receipt, KeyBar,
127
+ Stepper) with clear ownership: Callout=status · section owns data · footer/KeyBar=keys.
128
+ - Six primary surfaces on the shared model: Overview, Governance, Activity,
129
+ Orchestration, Usage, Settings.
130
+ - Semantic SetupApp (Detect → Agents → Components → Preview → Confirm) with real
131
+ handoff from Overview setup CTA.
132
+ - Semantic Alerts inbox with windowed focus (compact 3 / wide 8); Enter resolve /
133
+ D dismiss unchanged.
134
+ - Semantic Settings browse → preview → confirm → receipt (`wroteFiles: false`);
135
+ confirm records intent only — does not install packages.
136
+ - Semantic Usage / Tokens: measured budget pairs, profile limits, finite run
137
+ tokenUsage fields only; never invents totals, costs, or savings.
138
+
139
+ ### Changed
140
+
141
+ - Cockpit shell chrome respects `NO_COLOR` and ASCII glyph fallbacks.
142
+ - Progressive disclosure: paths/IDs stay in Details; lists keep domain navigation
143
+ beyond visual caps with honest remainders (`… N more`).
144
+
145
+ ### Compatibility
146
+
147
+ - Keyboard-first, local, single-user; Ink + React retained.
148
+ - Bare `kairo` and explicit CLI commands unchanged.
149
+ - Web loopback / `kairo ui` deferred out of this milestone.
150
+ - IDEs / Modules / Diagnostics lists and Launch/detail remain legacy string panels
151
+ for a follow-up 0.10.x or next milestone.
152
+
153
+ ## 0.9.0 — 2026-07-30 (Kairo Runtime)
154
+
155
+ Minor release. Local AI Control Plane: task-oriented Cockpit, alerts inbox,
156
+ opt-in monitor, curated Settings. Publish tag: `kairo-runtime-v0.9.0`.
157
+
158
+ ### Added
159
+
160
+ - Responsive single-panel Cockpit (TopBar + nav strip + main panel + full-width
161
+ footer); wide / compact / minimal; SYSTEM side column retired.
162
+ - Six destinations: Overview, Governance, Activity, Orchestration, Usage, Settings.
163
+ - Action palette (`/`) for destinations and refresh.
164
+ - Alert contracts + store + Cockpit inbox (resolve / dismiss).
165
+ - `kairo monitor enable|disable|status|tick` with macOS LaunchAgent autostart;
166
+ drift / orphan / failed runs → alerts; notify only on new claims.
167
+ - Settings curated catalog (`pi-usage-widget@0.2.1`, MIT): browse → preview →
168
+ confirm shows an in-session confirmation receipt; does not persist or install
169
+ anything.
170
+
171
+ ### Compatibility
172
+
173
+ - Keyboard-first, local, single-user; Ink + React retained.
174
+ - Monitor autostart is opt-in; unsupported OS degrade without false “installed”.
175
+ - Settings confirm shows an in-session receipt only; neither persists nor installs.
176
+ - Orchestration / Usage stay summaries; Cockpit does not drive Pi orchestration.
177
+
178
+ ## 0.8.0 — 2026-07-28 (Kairo Runtime)
179
+
180
+ Minor release. Context Orchestration for Pi: durable DAG, isolated minions,
181
+ budgets, cancel cascade, recovery receipts. Publish tag: `kairo-runtime-v0.8.0`.
182
+
183
+ ### Added
184
+
185
+ - `kairo run --agent pi --strategy orchestrated` with managed minion extension.
186
+ - Ephemeral Pi minions (read-only tools, path allowlist, no nested depth > 1).
187
+ - Context budgets at 70% compact / 90% stop; task retries (max 2); cascade cancel.
188
+ - Durable orchestration state under `~/.harness/runs/<root>/orchestration/state.json`
189
+ and write-once `receipt.json` (secret-free; `recovered` on interrupt).
190
+ - Supervisor-injected `KAIRO_ORCH_*` identity; root lineage from persisted state.
191
+
192
+ ### Compatibility
193
+
194
+ - Orchestrated requires Pi + managed extension; direct strategy unchanged.
195
+ - No same-root resume; Cockpit does not drive orchestration in this release.
196
+
197
+ ## 0.7.0 — 2026-07-27 (Kairo Runtime)
198
+
199
+ Minor release. Bounded native review via explicit Codex or Pi agent, Git-scoped
200
+ snapshots, fail-closed limits, secret-free receipts, CLI, and a read-only Reviews
201
+ subview inside Cockpit Runs. Publish tag: `kairo-runtime-v0.7.0`.
202
+
203
+ ### Added
204
+
205
+ - Git snapshot contracts for working-tree / `--base` / `--commit` with fingerprints,
206
+ fail-closed limits, private-path consent, and binary exclusion.
207
+ - Atomic write-once receipts under `~/.harness/reviews/<id>/receipt.json` (no prompt,
208
+ diff, or transcript persistence).
209
+ - Bounded Codex (`exec review`) and Pi (JSON mode, ephemeral session, tools
210
+ `read,grep,find,ls`) drivers.
211
+ - CLI: `kairo review --agent codex|pi` and `kairo reviews list|show` with `--json`
212
+ and `--fail-on high|medium|low`.
213
+ - Cockpit Runs hub item **Reviews** with read-only list and receipt detail.
214
+ - Public adapter field `reviewCompatible` (true for Codex and Pi; false for Cursor,
215
+ Claude, and OpenCode until audited).
216
+
217
+ ### Compatibility
218
+
219
+ - One reviewer per run; Codex + Pi only in v1; Git required; `--agent` always explicit.
220
+ - No Intelligence routing, auto-fix, background reviews, or dual review.
221
+ - Receipts remain secret-free; Cockpit never launches reviews in this release.
222
+
223
+ ## 0.6.0 — 2026-07-21 (Kairo Runtime)
224
+
225
+ Minor release. First-class Pi managed adapter and auditable runtime while Kairo
226
+ remains the control plane. Publish tag: `kairo-runtime-v0.6.0` (leave any legacy
227
+ `v0.6.0` tag untouched).
228
+
229
+ ### Added
230
+
231
+ - Pi managed adapter at `~/.pi/agent/AGENTS.md` with opaque auth and separate
232
+ config-dir vs CLI detection. Setup/status/doctor/sync/uninstall/JSON/Control
233
+ Center now surface five agents.
234
+ - Pi in SDD managed/shared destinations: nine skills materialize once under
235
+ `~/.agents/skills` (shared with Cursor/Codex/OpenCode); teaching persona gates
236
+ through the Pi managed AGENTS.md section.
237
+ - Engram slug `pi` via official `engram setup pi`. Positive evidence requires
238
+ `settings.json` packages (`npm:gentle-engram`, `npm:pi-mcp-adapter`) and
239
+ `mcp.json` `mcpServers.engram`. Success reports `restart_required`; Pi-installed
240
+ packages remain provider-owned residue on rollback.
241
+ - Runtime: `kairo run --agent pi --task "…" [--permissions read-only] [--follow]`
242
+ launches `pi --mode json --no-session`, maps official NDJSON tool/usage/lifecycle
243
+ events without persisting full args/results/secrets, and probes `pi --help` for
244
+ `--mode` / `--no-session` compatibility.
245
+
246
+ ### Compatibility
247
+
248
+ - Custom `PI_CODING_AGENT_DIR` is out of scope: config plan/apply/uninstall fail
249
+ before writes; runtime launches remain available.
250
+ - Auth stays unknown/opaque — Kairo never reads credentials or asserts
251
+ subscription/entitlement/balance.
252
+ - Pi is not an Intelligence backend and is never auto-installed.
253
+ - Adding `pi` to existing state v4 agent arrays needs no migration.
254
+
255
+ ## 0.5.1 — 2026-07-21 (Kairo Runtime)
256
+
257
+ Patch release. Atomic JSON replacement for run coordination files so the main
258
+ process and detached supervisor never observe truncated state. Publish tag:
259
+ `kairo-runtime-v0.5.1`.
260
+
261
+ ### Fixes
262
+
263
+ - Write `state.json`, `cancel.signal.json`, and `supervisor.lock.json` via
264
+ temp + `O_EXCL` + fsync + atomic rename (cleanup temp on any failure).
265
+ - Readers only ever see the previous or next complete JSON; concurrent writers
266
+ leave parseable JSON with no residual temps.
267
+ - Preserve in-process write ordering and cancel-signal + fresh read before
268
+ terminal state so `stopRun` against a concurrent supervisor ends `CANCELLED`.
269
+
270
+ ### Compatibility
271
+
272
+ - No schema, path, event JSONL, handoff, or public API changes.
273
+ - Atomic replace only — not distributed locking or compare-and-swap.
274
+
275
+ ## 0.5.0 — 2026-07-20 (Kairo Runtime)
276
+
277
+ Minor release. Governance-first control plane: read-only scan, evidence-backed
278
+ proposals, strict context budgets, Control Center presentation, and confirmed
279
+ preview/apply/recovery. Publish tag: `kairo-runtime-v0.5.0`.
280
+
281
+ ### Added
282
+
283
+ - Control-plane snapshot + Control Center cockpit (health, coverage, CTA, notes).
284
+ - Evidence-backed `proposals[]` derived only from status, checks, diff, adapters,
285
+ and policy (no proposal without evidence; optional intelligence absence is neutral).
286
+ - Changes preview → confirm → apply → re-scan → receipt/rollback (managed assets only).
287
+ - Activity & recovery snapshot restore with safety backups.
288
+ - Operational SDD Core: `kairo components configure|verify|rollback sdd-core`
289
+ materializes nine canonical skill directories (`SKILL.md` + `references/contract.md`),
290
+ optional `--persona teaching` per managed agent (`personaAgentIds`, off by default),
291
+ real verify health (`configured|missing|drifted|conflict`), receipts under
292
+ `~/.harness/integrations/sdd-core/`, and bounded rollback that refuses incomplete
293
+ evidence and never clobbers mismatched `afterHash` destinations.
294
+ - Lifecycle auto-materialization: when `sdd-core` is selected/installed,
295
+ `install` / `setup` / `sync` / `upgrade` reuse `sdd-core.apply` with
296
+ `preservePersona` (no second consent prompt; teaching never auto-activates).
297
+ Results expose `integrations.sdd` (partial/conflicts/receipt) and aggregated
298
+ `sessionRefreshRequired`.
299
+ - SDD state v4: durable `state.sdd` with explicit `personaAgentIds`, tracked files
300
+ (relativePath + skillHash), fail-closed future `stateVersion`, and partial
301
+ receipt reconciliation (track only applied/verified-noop; rollback mutates
302
+ then reconciles even when global `ok=false`).
303
+ - Engram Operational Lifecycle: `kairo components configure|rollback engram-memory`
304
+ delegates to official `engram setup <agent>` with dry-run, consent, receipts under
305
+ `~/.harness/integrations/engram/`, and bounded rollback. Supported Engram range
306
+ `>=1.19.0 <2.0.0`; older binaries get upgrade guidance only (no silent update).
307
+ Doctor/status show binary/version and per-agent config evidence; Engram issues
308
+ degrade only `engram-memory`.
309
+ - Component Manifest v2: `schemaVersion`, `kind`, `capabilities`, `dependencies`,
310
+ `healthChecks`, with validation (IDs, versions, safe paths, duplicates, cycles)
311
+ and deterministic topological resolution.
312
+ - Public component health states (`healthy` / `degraded` / `drifted` / `missing`)
313
+ on `status`, `doctor`, components listing, and JSON (`componentHealth`).
314
+ Engram/Graphify/SDD integration warnings degrade the component without failing
315
+ global doctor when only that component is affected.
316
+ - OpenCode Go / Zen as first-class Intelligence backends via `OPENCODE_API_KEY`
317
+ (`opencode-go`, `opencode-zen`) with an explicit transport registry
318
+ (`chat_completions`, `responses`, `runtime`).
319
+ - OpenCode CLI runtime backend (`opencode`) for Anthropic/Google models without
320
+ direct HTTP transport, using `opencode run --format json` plus an analysis-only
321
+ preamble (intent signal, not a universal non-mutation guarantee).
322
+ - Safe OpenCode evidence: CLI install + `opencode auth list` providers + `/models`
323
+ probe. States distinguish `configured`, `authenticated`,
324
+ `entitlement_unverified`, and `limit_reached` without reading `auth.json` or
325
+ claiming subscription/balance from a key alone.
326
+ - Ephemeral `--backend` / `--model` overrides for `intelligence models|route|ask`
327
+ (does not persist `preferredBackend` / `preferredModel`).
328
+ - Doctor advisory check for intelligence providers (optional; never fails health).
329
+
330
+ ### Changed
331
+
332
+ - Context compiler: `stableBudgetTokens` covers AGENTS.md + stable docs as one
333
+ budget; `requestBudgetTokens` is shared across requested files; truncation
334
+ markers stay inside the limit; evidence records `excluded_budget` and usage.
335
+ - Control Center / Changes show proposals with severity, destination links, and
336
+ evidence sources (no sensitive dumps; Runs remain secondary).
337
+ - Bundled component catalog migrated to Manifest v2; workspace v1 catalogs
338
+ continue to normalize in-memory. SDD catalog assets ship full skill directories
339
+ (including `references/`) plus `personas/teaching.md`.
340
+ - SDD configure/rollback use the shared apply-confirmation policy: non-interactive
341
+ apply without `--json` requires `--yes`/`--confirm`/`--no-preflight`; `--json`
342
+ skips the prompt/consent gate. Conflicts are never overwritten.
343
+ - Default cloud routing precedence: Ollama → OpenCode Go → OpenCode Zen →
344
+ OpenRouter. Go limit failures never auto-spend Zen credits.
345
+ - Health guidance treats API-key presence as configured credentials, not proven
346
+ authentication, and recommends Ollama, OpenCode CLI, `OPENCODE_API_KEY`, and
347
+ `OPENROUTER_API_KEY`.
348
+ - Engram and Graphify remain external integrations: proposals only when config,
349
+ version, or freshness evidence exists; never claim active runtime.
350
+
351
+ ### Compatibility
352
+
353
+ - Additive snapshot/context fields only (`proposals`, budget usage,
354
+ `excluded_budget`). Existing CLI commands and state formats remain compatible.
355
+ - No autonomous writes; preview/apply still require confirmation.
356
+
357
+ ## 0.4.3 — 2026-07-13
358
+
359
+ Patch release. Fix System health crash on real profile.sources.
360
+
361
+ ### Fixes
362
+
363
+ - Format `profile.sources` from the real `{ global, project }` contract as
364
+ `global`, `project`, or `none` instead of calling `.join()` on the object.
365
+
366
+ ### Compatibility
367
+
368
+ - Runtime, commands, and persisted formats unchanged.
369
+
370
+ ## 0.4.2 — 2026-07-13
371
+
372
+ Patch release. Prefer launchable agents over missing global-state markers in Home CTA.
373
+
374
+ ### Fixes
375
+
376
+ - Home readiness/NEXT prefer New run whenever any agent is launchable, even if
377
+ `~/.harness/state.json` is absent or `diagnostics.detected` is still 0.
378
+
379
+ ### Compatibility
380
+
381
+ - Runtime, commands, and persisted formats unchanged.
382
+
383
+ ## 0.4.1 — 2026-07-13
384
+
385
+ Patch release. Prefer launchable agents over empty diagnostics.detected in Home readiness/CTA.
386
+
387
+ ### Fixes
388
+
389
+ - Home readiness and NEXT treat launchable agents as ready-to-work even when `diagnostics.detected` is still 0.
390
+
391
+ ### Compatibility
392
+
393
+ - Runtime, commands, and persisted formats unchanged.
394
+
395
+ ## 0.4.0 — 2026-07-13
396
+
397
+ Minor release. Informative Home and clearer cockpit navigation.
398
+
399
+ ### Features
400
+
401
+ - Replace Overview/Mission Control with Home that explains Kairo, derives readiness
402
+ (`Needs setup` / `Needs attention` / `Limited` / `Ready to work`), and recommends a
403
+ real next action with an Enter destination.
404
+ - Prefer **New run** when any agent is launchable; missing intelligence is an optional
405
+ limitation, not a blocker.
406
+ - Rename navigation: Home, Running now, History, Agents, New run, System health — with
407
+ contextual descriptions, status summaries, and selected ≠ currently open section.
408
+ - System health separates agents, intelligence, authentication, and configuration.
409
+ - Readable recent/active run lines; empty states explain absence and suggest next steps.
410
+ - Wide/compact/minimal preserve critical Home information; list windowing covers agents
411
+ and diagnostics; load errors offer `R Retry` while Esc remains available.
412
+
413
+ ### Compatibility
414
+
415
+ - Internal view ids, explicit commands, runtime, profiles, and run formats are unchanged.
416
+ - UI copy remains English. `NO_COLOR`, `HARNESS_ASCII=1`, and `HARNESS_INK=0` stay supported.
417
+
418
+ ### Docs
419
+
420
+ - Quick Start describes Home, renamed navigation, and layout parity.
421
+
422
+ ## 0.3.1 — 2026-07-13
423
+
424
+ Patch release. Predictable cockpit navigation focus and contextual footer hints.
425
+
426
+ ### Fixes
427
+
428
+ - Informational views (Overview, Diagnostics, Providers, Help) keep navigation focus
429
+ so ↑↓/Enter switch sections without requiring Tab.
430
+ - Esc returns deterministically: nested run detail → list → Overview → exit.
431
+ - Tab only switches regions when content is interactive (runs lists, launch).
432
+ - Footer lists only keys that work in the current context.
433
+
434
+ ### Compatibility
435
+
436
+ - Runtime, persisted formats, and explicit commands are unchanged.
437
+
438
+ ## 0.3.0 — 2026-07-13
439
+
440
+ Minor release. Full-screen responsive cockpit TUI for interactive shell and setup.
441
+
442
+ ### Features
443
+
444
+ - Idempotent alternate-screen session across onboarding → setup → cockpit, with
445
+ restore on normal exit, Ctrl+C, SIGTERM, SIGHUP, and errors.
446
+ - Deep-space cockpit shell: navigation, mission control, and system strip with
447
+ textual status labels (never color-only).
448
+ - Responsive layouts: wide (≥100×28), compact (≥72×20), minimal (60–71 or short),
449
+ live resize, truncated lists with `… more`; `<60` columns keep the explicit TTY gate.
450
+ - Region navigation: arrows within a region, Tab between regions, Enter to open,
451
+ Esc to return (exit only from Home), `R` refresh, `C` cancel, `?` help.
452
+ - Setup Ink UI shares the cockpit theme/panel language without changing setup logic.
453
+
454
+ ### Compatibility
455
+
456
+ - Bare `kairo` routing, `kairo shell`, setup flags, explicit commands, JSON, and
457
+ non-TTY flows are unchanged. `state.json`, profiles, and run formats are unchanged.
458
+ - `NO_COLOR`, limited Unicode (`HARNESS_ASCII=1`), and `HARNESS_INK=0` remain supported.
459
+ - Direct dependency: `ansi-escapes`.
460
+
461
+ ### Docs
462
+
463
+ - Quick Start and help describe the cockpit, breakpoints, and keybindings.
464
+
465
+ ## 0.2.3 — 2026-07-13
466
+
467
+ Patch release. First-run onboarding and guided returning dashboard.
468
+
469
+ ### Features
470
+
471
+ - Bare interactive `kairo` routes by `~/.harness/state.json`: missing → onboarding
472
+ (welcome → diagnosis → confirmed setup) then dashboard; present → operations dashboard.
473
+ - Dashboard shows a stable purpose line and a contextual next step (configure,
474
+ enable intelligence, launch a run, or review problems).
475
+ - Explicit commands, setup flags, and non-TTY flows keep prior behavior.
476
+
477
+ ### Docs
478
+
479
+ - Quick Start and `--help` describe first-run vs returning routing.
480
+
481
+ ## 0.2.2 — 2026-07-10
482
+
483
+ Minor release. Kairo Runtime MVP: launch, supervise, and audit agent CLI runs with
484
+ privacy-first persistence and cross-process supervision.
485
+
486
+ ### Features
487
+
488
+ - CLI: `kairo run`, `kairo runs list|show|stop` with `--no-wait`, `--model`, and opt-in transcript capture.
489
+ - Execution adapters for Cursor, Codex, and Claude Code; OpenCode inspect-only in v1.
490
+ - Persisted audit trail under `~/.harness/runs/<runId>/` (`state.json`, `events.jsonl`).
491
+ - Detached supervisor via `spawn` (no fork IPC); `starting` grace for cross-process recover.
492
+ - TUI operations dashboard with multi-step launch wizard (agent, task, model, permissions).
493
+ - Smoke script: `scripts/runtime-mvp-smoke.sh` with `SMOKE_MODEL` override.
494
+
495
+ ### Security
496
+
497
+ - Task content is not stored in audit artifacts; only `taskDigest` + `taskLength`.
498
+ - Ephemeral `handoff.json` is consumed or cleaned on cancel, fail, or recover.
499
+
500
+ ## 0.2.1 — 2026-07-10
501
+
502
+ Patch release. Fixes the orchestrator Diagnostics menu entry so it opens a
503
+ dedicated read-only view instead of silently staying on Home.
504
+
505
+ ### Fixes
506
+
507
+ - Orchestrator **Diagnostics** maps to a `DIAGNOSTICS` view with summary, intelligence
508
+ availability, agent capabilities, and recommendations.
509
+ - Home keeps the compact snapshot; `Esc` still returns to the menu from subviews.
510
+ - Menu navigation uses shared pure helpers covered by `test/orchestrator-state.test.js`.
511
+
512
+ ## 0.2.0 — 2026-07-09
513
+
514
+ Minor release. Harness Engineering intelligence layer: governed project context,
515
+ local-first backends, cloud opt-in, token budgets, and provider-neutral routing.
516
+
517
+ ### Features
518
+
519
+ - Pluggable intelligence backends: Ollama (local) and OpenRouter (`openrouter/free` candidate).
520
+ - Custom OpenAI-compatible HTTP providers via profile `customProviders` (`baseUrl` + `apiKeyEnv` only).
521
+ - Context compiler builds evidence-based `ContextPack` (stable + per-request) without dumping the repo.
522
+ - Routing prefers user overrides, then Ollama, then OpenRouter free after explicit cloud consent.
523
+ - Privacy gates: private paths excluded by default; cloud invoke requires consent + confirmation.
524
+ - Token budgets and usage telemetry (input/output/cached/model/fallback).
525
+ - CLI: `kairo intelligence status|models|context|route|ask`.
526
+ - Orchestrator shell menu includes Intelligence diagnostics.
527
+ - Profile fields: `preferredBackend`, `preferredModel`, `cloudConsent`, token budgets, `customProviders`.
528
+
529
+ ### Security
530
+
531
+ - Credentials are read only from environment variables (`OPENROUTER_API_KEY`, `OLLAMA_HOST`, named `apiKeyEnv`).
532
+ - Profiles and disk state never store API keys, tokens, or secrets.
533
+ - Without a backend or consent, Kairo remains in diagnostics/configuration mode.
534
+ - Remote custom providers cannot use `apiKeyEnv` in 0.2.0, preventing a project profile from redirecting a bearer credential to an arbitrary host.
535
+
536
+ ### Notes
537
+
538
+ - `openrouter/free` is a dynamic router candidate, not a permanently hardcoded model lock.
539
+ - Kairo owns reasoning governance; providers only supply inference.
540
+ - Agent CLI capability registry from 0.1.5 remains unchanged for setup/install/status/doctor.
541
+ - Deferred to 0.2.1 (MEDIUM): broader secret-key coverage (`accessKey`, `awsAccessKeyId`,
542
+ `passwd`); tighten link-local / metadata host classification in `customProviders` baseUrl
543
+ validation (`169.254.0.0/16`).
544
+
545
+ ## 0.1.5 — 2026-07-09
546
+
547
+ Minor release. Interactive orchestrator foundation: shell, diagnostics, capability
548
+ registry, and profile resolution without changing the safe-by-default confirmation model.
549
+
550
+ ### Features
551
+
552
+ - Bare `kairo` opens an interactive orchestrator shell on capable TTY sessions.
553
+ - `kairo orchestrator [--json]` exposes read-only capability diagnostics.
554
+ - Capability registry probes installed agent CLIs and reports availability states.
555
+ - Global and project profile resolution for coordinator routing preferences.
556
+ - Action planner with human confirmation for sensitive setup operations.
557
+
558
+ ### Fixes
559
+
560
+ - `resolveSuggestedInvocation()` accepts injectable `env` for package-manager detection;
561
+ tests no longer mutate global `process.env`.
562
+
563
+ ### Notes
564
+
565
+ - Does not yet expose model-ID discovery or full Harness Engineering governance (0.2.0).
566
+ - Kairo never stores tokens or credentials.
567
+
568
+ ## 0.1.4 — 2026-07-09
569
+
570
+ Patch release. Fixes public installer smoke for Kairo Runtime versions.
571
+
572
+ ### Fixes
573
+
574
+ - `install-script-url` resolves `0.1.x` versions to `kairo-runtime-v*` tags instead of legacy `v*`.
575
+ - Legacy `@kal-elsam/harness` tags (`0.29.x` and above) still use `v*` refs.
576
+ - `install.sh` runs `npm install -g --force` so bootstrap upgrades replace legacy global bins safely.
577
+
578
+ ## 0.1.3 — 2026-07-09
579
+
580
+ Patch release. Adds opt-in Engram and Graphify components for persistent memory and
581
+ context-graph workflows.
582
+
583
+ ### Features
584
+
585
+ - Bundled opt-in components: `engram-memory` and `graphify-context` (not enabled by default).
586
+ - Install with `kairo setup --components orchestrator,sdd-core,engram-memory,graphify-context`.
587
+ - Managed sections and contract assets under `~/.harness/components/`.
588
+ - Non-invasive doctor/status checks for Engram MCP availability and Graphify CLI/graph freshness.
589
+ - Authority order documented: user > AGENTS.md > repo docs > Engram > Graphify.
590
+
591
+ ### Notes
592
+
593
+ - Does not auto-install Engram, Graphify, MCP servers, or git hooks.
594
+ - Kairo remains the coordinator; the repository stays the source of truth.
595
+
596
+ ## 0.1.2 — 2026-07-08
597
+
598
+ Patch release. Bootstrap installer now installs the global `kairo` CLI.
599
+
600
+ ### Fixes
601
+
602
+ - `install.sh` runs `npm install -g @kal-elsam/kairo-runtime` before setup so
603
+ `kairo status` works immediately after install.
604
+ - Post-install next steps and README use `kairo` as the primary command.
605
+ - Installer smoke tests verify `kairo` from npm global bin instead of `npx`.
606
+
607
+ ## 0.1.0 — 2026-07-07
608
+
609
+ First public release of **Kairo Runtime** under `@kal-elsam/kairo-runtime`.
610
+
611
+ ### Rebrand
612
+
613
+ - Product identity: Kairo Runtime — Local Agent Operating System.
614
+ - Preferred CLI: `kairo` and `kairo-runtime`.
615
+ - Legacy CLI aliases retained: `harness`, `agentic-harness`, `sgs-harness`, `harness-sgs`.
616
+ - Legacy state paths unchanged: `~/.harness`, `HARNESS_HOME`, `harness:managed:*`.
617
+ - Command headers and setup copy use Kairo Runtime branding.
618
+ - Bridge package `@kal-elsam/harness` remains out of scope for this release.
619
+
620
+ ## 0.29.1 — 2026-07-07
621
+
622
+ Patch release. Fixes Ink setup preview hang and release provenance checks.
623
+
624
+ ### Fixes
625
+
626
+ - Ink `Plan preview` no longer stalls indefinitely on "Building preview…" when the
627
+ preview effect re-runs after setting `previewLoading`.
628
+ - `release:published` accepts `origin/main` ahead of the published tag/commit as long
629
+ as main contains the release `gitHead`.
630
+
631
+ ## 0.29.0 — 2026-07-07
632
+
633
+ Minor release. Ink setup opens with a branded splash screen before agent detection.
634
+
635
+ ### Splash screen
636
+
637
+ - New `SPLASH` step precedes agent detection in the Ink setup flow.
638
+ - Full ASCII `HARNESS` logo with tagline `Agent Engineering Platform`, subtitle
639
+ `Local Agent Operating System`, and `Press Enter to continue` hint.
640
+ - Narrow terminals automatically use a compact logo variant.
641
+ - `Enter` advances to detection; `Esc` cancels as before.
642
+ - `--simple`, non-TTY/CI, and `--yes`/`--confirm` paths are unchanged (no splash).
643
+
644
+ ## 0.28.0 — 2026-07-07
645
+
646
+ Minor release. Interactive setup uses Ink for a full terminal UI.
647
+
648
+ ### Ink setup experience
649
+
650
+ - Bare `harness` / `harness setup` in a TTY opens an Ink app: header, agent cards,
651
+ visual selectors, plan preview, confirmation, and branded success output.
652
+ - `harness setup --simple` keeps the Clack prompt flow; dumb terminals fall back
653
+ to Clack automatically.
654
+ - Brand tokens from `src/global/brand/` are reused; no duplicated style system.
655
+ - `--json`, non-TTY/CI, `--yes`, `--confirm`, `--dry-run`, and explicit flags
656
+ keep the existing textual engines unchanged.
657
+
658
+ ### Dependencies
659
+
660
+ - Added `ink` and `react` for the interactive setup renderer.
661
+
662
+ ## 0.27.0 — 2026-07-07
663
+
664
+ Minor release. Premium terminal identity for the interactive setup wizard.
665
+
666
+ ### Brand layer
667
+
668
+ - New `src/global/brand/` tokens: name, tagline, agent labels (Cursor, Codex,
669
+ OpenCode, Claude Code), and semantic colors (success, warning, danger, muted,
670
+ accent).
671
+ - New `src/global/clack/theme.js` formats splash, agent detection card, plan
672
+ preview, and result summary for the Clack wizard.
673
+
674
+ ### Setup wizard UX
675
+
676
+ - Intro: `HARNESS — Local Agent Operating System` with compact welcome splash.
677
+ - Agent detection card with human hints (`ready`, `not detected`, `managed later`).
678
+ - Plan preview grouped into Agents, Components, Managed writes, and Preserved
679
+ content — less technical noise on the happy path.
680
+ - Non-TTY, `--json`, `--yes`, and explicit flags keep the existing textual CLI.
681
+
682
+ ## 0.26.0 — 2026-07-07
683
+
684
+ Minor release. Interactive setup now uses `@clack/prompts` instead of the homemade TUI.
685
+
686
+ ### Setup wizard (Clack)
687
+
688
+ - `harness` / `harness setup` in a TTY opens a polished Clack wizard: intro branding,
689
+ agent detection, multiselect for agents/components, managed-change preview, and
690
+ explicit confirmation.
691
+ - `--json`, non-TTY/CI, `--yes`, `--confirm`, `--dry-run`, and explicit
692
+ `--agents` / `--components` flags keep the existing non-interactive flow.
693
+ - Removed the custom TUI in `src/global/tui/*` (key-reader, ANSI paint, multi-select).
694
+ - **Node.js** minimum is now `>=20.12.0` (`@clack/prompts` requirement).
695
+
696
+ ## 0.25.0 — 2026-07-07
697
+
698
+ Minor release. Bare `harness` is now the recommended interactive entrypoint.
699
+
700
+ ### Default entrypoint
701
+
702
+ - `harness` with no subcommand routes to `harness setup` (interactive TUI in a TTY).
703
+ - `harness --dry-run` previews the setup plan without writing agent configs or
704
+ `~/.harness` state.
705
+ - `harness install` remains the explicit technical path for CI, scripts, and
706
+ non-interactive configure.
707
+ - `harness --scope=workspace` still routes to workspace `init` (legacy opt-in).
708
+
709
+ ## 0.24.0 — 2026-07-07
710
+
711
+ Minor release. Interactive TUI for `harness setup`.
712
+
713
+ ### Setup TUI
714
+
715
+ - `harness setup` opens a step-by-step terminal UI in interactive terminals.
716
+ - Non-TTY, flags (`--yes`, `--confirm`, `--agents`, `--components`), and dumb
717
+ terminals keep the existing textual CLI flow.
718
+ - TUI reuses detect/plan/apply logic; preview shows managed markers, paths, and
719
+ planned changes before writes.
720
+
721
+ ## 0.23.1 — 2026-07-06
722
+
723
+ Patch release. Terminal UX polish with no write-behavior changes.
724
+
725
+ ### Terminal UX
726
+
727
+ - Dry-run output now says `Backups planned` instead of `Backups` in setup/install
728
+ plans and sync repair previews.
729
+ - `harness help` lists all current `--json` supported commands and points long
730
+ examples to README.md (less noise in the main help screen).
731
+ - New `npm run ux:smoke` script captures and validates key terminal flows:
732
+ help, setup dry-run, status (missing/ok/drift), sync dry-run, history, report,
733
+ and common error messages.
734
+
735
+ ## 0.23.0 — 2026-07-06
736
+
737
+ Minor release. Read-only diagnostics report for local support bundles.
738
+
739
+ ### Diagnostics report
740
+
741
+ - New `harness report` command combines CLI version, adapters, effective policy,
742
+ status summary, diff/drift preview, and recent history in one read-only bundle.
743
+ - `harness report --json` emits a stable envelope for CI and tooling.
744
+ - `harness report --out <file>` writes only to the explicit user path (never
745
+ `~/.harness` by default); human text or JSON depending on flags.
746
+ - `harness report --limit <n>` controls how many history events are included
747
+ (default 20).
748
+ - Corrupt `history.jsonl` lines surface as warnings without failing the report.
749
+ - No telemetry, no config writes, no full config contents — paths, states, and
750
+ managed section summaries only.
751
+
752
+ ## 0.22.0 — 2026-07-06
753
+
754
+ Minor release. History querying and last-operation UX for the audit log.
755
+
756
+ ### History querying
757
+
758
+ - `harness history` adds read-only filters: `--command`, `--action`, and `--limit`.
759
+ - New `harness history last` shows the most recent matching event (`--json` supported).
760
+ - Filters combine before `--limit` (most recent N of the filtered set).
761
+ - `history last` with no entries exits 0 and reports a clear empty state.
762
+ - All history queries are read-only; `history.jsonl` stays append-only.
763
+
764
+ ## 0.21.0 — 2026-07-06
765
+
766
+ Minor release. Local operation history / audit log for managed commands.
767
+
768
+ ### Operation history / audit log
769
+
770
+ - New append-only audit file: `~/.harness/history.jsonl` (one JSON object per line).
771
+ - New `harness history` command with `--json` and `--limit <n>`.
772
+ - Records managed operations: `setup`, `sync`, `upgrade`, `rollback --apply`,
773
+ `uninstall`, `policy set`, and `policy reset`.
774
+ - Each event captures timestamp, command, action, wrote, dryRun, policy,
775
+ consentSource, agents, components, checksBefore/checksAfter when applicable,
776
+ backupsCreated, snapshotsUsed (rollback), and cliVersion.
777
+ - `--dry-run` and upgrade preview do not write `~/.harness` or history entries;
778
+ persistent audit starts on real apply, interactive cancellation, rollback apply,
779
+ uninstall, or policy changes.
780
+ - Cancelled interactive operations log `action: cancelled`.
781
+ - Consent failures before writes do not create history entries.
782
+ - Corrupt lines in `history.jsonl` are skipped with warnings; valid events still display.
783
+
784
+ ## 0.20.0 — 2026-07-06
785
+
786
+ Minor release. Policy visibility and consent audit in control-plane output.
787
+
788
+ ### Policy visibility and consent audit
789
+
790
+ - `harness status` prints a `Policy` section and `status --json` adds a stable
791
+ `policy` field (`source`, `profile`, `applyMode`, `preflight`, agents,
792
+ components, path).
793
+ - `harness explain` includes effective policy and `~/.harness/policy.json` path.
794
+ - `setup`, `sync`, and `upgrade` preflight output shows `Consent source` and
795
+ `Policy profile` without changing 0.19.0 write behavior.
796
+ - `harness policy --json` keeps backward compatibility and adds `effective`.
797
+ - Without a policy file, output clearly reports defaults / no policy file.
798
+
799
+ ## 0.19.0 — 2026-07-06
800
+
801
+ Minor release. Local policy profiles for setup, sync, and upgrade.
802
+
803
+ ### Local policy profiles
804
+
805
+ - New `harness policy` command to view and edit operation preferences stored in
806
+ `~/.harness/policy.json` (`policy --json`, `policy set <key> <value>`,
807
+ `policy reset`).
808
+ - Supported profiles: `safe` (interactive prompt), `ci` and `fast` (apply via
809
+ policy consent with preflight, no prompt).
810
+ - Safe defaults when a policy file exists: `applyMode: prompt`, `preflight: true`,
811
+ `agents: detected`, `components: [orchestrator, sdd-core]`.
812
+ - Precedence: CLI flags override policy; policy overrides internal defaults.
813
+ - Without a policy file, 0.18.0 behavior is unchanged.
814
+ - `policy reset` removes only `policy.json`; state, adapters, and components are
815
+ preserved.
816
+
817
+ ## 0.18.0 — 2026-07-06
818
+
819
+ Minor release. Explicit apply confirmation in interactive terminals.
820
+
821
+ ### Apply confirmation policy
822
+
823
+ - Interactive terminals now show managed preflight and prompt before applying
824
+ `setup --yes`, `sync`, and `upgrade --yes`.
825
+ - Non-interactive mode requires `--yes`, `--confirm`, or `--no-preflight` before writes.
826
+ - `setup --confirm` applies with preflight and no prompt using defaults or explicit flags.
827
+ - Non-interactive `harness setup` without consent flags is rejected before writing state.
828
+ - New `--confirm` applies after preflight without an interactive prompt.
829
+ - `--json` and `--dry-run` behavior unchanged.
830
+
831
+ ## 0.17.0 — 2026-07-06
832
+
833
+ Minor release. Managed preflight summary before apply commands.
834
+
835
+ ### Preflight diff before apply
836
+
837
+ - `harness setup --yes`, `harness sync`, and `harness upgrade --yes` now print a
838
+ managed preflight summary (planned creates/updates/repairs, managed markers, and
839
+ user-owned preserved content) immediately before writing configs or state.
840
+ - New `--no-preflight` skips the extra output for CI and trusted scripts.
841
+ - `harness diff`, `--dry-run`, and `--json` behavior unchanged.
842
+
843
+ ## 0.16.0 — 2026-07-06
844
+
845
+ Minor release. Read-only managed diff preview before apply commands.
846
+
847
+ ### Managed diff preview
848
+
849
+ - New `harness diff` and `harness diff --json` preview missing/stale assets and
850
+ managed sections that `harness sync` would repair.
851
+ - Without state, recommends `harness setup --dry-run`.
852
+ - Healthy ecosystems report no managed changes; user-owned content outside markers
853
+ is reported as preserved.
854
+ - Read-only: never writes configs or `~/.harness` state.
855
+
856
+ ## 0.15.0 — 2026-07-06
857
+
858
+ Minor release. Read-only audit command for managed ecosystem changes.
859
+
860
+ ### Explain / audit managed changes
861
+
862
+ - New `harness explain` and `harness explain --json` show managed adapters, config
863
+ files, installed components, backups, managed markers, and user-owned preserved
864
+ content outside Harness markers.
865
+ - Read-only: never writes agent configs or `~/.harness` state.
866
+
867
+ ## 0.14.2 — 2026-07-06
868
+
869
+ Patch release. Ships the installer smoke fix from `e62b25a` in the npm tarball.
870
+
871
+ ### Fix
872
+
873
+ - `scripts/installer-smoke-test.sh` runs from an isolated temp workspace so `npx` does
874
+ not resolve the monorepo package when validating post-publish from the harness repo.
875
+
876
+ ## 0.14.1 — 2026-07-06
877
+
878
+ Patch release. Post-publish smoke for the one-liner installer path.
879
+
880
+ ### Installer smoke
881
+
882
+ - New `scripts/installer-smoke-test.sh` validates the real user flow:
883
+ `curl .../install.sh | sh` with isolated `HARNESS_HOME` and a temporary npm cache.
884
+ - Preview (`--version <x>`) must not write `~/.harness`.
885
+ - Apply (`--yes --agents all`) must reach `status --json` with `overall=ok` and clean
886
+ uninstall of managed sections.
887
+ - Run manually after publish: `npm run smoke:installer -- --version x.y.z`.
888
+
889
+ ## 0.14.0 — 2026-07-06
890
+
891
+ Minor release. Installer post-apply guidance and a safe `harness upgrade` command.
892
+
893
+ ### Installer status + upgrade UX
894
+
895
+ - After `install.sh --yes`, next steps now highlight `harness status`, `harness sync`,
896
+ and `npx @kal-elsam/harness@latest setup --yes`.
897
+ - New `harness upgrade --dry-run` previews convergence with the installed CLI and shows
898
+ the latest npm command without writing configs.
899
+ - `harness upgrade --yes` applies only with an explicit flag (no silent auto-update).
900
+
901
+ ## 0.13.0 — 2026-07-06
902
+
903
+ Minor release. Bootstrap installer can apply setup explicitly while keeping the
904
+ safe default preview.
905
+
906
+ ### Bootstrap apply mode
907
+
908
+ - `scripts/install.sh` default unchanged: ends with `harness setup --dry-run`.
909
+ - Explicit apply: `curl ... | sh -s -- --yes` runs `harness setup --yes`.
910
+ - Passthrough to setup: `--version`, `--agents`, `--components`,
911
+ `--no-default-components`.
912
+ - Security unchanged: no `sudo`, no shell profiles, no AI app installation — only
913
+ managed sections.
914
+
915
+ ### Recommended entry
916
+
917
+ ```bash
918
+ curl -fsSL https://raw.githubusercontent.com/Kal-elSam/harness/main/scripts/install.sh | sh
919
+ curl -fsSL https://raw.githubusercontent.com/Kal-elSam/harness/main/scripts/install.sh | sh -s -- --yes
920
+ ```
921
+
922
+ ## 0.12.1 — 2026-07-04
923
+
924
+ Patch release. Fixes registry smoke validation for the adapter matrix.
925
+
926
+ ### Fix
927
+
928
+ - `scripts/registry-smoke-test.sh` sorts expected adapter ids before comparing
929
+ managed agents, so post-publish smoke passes reliably.
930
+
931
+ ## 0.12.0 — 2026-07-04
932
+
933
+ Minor release. Adapter matrix confidence for Cursor, Codex, OpenCode, and Claude Code.
934
+
935
+ ### Adapter matrix
936
+
937
+ - `harness adapters` and `harness adapters --json` show the official supported
938
+ adapter matrix: `id`, `label`, `rootDir`, `configFile`, `detected`, `managed`,
939
+ `managedTargets`.
940
+ - Harness does not install Cursor/Codex/OpenCode/Claude; it configures managed
941
+ sections in their config files only.
942
+
943
+ ### Explicit all-agents selection
944
+
945
+ - `harness setup --agents all` and `harness install --agents all` force all four
946
+ supported adapters, even when some roots are not detected.
947
+ - Default unchanged: detected agents when present, safe fallback to all when none
948
+ are detected.
949
+
950
+ ### Registry smoke
951
+
952
+ - Creates all four agent roots and validates `adapters --json`, `status --json`,
953
+ drift repair (including OpenCode), and `uninstall`.
954
+
955
+ ## 0.11.0 — 2026-07-04
956
+
957
+ Minor release. Product-style bootstrap installer UX. npm remains the distribution
958
+ mechanism; users enter through a one-liner that runs `harness`.
959
+
960
+ ### Bootstrap installer
961
+
962
+ - Public script: `scripts/install.sh`
963
+ - One-liner:
964
+ `curl -fsSL https://raw.githubusercontent.com/Kal-elSam/harness/main/scripts/install.sh | sh`
965
+ - Detects Node/npm, prints the plan, runs `@kal-elsam/harness` via `npx` or
966
+ `npm exec`, and finishes with `harness setup --dry-run`.
967
+ - `--dry-run` prints the plan without downloading or executing the package.
968
+ - Safe by design: no `sudo`, no shell profile changes, no agent config or
969
+ `~/.harness` writes (preview only). Clear errors when Node/npm are missing.
970
+
971
+ ### Version docs
972
+
973
+ - `harness --version` and README/help document installed vs published version.
974
+ - Update path: `npx @kal-elsam/harness@latest sync`.
975
+
976
+ ### Recommended entry
977
+
978
+ ```bash
979
+ curl -fsSL https://raw.githubusercontent.com/Kal-elSam/harness/main/scripts/install.sh | sh
980
+ npx @kal-elsam/harness setup
981
+ npx @kal-elsam/harness status
982
+ ```
983
+
984
+ ## 0.10.0 — 2026-07-04
985
+
986
+ Minor release. Machine-readable control-plane output and registry smoke parity
987
+ with the recommended `setup` / `status` / `sync` flow.
988
+
989
+ ### JSON output
990
+
991
+ - `harness status --json`, `harness sync --dry-run --json`, and `harness doctor --json`
992
+ emit a stable envelope for CI, tooling, and debugging.
993
+ - Stable fields: `ok`, `overall`, `agents`, `components`, `checks`, `backups`,
994
+ `nextAction`, `cliVersion`.
995
+ - Human-readable output remains the default.
996
+ - Exit codes are unchanged: non-zero when the ecosystem is not healthy.
997
+
998
+ ### Registry smoke
999
+
1000
+ - `scripts/registry-smoke-test.sh` exercises `setup --dry-run`, `setup --yes`,
1001
+ `status`, drift simulation, `sync`, `status --json` (expects `overall=ok`),
1002
+ and `uninstall`.
1003
+
1004
+ ### Docs / messaging
1005
+
1006
+ - Primary day-to-day repair path is `harness sync`; `update` remains a technical alias.
1007
+ - Doctor and managed-section guidance point at `sync` instead of `update`.
1008
+
1009
+ ### Recommended flow
1010
+
1011
+ ```bash
1012
+ harness setup
1013
+ harness status
1014
+ harness sync
1015
+ harness status --json
1016
+ ```
1017
+
1018
+ ## 0.9.0 — 2026-07-03
1019
+
1020
+ Minor release. Adds `harness sync` as the primary convergence command.
1021
+
1022
+ ### Sync command
1023
+
1024
+ - `harness sync` detects managed state, repairs drift/missing/stale with the same
1025
+ safe engine as `update`, and prints a status summary.
1026
+ - `harness sync --dry-run` reports planned repairs without writing.
1027
+ - No global state → recommends `harness setup` and writes nothing.
1028
+ - Already OK → writes nothing.
1029
+ - `update` remains as a technical/compatibility alias; `sync` is the day-to-day UX.
1030
+
1031
+ ### Recommended flow
1032
+
1033
+ ```bash
1034
+ harness setup
1035
+ harness status
1036
+ harness sync
1037
+ ```
1038
+
1039
+ ## 0.8.0 — 2026-07-03
1040
+
1041
+ Minor release. Product pivot to a local AI ecosystem configurator, plus portable
1042
+ workspace component pack/import.
1043
+
1044
+ ### Terminal setup & control plane
1045
+
1046
+ - `harness setup --dry-run` is the recommended entry: detects Cursor/Codex/OpenCode/Claude,
1047
+ prints the agent-global plan, writes nothing, never touches the workspace.
1048
+ - `harness setup` applies the same safe agent-global result as `harness install`.
1049
+ - `harness status` control plane: detected agents, installed components, ok/missing/stale,
1050
+ backups, and next action (`install`, `doctor`, `update`, `rollback`).
1051
+ - Non-interactive install remains: `harness install --agents … --components …`.
1052
+ - Workspace install is opt-in/legacy (`--scope=workspace`); agent-global is the primary path.
1053
+ - Mental model: Harness is the local configurator/orchestrator. npm is distribution only.
1054
+ Terminal UX prioritizes clear non-interactive modes (Pi-inspired clarity, no Pi runtime).
1055
+
1056
+ ### Advanced: component distribution
1057
+
1058
+ - `harness components pack <id> --out <file>` builds a `.tgz` with a one-component
1059
+ `catalog.json` and declared assets only.
1060
+ - `harness components import <file>` installs into `.harness/components/` of the current
1061
+ workspace without touching `~/.harness` or running package scripts.
1062
+ - Import refuses overwrites, bundled IDs, path traversal, symlinks, and undeclared assets.
1063
+ - Pack/import is an advanced capability, not the product identity.
1064
+
1065
+ ### Primary flow
1066
+
1067
+ ```bash
1068
+ harness setup --dry-run
1069
+ harness setup
1070
+ harness status
1071
+ harness install --agents cursor,codex --components orchestrator,sdd-core
1072
+ ```
1073
+
1074
+ ## 0.7.0 — 2026-07-03
1075
+
1076
+ Minor release. Adds public authoring commands for workspace components.
1077
+
1078
+ ### Component authoring CLI
1079
+
1080
+ - `harness components validate [--cwd <path>]` validates `.harness/components/catalog.json`
1081
+ with the same loader used by install/doctor.
1082
+ - `harness components init <id> --label "<label>"` scaffolds catalog entry, component directory,
1083
+ and `README.md` (`version: "0.1.0"`).
1084
+ - Does not overwrite existing IDs, rejects bundled IDs, and never writes to `~/.harness`.
1085
+
1086
+ ### Authoring flow
1087
+
1088
+ ```bash
1089
+ harness components init team-rules --label "Team Rules"
1090
+ # edit .harness/components/team-rules/README.md
1091
+ harness components validate
1092
+ harness install --components team-rules
1093
+ ```
1094
+
1095
+ ## 0.6.0 — 2026-07-03
1096
+
1097
+ Minor release. Adds opt-in workspace component sources for local custom components.
1098
+
1099
+ ### Workspace component catalog
1100
+
1101
+ - Optional workspace catalog at `.harness/components/catalog.json` with assets under
1102
+ `.harness/components/<component-id>/`.
1103
+ - `harness components` lists bundled and workspace components separately.
1104
+ - `harness install --components <ids>` resolves bundled and workspace IDs from the current cwd.
1105
+ - Workspace components use a generic managed section (label, installed assets, optional instructions).
1106
+
1107
+ ### Validation and safety
1108
+
1109
+ - Workspace IDs must be unique and cannot override bundled components.
1110
+ - Asset paths must be relative, stay inside the component directory, exist on disk, and cannot
1111
+ escape the workspace via symlinks.
1112
+ - `doctor` detects drift for installed workspace assets; `uninstall` removes copied assets and
1113
+ managed sections.
1114
+
1115
+ ## 0.5.0 — 2026-07-03 (legacy `@kal-elsam/harness` package)
1116
+
1117
+ Historical minor release under the legacy package name (not Kairo Runtime 0.5.0).
1118
+ Adds a public component catalog and inspection command.
1119
+
1120
+ ### Component catalog
1121
+
1122
+ - Bundled components are declared in `global-template/components/catalog.json`
1123
+ (id, label, version, defaults, asset files, adapter hints).
1124
+ - `component-registry.js` loads from the catalog instead of hardcoded imports.
1125
+ - Default install still ships `orchestrator` and `sdd-core`; existing state remains valid.
1126
+
1127
+ ### New command
1128
+
1129
+ - `harness components` lists bundled components, defaults, assets, and adapter hints.
1130
+
1131
+ ### Node compatibility
1132
+
1133
+ - Catalog loader uses `readFileSync` + `JSON.parse` for Node `>=18.18` compliance.
1134
+ - CI matrix includes Node 18.
1135
+
1136
+ ## 0.4.2 — 2026-07-03
1137
+
1138
+ Patch release. Release confidence tooling only; no harness CLI behavior changes.
1139
+
1140
+ ### Registry install verification
1141
+
1142
+ - Added `npm run smoke:registry` to install `@kal-elsam/harness` from the npm
1143
+ registry in an isolated temp workspace and exercise the published CLI.
1144
+ - Documented post-publish steps: `release:published` and `smoke:registry`.
1145
+
1146
+ ### Release provenance
1147
+
1148
+ - Attribution guard supports `--range` for CI/PR scans.
1149
+ - Added `npm run release:published` to verify npm `gitHead`, tags, and `origin/main`.
1150
+ - Published tarball now includes `scripts/` used by npm release/smoke commands.
1151
+ - CI and publish workflows run attribution checks; publish runs `release:check` before `npm publish`.
1152
+
1153
+ ## 0.4.1 — 2026-07-03
1154
+
1155
+ Corrective release. No functional changes from `0.4.0`.
1156
+
1157
+ - Release metadata and process hardening.
1158
+ - Documented prohibition on `Co-authored-by` / AI attribution in release commits.
1159
+ - Added `npm run release:check` to fail when `HEAD` contains attribution trailers.
1160
+
1161
+ ## 0.4.0 — 2026-07-03
1162
+
1163
+ ### Agent-global default install
1164
+
1165
+ - `harness install` defaults to `agent-global` scope: configures local agent roots
1166
+ (Cursor, Codex, OpenCode, Claude) under `~/.harness` without touching project
1167
+ files.
1168
+ - Managed marker sections in agent configs with backup-before-change safety.
1169
+ - `HARNESS_HOME` override for sandboxed installs and testing.
1170
+
1171
+ ### Adapter contract
1172
+
1173
+ - Unified adapter registry with detection, planning, and managed config targets.
1174
+ - Explicit `--agents` / `--adapters` selection; falls back to all supported
1175
+ agents when none are detected locally.
1176
+
1177
+ ### Component system
1178
+
1179
+ - Pluggable components with `orchestrator` and `sdd-core` installed by default.
1180
+ - `--components` selection and `--no-default-components` for core-only installs.
1181
+ - Component assets under `~/.harness/components/` with managed sections in agent
1182
+ configs.
1183
+
1184
+ ### Drift detection and safe sync
1185
+
1186
+ - `harness doctor` detects missing assets, stale hashes, and drifted managed
1187
+ sections; exits non-zero on failure.
1188
+ - `harness update` repairs managed drift without overwriting user-owned content
1189
+ outside harness markers.
1190
+
1191
+ ### Backup and rollback
1192
+
1193
+ - `harness backups` lists config snapshots under `~/.harness/backups/`.
1194
+ - `harness rollback --to <snapshot>` previews restores (dry-run by default).
1195
+ - `harness rollback --to <snapshot> --apply` restores backed-up configs with a
1196
+ safety snapshot before overwriting existing files.
1197
+
1198
+ ### Smoke and release hardening
1199
+
1200
+ - `npm run smoke` validates the packed tarball (not just source) end to end.
1201
+ - CI and publish workflows require smoke tests before release.
1202
+ - Publish workflow runs smoke before `npm publish` via npm Trusted Publishing.