@zhivex-ai/harness 0.11.1 → 1.0.0-rc.12

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.
Files changed (57) hide show
  1. package/CHANGELOG.md +164 -2
  2. package/README.md +8 -7
  3. package/ROADMAP.md +11 -8
  4. package/SUPPORT.md +3 -1
  5. package/contracts/public-api.json +1359 -0
  6. package/contracts/security-controls.json +15 -0
  7. package/contracts/stable-api-signatures.json +490 -0
  8. package/dist/cli-options.d.ts +40 -0
  9. package/dist/cli-stream.d.ts +15 -15
  10. package/dist/cli.d.ts +20 -6
  11. package/dist/cli.js +1933 -332
  12. package/dist/config.d.ts +14 -0
  13. package/dist/errors.d.ts +68 -0
  14. package/dist/hostile-repository-demo.js +641 -194
  15. package/dist/index.d.ts +12 -4
  16. package/dist/index.js +7427 -5297
  17. package/dist/json-contracts.d.ts +1707 -0
  18. package/dist/operations.d.ts +1 -1
  19. package/dist/providers.d.ts +5 -0
  20. package/dist/state-backup.d.ts +148 -0
  21. package/dist/time-to-safe-fix.d.ts +43 -2
  22. package/dist/verify-historical-migrations.js +7782 -0
  23. package/dist/zhx.js +1933 -332
  24. package/docs/CLI.md +21 -4
  25. package/docs/DEPRECATIONS.md +9 -0
  26. package/docs/DURABLE_OPERATIONS.md +18 -1
  27. package/docs/EXTENSIBILITY.md +4 -4
  28. package/docs/GA_READINESS.md +27 -0
  29. package/docs/GEMINI_1_0_DECISION.md +9 -0
  30. package/docs/LIVE_CERTIFICATION.md +17 -3
  31. package/docs/PUBLIC_SECURITY.md +2 -2
  32. package/docs/RELEASE.md +11 -6
  33. package/docs/ROLLBACK.md +9 -0
  34. package/docs/SECURITY_REVIEW_EVIDENCE.md +15 -0
  35. package/docs/STABILITY.md +13 -0
  36. package/docs/SUPPORT_MATRIX.md +17 -0
  37. package/docs/THREAT_MODEL.md +28 -0
  38. package/docs/TIME_TO_SAFE_FIX.md +3 -3
  39. package/docs/ga-readiness.json +326 -0
  40. package/docs/support-matrix.json +29 -0
  41. package/evaluations/representative-assembly-matrix.json +183 -0
  42. package/evaluations/representative-matrix.json +1084 -0
  43. package/evaluations/representative-repositories.jsonl +7 -0
  44. package/examples/mcp-config.json +1 -1
  45. package/fixtures/contracts/v1/doctor.json +45 -0
  46. package/fixtures/contracts/v1/error.json +9 -0
  47. package/fixtures/contracts/v1/observational-documents.json +34 -0
  48. package/fixtures/contracts/v1/providers.json +17 -0
  49. package/fixtures/contracts/v1/run-result-forward.json +37 -0
  50. package/fixtures/contracts/v1/run-result.json +34 -0
  51. package/fixtures/contracts/v1/run-stream-result.jsonl +1 -0
  52. package/fixtures/migrations/0.10.0.json +315 -0
  53. package/fixtures/migrations/0.10.0.sqlite +0 -0
  54. package/fixtures/migrations/0.11.1.json +319 -0
  55. package/fixtures/migrations/0.11.1.sqlite +0 -0
  56. package/fixtures/migrations/README.md +20 -0
  57. package/package.json +17 -10
package/CHANGELOG.md CHANGED
@@ -4,7 +4,169 @@ All notable changes to Zhivex Harness are documented in this file.
4
4
 
5
5
  The project follows Semantic Versioning. During `0.x`, minor releases may change user-facing contracts when the change is documented with a migration note. Patch releases remain backwards compatible bug fixes.
6
6
 
