@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 +1202 -0
- package/LICENSE +21 -0
- package/README.md +64 -1192
- package/package.json +9 -3
- package/scripts/cockpit-smoke.mjs +14 -10
- package/src/cli.js +25 -142
- package/src/global/cli-help.js +182 -0
- package/src/global/ink/cockpit-controller.js +1 -3
- package/src/global/ink/cockpit-enter.js +3 -1
- package/src/global/ink/cockpit-focus.js +7 -1
- package/src/global/ink/cockpit-models.js +30 -21
- package/src/global/ink/cockpit-palette.js +8 -3
- package/src/global/ink/cockpit-views.js +9 -2
- package/src/global/ink/orchestrator-app.js +21 -2
- package/src/global/ink/ux/live-overview.js +120 -72
- package/src/global/ink/ux/overview-actions.js +80 -0
- package/src/global/ink/ux/overview-needs.js +160 -0
- package/src/global/self-update.js +216 -0
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.
|