7
- ## Unreleased
7
+ ## 1.0.0-rc.12 - 2026-09-02
8
+
9
+ ### Fixed
10
+
11
+ - Keep `git_diff` read-only even under hostile repository configuration: disable repository-controlled filesystem monitors, external diffs, text conversion, and submodule processing; discover changed paths with NUL-safe output; and render only paths permitted by the Harness hard-ignore and sensitive-name policy.
12
+ - Bind MCP configuration loading to one regular, single-link file descriptor with `O_NOFOLLOW`, a 1 MiB limit, canonical-parent containment, and inode continuity from initial inspection through the stable read.
13
+
14
+ ### Changed
15
+
16
+ - Expand the security-review inventory from mutation/execution tools to all 28 model-facing tool classes, including repository reads, inspection, skill loading, delegation, and dynamic MCP tools, with a regression that rejects future inventory drift.
17
+ - Require direct mitigation, regression evidence, residual risk, and passing status for every reviewed trust boundary and authority-bearing tool. Non-informational findings now require an owner, disposition, rationale, and HTTPS follow-up; critical/high findings cannot be accepted without mitigation.
18
+ - Preserve published RC.11 as immutable historical evidence while authorizing RC.12 as the new pending candidate required by HAR-HU-03 remediation. No RC.12 artifact, live certification, registry integrity, or provenance is claimed before the exact tag completes the protected workflow.
19
+
20
+ ## 1.0.0-rc.11 - 2026-09-02
21
+
22
+ ### Fixed
23
+
24
+ - Keep the governed Qwen representative driver on its certified Responses path instead of selecting Chat through an incompatible transport-level `maxTokens` option; the same output limit remains enforced by the Harness durable token guard before and after each provider step.
25
+
26
+ ### Changed
27
+
28
+ - Record the immutable, unpublished RC.10 attempt as failed after its exact tarball passed artifact binding: Meta completed 14/14 representative cases, Qwen completed 13/14, and an OpenAI account-funding issue surfaced as retryable HTTP 500 failures across live and representative gates; npm publication remained skipped.
29
+ - Record the protected RC.11 workflow's fail-closed first attempt, where one Qwen representative case returned `EXECUTION_FAILED`, Meta and OpenAI completed 14/14, Qwen completed 13/14, no unauthorized effects were observed, and npm publication remained skipped for that attempt.
30
+ - Publish the complete second RC.11 attempt to `next` only after every deterministic, exact-artifact, OCI, live-provider, and representative gate passed from scratch; Meta, Qwen, and OpenAI each completed 14/14, and the registry artifact passed exact SHA-512 integrity plus SLSA provenance verification.
31
+
32
+ ## 1.0.0-rc.10 - 2026-09-01
33
+
34
+ ### Fixed
35
+
36
+ - Isolate the non-release early-diagnostic fixture from release-bound environment variables, so the test remains hermetic when `bun test` runs inside the validation job while real incomplete diagnostic bindings continue to fail closed.
37
+ - Allow the immutable readiness ledger to record a deterministic pre-artifact failure with an explicit null artifact digest and `not-run` live certification instead of inventing an artifact identity.
38
+
39
+ ### Changed
40
+
41
+ - Record the immutable, unpublished RC.9 attempt as failed during deterministic validation before packing: one environment-sensitive test failed, no release tarball was created, every live/representative gate was skipped, and npm publication was not dispatched.
42
+ - Extend the representative release matrices through `v1.0.0-rc.10`; RC.10 remains pending until its distinct commit and annotated tag complete the full protected workflow.
43
+
44
+ ## 1.0.0-rc.9 - 2026-09-01
45
+
46
+ ### Fixed
47
+
48
+ - Build `dist/` before the manual tag-bound live-certification workflow packs and inspects the candidate, preventing a source-only tarball from failing artifact binding before OCI and provider gates can run.
49
+
50
+ ### Changed
51
+
52
+ - Record the immutable, unpublished RC.8 attempt as failed at artifact binding: exact-tag readiness passed, but OCI and every provider gate were skipped, no diagnostic artifact was produced, and npm publication was not dispatched.
53
+ - Extend the representative release matrices through `v1.0.0-rc.9`; RC.9 remains pending until its exact tag completes protected certification.
54
+
55
+ ## 1.0.0-rc.8 - 2026-09-01
56
+
57
+ ### Fixed
58
+
59
+ - Complete HAR-HU-01 release diagnostics without relaying child stdout/stderr: every live gate now persists only strict sanitized outcomes identified by provider or phase, and the final summary remains fail-closed.
60
+ - Record a missing provider credential as that provider's configuration failure so the remaining selected providers still execute, and include OCI image preload as an independent diagnostic gate instead of short-circuiting the matrix.
61
+
62
+ ### Changed
63
+
64
+ - Refresh the coordinated Zhivex dependency set to the current published versions verified for this candidate: `@zhivex-ai/core@1.11.0`, `@zhivex-ai/qwen@0.11.1`, and `@zhivex-ai/gemini@0.11.0`, while retaining current Agents `1.3.0`, Meta `0.2.2`, OpenAI `0.10.0`, exact package pins, and one Core override across every adapter.
65
+ - Keep the Harness Qwen tool-call-ID normalizer as a defense-in-depth boundary while adopting the adapter's current missing/placeholder-ID normalization, Responses continuation correlation, and Bun realtime frame-limit correction.
66
+ - Authorize `v1.0.0-rc.8` in the representative evaluation matrices and record it as pending. No live-provider, representative-repository, release-artifact, registry, or provenance result is claimed before the exact candidate completes those gates.
67
+
68
+ ## 1.0.0-rc.7 - 2026-08-25
69
+
70
+ ### Fixed
71
+
72
+ - Keep `@zhivex-ai/core@1.10.0`, `@zhivex-ai/agents@1.3.0`, and `@zhivex-ai/openai@0.10.0`, while restoring `@zhivex-ai/qwen@0.10.2`, the last adapter that passed the complete release-bound Qwen representative matrix. Qwen `0.10.3` failed closed before the Harness durable tool-call-ID normalizer could recover the affected turns.
73
+
74
+ ### Changed
75
+
76
+ - Record the immutable, unpublished RC.6 attempt as failed after exact-artifact and release-bound live certification passed, while Qwen resolved only 12/14 representative cases in both the original protected run and one retry; npm publication remained skipped.
77
+ - Extend the representative release matrix through `v1.0.0-rc.7`; because RC.6 cannot count toward GA, a later independent passing candidate will still be required before stable promotion.
78
+
79
+ ## 1.0.0-rc.6 - 2026-08-25
80
+
81
+ ### Fixed
82
+
83
+ - Upgrade the coordinated Zhivex SDK batch to `@zhivex-ai/core@1.10.0`, `@zhivex-ai/agents@1.3.0`, `@zhivex-ai/openai@0.10.0`, and `@zhivex-ai/qwen@0.10.3`, retaining exact pins and one Core override across every provider adapter.
84
+ - Preserve the sanitized OpenAI Responses tool-call diagnostic and retryability from durable SDK failures in Time-to-Safe-Fix evidence without retaining raw arguments, provider payloads, or error messages.
85
+ - Complete the governed representative driver from the signed, journaled `apply_environment_patch` receipt after its separate edit, verifier, inspection, and import approvals, avoiding a redundant final provider turn after the authorized repair is already durable.
86
+
87
+ ### Changed
88
+
89
+ - Record the immutable, unpublished RC.5 attempt as failed after exact-artifact validation and release-bound live certification passed but OpenAI resolved only 13/14 representative cases.
90
+ - Advance the next candidate to `v1.0.0-rc.6`; because RC.5 cannot count toward GA, a later independent passing candidate will still be required before stable promotion.
91
+
92
+ ## 1.0.0-rc.5 - 2026-08-24
93
+
94
+ ### Fixed
95
+
96
+ - Replace missing, whitespace-only, and legacy numeric Qwen streaming tool-call IDs with deterministic, turn-durable IDs before agent state can observe them; preserve valid provider IDs and reject real duplicates fail-closed.
97
+ - Persist a bounded failure origin and allowlisted provider diagnostic code in Time-to-Safe-Fix failures, including through typed Harness error causes, without retaining provider messages or raw output.
98
+
99
+ ### Changed
100
+
101
+ - Record the immutable, unpublished RC.4 attempt as failed after its release-bound live-provider gate passed but Qwen resolved only 13/14 representative cases.
102
+ - Extend the representative release matrix through `v1.0.0-rc.6`; RC.5 and RC.6 must both pass independently before GA.
103
+
104
+ ## 1.0.0-rc.4 - 2026-08-24
105
+
106
+ ### Fixed
107
+
108
+ - Preserve stable typed Harness failure `code`, `category`, and `retryable` metadata alongside Time-to-Safe-Fix semantic classification, so transient provider and OCI execution failures remain machine-classifiable without retaining raw error text.
109
+
110
+ ### Changed
111
+
112
+ - Record the immutable, unpublished RC.3 release attempt as failed at the representative-evaluation gate after exact-artifact, release-bound live certification, and the Meta matrix passed.
113
+ - Extend the representative release matrix through `v1.0.0-rc.5` because RC.1, RC.2, and RC.3 cannot count toward the two-passing-candidate GA requirement.
114
+
115
+ ## 1.0.0-rc.3 - 2026-08-24
116
+
117
+ ### Fixed
118
+
119
+ - Persist bounded structured diagnostics for failed representative-provider cases while continuing to exclude raw prompts, model output, raw provider error text, and workspace contents from release artifacts.
120
+ - Record whether the release-bound live-provider gate passed or failed independently from other failed release gates, and reject contradictory ledger evidence.
121
+
122
+ ### Changed
123
+
124
+ - Record the immutable, unpublished RC.2 release attempt as failed at the representative-evaluation gate after exact-artifact and release-bound live certification passed.
125
+ - Extend the representative release matrix through `v1.0.0-rc.4` because RC.1 and RC.2 cannot count toward the two-passing-candidate GA requirement.
126
+
127
+ ## 1.0.0-rc.2 - 2026-08-23
128
+
129
+ ### Fixed
130
+
131
+ - Normalize missing or whitespace-only Qwen tool-call IDs at the built-in provider boundary before durable agent state, approvals, or tool journals can observe them; preserve valid provider IDs and reject duplicate IDs fail-closed.
132
+
133
+ ### Changed
134
+
135
+ - Record immutable release attempts that fail protected gates without claiming npm publication or provenance, exclude them from passing GA evidence, and require two later passing candidates before stable promotion.
136
+ - Extend the representative release matrix through `v1.0.0-rc.3` because the failed, unpublished RC.1 attempt cannot count toward the two-candidate GA requirement.
137
+
138
+ ## 1.0.0-rc.1 - 2026-08-23
139
+
140
+ ### Added
141
+
142
+ - Add a machine-checked 1.0 public API/CLI/schema baseline, support matrix, threat/control map, deprecation and rollback policies, representative-evidence schema, and a fail-closed GA readiness ledger.
143
+ - Add an explicit config schema `4` to `5` migration helper that preserves the older authority boundary by disabling project context and OCI shell exposure unless the operator opts in after review.
144
+ - Add stable machine error codes with typed configuration/CLI usage errors and compile a TypeScript consumer against the installed release tarball.
145
+ - Add schema-1 parsers and golden fixtures for public JSON/JSONL output, a command-specific CLI option manifest, and provider-free logical SQLite state status/export/import commands.
146
+ - Add byte-for-byte SQLite migration fixtures generated from the integrity-verified published `0.10.0` and `0.11.1` artifacts and verify them through current run and session APIs.
147
+ - Add a seven-repository, 14-run representative matrix with strict per-case evidence generation, sanitized cross-provider assembly, and a protected Meta/Qwen/OpenAI release job that blocks npm publication.
148
+ - Add a strict release-candidate security-review schema covering every control, trust boundary, authority-bearing tool, finding, reviewer, artifact binding, and remotely verified CI/CodeQL/release workflow.
149
+
150
+ ### Changed
151
+
152
+ - Allow protected `1.0.0-rc.N` artifacts only on npm `next`, keep stable releases on `latest`, and reject version/channel drift before publication.
153
+ - Bind each GA release-candidate record to a distinct annotated tag, main-reachable commit, published npm integrity, SLSA provenance statement, and successful release workflow; require every declared provider/scenario on both candidates, verify the evaluation workflows through GitHub, and require a concrete security-review artifact.
154
+ - Expose CLI command/subcommand constants as the source for the frozen command manifest and document previously omitted child-budget options in help output.
155
+ - Emit a distinct compact `run-stream-result` JSONL terminal record, keep machine errors message-free, and delay terminal JSONL output until asynchronous persistence/environment cleanup succeeds.
156
+ - Run installed-package smoke against the exact inspected tarball in CI, reject SQLite WAL/SHM sidecars, and clean `dist` before every build.
157
+ - Classify all 213 runtime and 166 type exports explicitly as Stable, Beta, or Experimental, and compare the complete partition with the installed tarball namespace and declarations.
158
+ - Bind every Stable runtime and type export to a reproducible declaration-closure hash and verify that signature snapshot against source-emitted and installed-tarball declarations.
159
+ - Keep Gemini explicitly provisional and outside the 1.0 certified cohort; accept later corrective RCs only as a contiguous sequence after the required RC.1 and RC.2.
160
+
161
+ ### Security
162
+
163
+ - Stream integrity-pinned historical npm archives directly into an isolated extractor instead of persisting network bytes, constrain MCP authentication to canonical credential headers backed by dedicated `ZHIVEX_MCP_*` variables, publish state backups atomically without clobbering existing targets, and reject orphaned active leases for runs being imported.
164
+
165
+ ### Migration
166
+
167
+ - Existing schema `5` configuration is unchanged. Call `migrateHarnessConfigInput` for an explicitly versioned schema `4` input; the pure migration does not read environment variables or filesystem state. Paused approvals remain bound to the exact older artifact and are never rewritten.
168
+ - Existing schema-1 JSON observers may accept additive fields, but JSONL consumers must recognize the distinct `run-stream-result` and `run-stream-error` terminal kinds. The literal durable `userId` value `"*"` is now rejected because it is reserved for the absent-user scope marker.
169
+ - Rename MCP credential variables to the `ZHIVEX_MCP_*` namespace; HTTP `headerEnv` entries now accept only `authorization` and `x-api-key`.
8
170
 
9
171
  ## 0.11.1 - 2026-08-23
10
172
 
@@ -15,7 +177,7 @@ The project follows Semantic Versioning. During `0.x`, minor releases may change
15
177
  - Keep release-artifact transfer actions pinned to immutable commit SHAs while allowing Dependabot SHA upgrades, and represent successful remote tag-bound certification explicitly in the release-status schema.
16
178
  - Add a mutable machine-readable repository release-status record, keep it outside immutable npm artifacts, and validate public documentation, release gates, and repository security configuration against it.
17
179
  - Bound installed-package smoke subprocesses by time and captured output so a stalled child process cannot hang release validation indefinitely.
18
- - Keep public documentation consistent with the published `0.11.0` artifact while preserving live-provider certification as a separate evidence boundary.
180
+ - Keep public documentation consistent with candidate and published artifact state while preserving live-provider certification as a separate evidence boundary.
19
181
  - Retry only transient HTTP failures in the opt-in base provider smoke, using fresh temporary state and a bounded three-attempt schedule; contract and approval failures still fail immediately.
20
182
  - Preserve transient provider status from failed agent outputs before release-smoke contract assertions so retryable 429/5xx responses reach the bounded retry loop.
21
183
  - Mark create-only `expectedDigest: null` as an explicitly required tool-schema field and reinforce that contract in live certification prompts for providers that otherwise omit null-valued arguments.
package/README.md CHANGED
@@ -13,7 +13,7 @@ Zhivex Harness runs coding agents against real repositories with conflict-safe e
13
13
 
14
14
  The model provides capability. The harness controls what it may inspect, execute, change, resume, and prove. Every provider uses the same bounded tool and approval contract.
15
15
 
16
- Version `0.11.1` is the current source release candidate; `0.11.0` remains the public npm release and `latest` distribution tag until protected publication completes. Candidate provenance and certification are pending in the [repository release status](https://raw.githubusercontent.com/Zhivex/zhivex-harness/main/release-status.json). Publication is fail-closed on deterministic, installed-package, real-OCI, base-provider, orchestration, routing, and model-directed execution gates. See [ROADMAP.md](./ROADMAP.md), [CHANGELOG.md](./CHANGELOG.md), [public repository security](./docs/PUBLIC_SECURITY.md), the [change-envelope guide](./docs/CHANGE_ENVELOPES.md), the [CLI contract](./docs/CLI.md), the [context-engineering guide](./docs/CONTEXT_ENGINEERING.md), the [extensibility guide](./docs/EXTENSIBILITY.md), and the [durable-operations guide](./docs/DURABLE_OPERATIONS.md).
16
+ Version `0.11.1` is the current public npm release and `latest` distribution tag. Its annotated tag, exact registry integrity, SLSA provenance, and release-bound Meta/Qwen/OpenAI certification are recorded in the [repository release status](https://raw.githubusercontent.com/Zhivex/zhivex-harness/main/release-status.json). Publication remains fail-closed on deterministic, installed-package, real-OCI, base-provider, orchestration, routing, and model-directed execution gates. The planned 1.0 promotion is tracked by the [machine-checked readiness gate](./docs/GA_READINESS.md), [API stability policy](./docs/STABILITY.md), [support matrix](./docs/SUPPORT_MATRIX.md), and [threat model](./docs/THREAT_MODEL.md). See [ROADMAP.md](./ROADMAP.md), [CHANGELOG.md](./CHANGELOG.md), [public repository security](./docs/PUBLIC_SECURITY.md), the [change-envelope guide](./docs/CHANGE_ENVELOPES.md), the [CLI contract](./docs/CLI.md), the [context-engineering guide](./docs/CONTEXT_ENGINEERING.md), the [extensibility guide](./docs/EXTENSIBILITY.md), and the [durable-operations guide](./docs/DURABLE_OPERATIONS.md).
17
17
 
18
18
  ## Why Zhivex Harness
19
19
 
@@ -109,7 +109,7 @@ It does not include arbitrary host shell access, `stdio` MCP, permanent deletion
109
109
 
110
110
  ## Installation
111
111
 
112
- After protected publication, install the Node-first `0.11.1` artifact with an exact version:
112
+ Install the Node-first `0.11.1` artifact with an exact version:
113
113
 
114
114
  ```bash
115
115
  npx --yes --package=@zhivex-ai/harness@0.11.1 zhx --version
@@ -196,7 +196,7 @@ zhx run --provider openai --route explorer=qwen --route reviewer=gemini \
196
196
  "implement the change, then review it independently"
197
197
  ```
198
198
 
199
- Routing with `--max-cost-usd` remains rejected in `0.11.0`: aggregate usage cannot yet be priced correctly when roles use different models.
199
+ Routing with `--max-cost-usd` remains rejected in `0.11.1`: aggregate usage cannot yet be priced correctly when roles use different models.
200
200
 
201
201
  Writes and checks pause for approval. In a non-interactive execution, state is saved in `.zhivex-harness/runs/operations.sqlite`:
202
202
 
@@ -282,14 +282,14 @@ zhivex-harness run --execution oci --oci-shell ask "use a reviewed shell pipelin
282
282
 
283
283
  | Provider | Default model | Current support |
284
284
  | --- | --- | --- |
285
- | Meta | `muse-spark-1.2` | `MODEL_API_KEY` · 0.6 edit, delegation, and OCI execution certified |
286
- | Qwen | `qwen3.8-max` | `DASHSCOPE_API_KEY` or `QWEN_API_KEY` · 0.6 edit, delegation, and OCI execution certified |
287
- | OpenAI | `gpt-5.6-luna` | `OPENAI_API_KEY` · GPT-5.6 Luna, Terra, and Sol base workflow passed locally; release recertification pending |
285
+ | Meta | `muse-spark-1.2` | `MODEL_API_KEY` · 0.11.1 release-bound base, delegation, and OCI execution certified |
286
+ | Qwen | `qwen3.8-max` | `DASHSCOPE_API_KEY` or `QWEN_API_KEY` · 0.11.1 release-bound base, delegation, routing, and OCI execution certified |
287
+ | OpenAI | `gpt-5.6-luna` | `OPENAI_API_KEY` · 0.11.1 release-bound base, delegation, routing, and OCI execution certified |
288
288
  | Gemini | `gemini-3.6-flash` | `GEMINI_API_KEY` or `GOOGLE_GENERATIVE_AI_API_KEY` · provisional until the harness live matrix passes |
289
289
 
290
290
  Override any model with `--model`. Optional provider overrides are `META_BASE_URL`, `QWEN_BASE_URL`, `QWEN_WORKSPACE_ID`, `QWEN_REGION`, `OPENAI_BASE_URL`, and `GEMINI_BASE_URL`. Non-credential transport settings are hash-bound to durable resumes without persisting their values.
291
291
 
292
- Meta and Qwen retain the published support conclusion for the unchanged approval/restart and delegation paths. OpenAI remains GPT-5.6-first from `0.8.0`: Luna is the default, while Terra and Sol remain explicit `--model` selections. The tagged Node-first `0.11.0` artifact is published with registry integrity and provenance; its release-bound remote provider matrix remains pending and is not implied by publication. Controlled and official-SDK MCP interoperability are verified separately and do not imply compatibility with every server or protocol feature. Provider capability claims remain artifact- and date-bound under the [live certification contract](./docs/LIVE_CERTIFICATION.md); credential detection and deterministic tests do not replace real provider evidence.
292
+ The exact `v0.11.1` tag passed proposal/approval/restart, bounded delegation, OpenAI-parent/Qwen-reviewer routing, and model-directed OCI execution for Meta `muse-spark-1.2`, Qwen `qwen3.8-max`, and OpenAI `gpt-5.6-luna` on 2026-08-23. Luna remains the OpenAI default, while Terra and Sol remain explicit `--model` selections with older local base evidence only. Controlled and official-SDK MCP interoperability are verified separately and do not imply compatibility with every server or protocol feature. Provider capability claims remain artifact- and date-bound under the [live certification contract](./docs/LIVE_CERTIFICATION.md); credential detection and deterministic tests do not replace real provider evidence.
293
293
 
294
294
  ## Security boundaries
295
295
 
@@ -318,6 +318,7 @@ The default `none` backend provides governance but no OS isolation and therefore
318
318
 
319
319
  ```bash
320
320
  bun run typecheck
321
+ bun run readiness:1.0
321
322
  bun test
322
323
  bun run build
323
324
  bun run evaluate
package/ROADMAP.md CHANGED
@@ -3,7 +3,7 @@
3
3
  - Status: active
4
4
  - Baseline date: 2026-08-21
5
5
 
6
- This roadmap takes the harness from its `0.1.0` MVP to a stable CLI and library contract. The `0.2.0` source baseline is tagged locally, `0.3.0` and `0.4.0` are private checkpoints, and `0.5.0` through `0.11.0` are published on npm. Version `0.11.1` is the local source release candidate for file and release hardening without a `0.11.x` contract change. It is not yet tagged or published as a new artifact; registry publication, supply-chain provenance, and provider certification remain separate evidence boundaries. Releases are ordered by dependency and safety risk, not by calendar date. A version ships only when its exit criteria are satisfied.
6
+ This roadmap takes the harness from its `0.1.0` MVP to a stable CLI and library contract. The `0.2.0` source baseline is tagged locally, `0.3.0` and `0.4.0` are private checkpoints, and `0.5.0` through `0.11.1` are published on npm. Version `0.11.1` delivers file and release hardening without a `0.11.x` contract change; registry publication, supply-chain provenance, and provider certification remain separate evidence boundaries. Releases are ordered by dependency and safety risk, not by calendar date. A version ships only when its exit criteria are satisfied.
7
7
 
8
8
  ## Planning principles
9
9
 
@@ -45,7 +45,7 @@ The `0.6.0` dependency batch pins and overrides `@zhivex-ai/core@1.6.0`, retaini
45
45
  | `0.9.0` | Fast governed change admission | Lower repository/OCI overhead plus portable offline evidence bound to exact patch bytes | Published on npm | L |
46
46
  | `0.10.0` | Node-first portability | Node CLI/library, portable SQLite/processes, manager-aware checks, and Node OCI | Published on npm | L |
47
47
  | `0.11.0` | Daily-driver foundations | Richer terminal operation, governed context/skills/hooks, and opt-in OCI shell | Published on npm | L |
48
- | `0.11.1` | Security and release hardening | Bounded reads, recoverable cleanup, and fail-closed release evidence | Local release candidate | S |
48
+ | `0.11.1` | Security and release hardening | Bounded reads, recoverable cleanup, and fail-closed release evidence | Published on npm | S |
49
49
  | `1.0.0` | Stable contract | Supported compatibility and release guarantees | Planned | L |
50
50
 
51
51
  Relative size is for sequencing only; dates require a capacity decision.
@@ -333,7 +333,7 @@ Exit criteria:
333
333
 
334
334
  ## 0.11.1 — security and release hardening
335
335
 
336
- Status: local source release candidate. It is not yet tagged or published as a new artifact; provenance and release-bound live certification remain pending.
336
+ Status: published on npm as `latest` with annotated tag `v0.11.1`, exact registry integrity, SLSA provenance, and successful release-bound Meta/Qwen/OpenAI certification.
337
337
 
338
338
  Goal: ship the reviewed security and release hardening accumulated after `0.11.0` without changing configuration, durable state, or execution-policy contracts.
339
339
 
@@ -355,6 +355,8 @@ Exit criteria:
355
355
 
356
356
  Goal: freeze a supportable public contract after the pre-1.0 safety and operational surfaces have been exercised in real repositories.
357
357
 
358
+ Status: RC.1 through RC.6 did not complete every protected gate, so every publication was skipped. RC.6 passed release-bound live certification and Meta's complete representative matrix, then failed closed at Qwen with 12/14 safe resolutions in both the original run and one retry. RC.7 retained the Core, Agents, and OpenAI corrections, restored Qwen to the last adapter certified by this matrix, passed exact-artifact, live-provider, and all three 14-case representative gates, and was published to npm `next` with verified SHA-512 integrity and SLSA provenance. RC.8 carried the coordinated Core `1.11.0`, Qwen `0.11.1`, and Gemini `0.11.0` refresh and passed exact-tag readiness, but its manual protected workflow packed before building `dist/`; artifact binding failed, OCI and provider gates were skipped, and npm publication was not dispatched. RC.9 corrected that workflow and passed manual protected certification, but its release-bound deterministic job exposed an environment-sensitive early-diagnostic test before packing; no release tarball was created and every downstream job was skipped. RC.10 isolated that fixture and produced a valid exact tarball, then failed closed because an OpenAI account-funding issue surfaced as retryable HTTP 500 failures and Qwen resolved 13/14 representative cases; npm publication was skipped. RC.11 preserved its fail-closed first attempt, then reran every protected gate from scratch; Meta, Qwen, and OpenAI each completed 14/14 representative cases, and the exact validated artifact was published to npm `next` with verified SHA-512 integrity and SLSA provenance. Public API/CLI/schema baselines, config `4 → 5` migration, historical tarball fixtures, support/security/rollback policy, RC channel enforcement, representative-evaluation generation, and evidence requirements remain machine-checked. The two required passing candidates are now recorded; GA remains blocked on the final-candidate security review in [`docs/ga-readiness.json`](./docs/ga-readiness.json).
359
+
358
360
  Scope:
359
361
 
360
362
  - Stabilize CLI commands, config schema, JSON/event schemas, library exports, state migrations, and error taxonomy.
@@ -396,8 +398,9 @@ These can become separate post-1.0 tracks after the CLI/runtime contract and sec
396
398
 
397
399
  ## Immediate next actions
398
400
 
399
- 1. Configure maintainer-approved provider secrets in the protected `live-certification` environment and run the complete release-bound matrix against the exact annotated tag.
400
- 2. Keep publication fail-closed on base, orchestration, routing, model-directed OCI execution, exact-artifact, integrity, and provenance evidence.
401
- 3. Stabilize the CLI, config, JSON/event, library export, state migration, and error contracts required for the first `1.0.0` release candidate.
402
- 4. Publish the support matrix, threat model, migration/export path, and representative cross-provider repository evaluation evidence.
403
- 5. Complete two release candidates without a contract-breaking defect before promoting `1.0.0` to `latest`.
401
+ 1. Preserve RC.7's published exact-artifact, live-provider, representative-matrix, registry-integrity, and SLSA provenance evidence.
402
+ 2. Preserve RC.8 as an immutable failed attempt bound to its source-only tarball and protected run; do not move or reuse its tag.
403
+ 3. Preserve RC.9 and RC.10 as failed, unpublished attempts with their distinct failure evidence; do not move or reuse either tag.
404
+ 4. Preserve RC.11's published exact-artifact, live-provider, representative-matrix, registry-integrity, and SLSA provenance evidence, including its separate fail-closed first attempt.
405
+ 5. Complete the named security review against the final passing candidate and close every critical/high finding.
406
+ 6. Promote a separately tagged and verified `1.0.0` artifact to `latest` only after the release-mode readiness gate passes with two passing candidates.
package/SUPPORT.md CHANGED
@@ -2,6 +2,8 @@
2
2
 
3
3
  Zhivex Harness `0.11.x` is the latest supported pre-1.0 Node-first CLI and TypeScript library. Observable contracts may change in a later minor release when the change and migration path are documented in [CHANGELOG.md](./CHANGELOG.md). The mutable machine-readable public release state is recorded in the repository [release-status.json](https://raw.githubusercontent.com/Zhivex/zhivex-harness/main/release-status.json), outside immutable npm artifacts.
4
4
 
5
+ The detailed 1.0 target is tracked in the [machine-readable support matrix](./docs/support-matrix.json) and its [human-readable view](./docs/SUPPORT_MATRIX.md). Compatibility and removals follow [DEPRECATIONS.md](./docs/DEPRECATIONS.md) once 1.0 is promoted.
6
+
5
7
  ## Supported baseline
6
8
 
7
9
  - Node.js `22.13.0` or newer; Node 24 LTS is the release and default OCI baseline;
@@ -11,7 +13,7 @@ Zhivex Harness `0.11.x` is the latest supported pre-1.0 Node-first CLI and TypeS
11
13
  - the provider/model combinations marked certified in the package documentation; and
12
14
  - HTTPS or explicitly allowed loopback-HTTP MCP endpoints using the documented bounded JSON-RPC subset.
13
15
 
14
- Only the most recent published `0.11.x` patch receives routine fixes. The exact `v0.11.0` tag source has date-bound local base and orchestration evidence for Meta, Qwen, and OpenAI plus OpenAI-to-Qwen routing evidence. The `0.11.1` candidate must pass the protected release-bound matrix before publication, and Gemini remains provisional until its complete harness live matrix passes. Live provider evidence is account-, model-, endpoint-, artifact-, and date-dependent; see [docs/LIVE_CERTIFICATION.md](./docs/LIVE_CERTIFICATION.md).
16
+ Only the most recent published `0.11.x` patch receives routine fixes. The exact `v0.11.1` tag passed the protected release-bound base, orchestration, routing, and model-directed execution matrix for Meta, Qwen, and OpenAI on 2026-08-23. Gemini remains provisional until its complete harness live matrix passes against an exact release candidate. Live provider evidence is account-, model-, endpoint-, artifact-, and date-dependent; see [docs/LIVE_CERTIFICATION.md](./docs/LIVE_CERTIFICATION.md).
15
17
 
16
18
  ## Support channels
17
19