@zhivex-ai/harness 1.0.0-rc.13 → 1.0.0-rc.14

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 (156) hide show
  1. package/CHANGELOG.md +86 -1
  2. package/README.md +30 -63
  3. package/ROADMAP.md +4 -2
  4. package/benchmarks/README.md +48 -0
  5. package/benchmarks/baselines/context-navigation-2026-09-09.json +94 -0
  6. package/benchmarks/baselines/efficiency-2026-09-08.json +233 -0
  7. package/benchmarks/baselines/external-final-2026-09-08.json +588 -0
  8. package/benchmarks/baselines/external-intermediate-2026-09-08.json +116 -0
  9. package/benchmarks/baselines/external-matched-openai-2026-09-08.json +1922 -0
  10. package/benchmarks/baselines/external-matched-qwen-2026-09-08.json +1706 -0
  11. package/benchmarks/baselines/external-pilot-2026-09-08.json +439 -0
  12. package/benchmarks/baselines/external-qwen-flash-2026-09-08.json +1570 -0
  13. package/benchmarks/baselines/external-qwen-remediation-2026-09-09.json +1509 -0
  14. package/benchmarks/baselines/external-qwen-sdk-114-progress-2026-09-09.json +2509 -0
  15. package/benchmarks/baselines/external-sdk-upgrade-2026-09-08.json +564 -0
  16. package/benchmarks/baselines/external-verifier-recovery-2026-09-09.json +794 -0
  17. package/benchmarks/baselines/full-harness-review-2026-09-10.json +134 -0
  18. package/benchmarks/baselines/harness-audit-2026-09-09.json +136 -0
  19. package/benchmarks/baselines/harness-remediation-2026-09-09.json +160 -0
  20. package/benchmarks/baselines/oci-remediation-2026-09-10.json +535 -0
  21. package/benchmarks/baselines/rc14-holdout-2026-09-10.json +854 -0
  22. package/benchmarks/baselines/repair-architecture-audit-2026-09-09.json +75 -0
  23. package/benchmarks/baselines/time-to-safe-fix-live-expanded-2026-08-21.json +186 -0
  24. package/benchmarks/baselines/time-to-safe-fix-live-smoke-2026-08-21.json +186 -0
  25. package/contracts/public-api.json +5 -0
  26. package/contracts/stable-api-signatures.json +52 -52
  27. package/dist/bounded-reads.d.ts +4 -0
  28. package/dist/change-envelope.d.ts +4 -4
  29. package/dist/cli-options.d.ts +1 -1
  30. package/dist/cli-profiles.d.ts +3 -3
  31. package/dist/cli-stream.d.ts +40 -40
  32. package/dist/cli.d.ts +36 -34
  33. package/dist/cli.js +5396 -3688
  34. package/dist/compaction.d.ts +12 -0
  35. package/dist/config.d.ts +6 -1
  36. package/dist/console-context.d.ts +1 -0
  37. package/dist/context-engineering.d.ts +5 -5
  38. package/dist/context-metrics.d.ts +11 -0
  39. package/dist/edit-contracts.d.ts +2 -2
  40. package/dist/execution-environment.d.ts +9 -5
  41. package/dist/harness.d.ts +50 -16
  42. package/dist/hostile-repository-demo.js +2749 -1066
  43. package/dist/index.d.ts +1 -1
  44. package/dist/index.js +4203 -2519
  45. package/dist/json-contracts.d.ts +252 -244
  46. package/dist/model-budget.d.ts +61 -0
  47. package/dist/operations.d.ts +82 -20
  48. package/dist/orchestration.d.ts +1 -0
  49. package/dist/providers.d.ts +5 -2
  50. package/dist/repair-controller.d.ts +72 -0
  51. package/dist/repair-progress.d.ts +40 -0
  52. package/dist/repair-verifier.d.ts +6 -0
  53. package/dist/replacement-edits.d.ts +9 -0
  54. package/dist/routing.d.ts +1 -1
  55. package/dist/runtime-checkpoints.d.ts +7 -0
  56. package/dist/runtime-diagnostics.d.ts +63 -0
  57. package/dist/runtime-policy.d.ts +36 -0
  58. package/dist/sessions.d.ts +1 -1
  59. package/dist/state-backup.d.ts +2 -2
  60. package/dist/task-memory.d.ts +36 -0
  61. package/dist/time-to-safe-fix.d.ts +19 -19
  62. package/dist/tool-registry.d.ts +4 -0
  63. package/dist/verify-historical-migrations.js +6937 -5261
  64. package/dist/workspace-mutation-lock.d.ts +5 -0
  65. package/dist/workspace.d.ts +39 -4
  66. package/dist/zhx.js +5396 -3688
  67. package/docs/CLI.md +19 -0
  68. package/docs/CONTEXT_ENGINEERING.md +160 -0
  69. package/docs/EXECUTION_ENVIRONMENTS.md +21 -0
  70. package/docs/EXTENSIBILITY.md +1 -1
  71. package/docs/GA_READINESS.md +1 -1
  72. package/docs/LIVE_CERTIFICATION.md +3 -3
  73. package/docs/RC13_SECURITY_REVIEW.md +28 -0
  74. package/docs/README.md +33 -0
  75. package/docs/RELEASE.md +1 -1
  76. package/docs/REPOSITORY_EDITING.md +47 -0
  77. package/docs/TIME_TO_SAFE_FIX.md +2 -2
  78. package/docs/ga-readiness.json +23 -2
  79. package/docs/reports/EFFICIENCY_REVIEW.md +156 -0
  80. package/docs/reports/EXTERNAL_COMPARISON.md +434 -0
  81. package/docs/reports/FULL_HARNESS_REVIEW_2026-09-10.md +200 -0
  82. package/docs/reports/GA_BUDGET_REMEDIATION_2026-09-19.md +38 -0
  83. package/docs/reports/GA_REPAIR_RECOVERY_2026-09-19.md +700 -0
  84. package/docs/reports/GA_VALIDATION_2026-09-19.md +111 -0
  85. package/docs/reports/HARNESS_ARCHITECTURE_REVIEW_2026-09-09.md +202 -0
  86. package/docs/reports/HARNESS_AUDIT_2026-09-09.md +306 -0
  87. package/docs/reports/HARNESS_REMEDIATION_2026-09-09.md +74 -0
  88. package/docs/reports/HARNESS_REMEDIATION_2026-09-10.md +90 -0
  89. package/docs/reports/MODEL_COMPARISON_2026-09-09.md +184 -0
  90. package/docs/reports/QWEN_REMEDIATION_COMPARISON_2026-09-09.md +142 -0
  91. package/docs/reports/RC14_VALIDATION_2026-09-10.md +45 -0
  92. package/docs/reports/README.md +26 -0
  93. package/docs/reports/evidence/ga-budget-remediation-2026-09-19.json +133 -0
  94. package/docs/reports/evidence/ga-catalog-ablation-2026-09-19.json +699 -0
  95. package/docs/reports/evidence/ga-catalog-ablation-plan-2026-09-19.json +40 -0
  96. package/docs/reports/evidence/ga-catalog-observed-2026-09-19.json +985 -0
  97. package/docs/reports/evidence/ga-catalog-observed-plan-2026-09-19.json +28 -0
  98. package/docs/reports/evidence/ga-catalog-observed-status-2026-09-19.json +15 -0
  99. package/docs/reports/evidence/ga-complete-local-check-2026-09-19.json +47 -0
  100. package/docs/reports/evidence/ga-completion-reminder-2026-09-19.json +22 -0
  101. package/docs/reports/evidence/ga-fresh-cohort-plan-2026-09-19.json +54 -0
  102. package/docs/reports/evidence/ga-fresh-cohort-preparation-2026-09-19.json +242 -0
  103. package/docs/reports/evidence/ga-fresh-cohort-result-2026-09-19.json +4318 -0
  104. package/docs/reports/evidence/ga-local-validation-followup-2026-09-19.json +66 -0
  105. package/docs/reports/evidence/ga-node-consumers-2026-09-19.json +31 -0
  106. package/docs/reports/evidence/ga-package-content-validation-2026-09-19.json +22 -0
  107. package/docs/reports/evidence/ga-plan-completion-2026-09-19.json +39 -0
  108. package/docs/reports/evidence/ga-plan-reserve-2026-09-19.json +573 -0
  109. package/docs/reports/evidence/ga-plan-reserve-plan-2026-09-19.json +24 -0
  110. package/docs/reports/evidence/ga-plan-transition-2026-09-19.json +19 -0
  111. package/docs/reports/evidence/ga-private-verifier-plan-2026-09-19.json +24 -0
  112. package/docs/reports/evidence/ga-private-verifier-root-cause-2026-09-19.json +41 -0
  113. package/docs/reports/evidence/ga-published-sdk-2026-09-19.json +35 -0
  114. package/docs/reports/evidence/ga-python-checkout-imports-2026-09-19.json +95 -0
  115. package/docs/reports/evidence/ga-python-origin-delivery-2026-09-19.json +211 -0
  116. package/docs/reports/evidence/ga-python-origin-delivery-plan-2026-09-19.json +27 -0
  117. package/docs/reports/evidence/ga-qwen-patched-package-2026-09-19.json +1092 -0
  118. package/docs/reports/evidence/ga-qwen-patched-package-plan-2026-09-19.json +18 -0
  119. package/docs/reports/evidence/ga-qwen-published-2026-09-19.json +571 -0
  120. package/docs/reports/evidence/ga-qwen-published-plan-2026-09-19.json +18 -0
  121. package/docs/reports/evidence/ga-qwen-tool-choice-2026-09-19.json +85 -0
  122. package/docs/reports/evidence/ga-qwen-tool-choice-patched-2026-09-19.json +85 -0
  123. package/docs/reports/evidence/ga-recovery-development-2026-09-19.json +1066 -0
  124. package/docs/reports/evidence/ga-recovery-graded-development-2026-09-19.json +1313 -0
  125. package/docs/reports/evidence/ga-recovery-graded-v2-2026-09-19.json +1151 -0
  126. package/docs/reports/evidence/ga-recovery-v3-2026-09-19.json +3943 -0
  127. package/docs/reports/evidence/ga-recovery-v4-2026-09-19.json +1055 -0
  128. package/docs/reports/evidence/ga-recovery-v5-2026-09-19.json +1245 -0
  129. package/docs/reports/evidence/ga-recovery-v6-2026-09-19.json +699 -0
  130. package/docs/reports/evidence/ga-recovery-v7-2026-09-19.json +854 -0
  131. package/docs/reports/evidence/ga-recovery-v8-2026-09-19.json +596 -0
  132. package/docs/reports/evidence/ga-required-delivery-2026-09-19.json +25 -0
  133. package/docs/reports/evidence/ga-required-delivery-live-2026-09-19.json +1337 -0
  134. package/docs/reports/evidence/ga-required-delivery-live-plan-2026-09-19.json +25 -0
  135. package/docs/reports/evidence/ga-retained-candidate-grading-2026-09-19.json +30 -0
  136. package/docs/reports/evidence/ga-tool-selection-live-2026-09-19.json +559 -0
  137. package/docs/reports/evidence/ga-tool-selection-live-plan-2026-09-19.json +28 -0
  138. package/docs/reports/evidence/ga-tool-selection-recovery-2026-09-19.json +27 -0
  139. package/docs/reports/evidence/ga-validation-2026-09-19.json +236 -0
  140. package/docs/reports/evidence/ga-verifier-discovery-live-2026-09-19.json +1369 -0
  141. package/docs/reports/evidence/ga-verifier-discovery-plan-2026-09-19.json +29 -0
  142. package/docs/reports/evidence/ga-verifier-failure-identification-2026-09-19.json +30 -0
  143. package/docs/reports/evidence/ga-verifier-feedback-2026-09-19.json +65 -0
  144. package/docs/reports/evidence/ga-verifier-hints-live-2026-09-19.json +1297 -0
  145. package/docs/reports/evidence/ga-verifier-hints-plan-2026-09-19.json +27 -0
  146. package/docs/reports/evidence/ga-work-boundary-context-analysis-2026-09-19.json +113 -0
  147. package/docs/reports/evidence/ga-work-boundary-live-2026-09-19.json +301 -0
  148. package/docs/reports/evidence/ga-work-boundary-live-plan-2026-09-19.json +84 -0
  149. package/docs/reports/evidence/ga-work-budget-planning-2026-09-19.json +32 -0
  150. package/docs/reports/evidence/ga-working-context-2026-09-19.json +22 -0
  151. package/docs/reports/evidence/security-current-2026-09-19.json +91 -0
  152. package/docs/reports/evidence/security-remediation-2026-09-19.json +97 -0
  153. package/evaluations/repair-controller-experiment.json +24 -0
  154. package/evaluations/representative-assembly-matrix.json +9 -0
  155. package/evaluations/representative-matrix.json +440 -0
  156. package/package.json +25 -16
package/CHANGELOG.md CHANGED
@@ -4,6 +4,91 @@ 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
8
+
9
+ ## 1.0.0-rc.14 - 2026-09-20
10
+
11
+ ### GA validation remediation
12
+
13
+ - Serialize workspace mutations across processes and isolate OCI state by the
14
+ canonical workspace, state directory, user, tenant, namespace and run identity.
15
+ Reject legacy unscoped snapshots and require review of full replacement edits.
16
+ - Add opt-in `requireVerifiedDelivery` for repair runs. Preserve bounded planning,
17
+ unknown-tool recovery and closure reserve across checkpoints without granting
18
+ approvals or increasing total token limits. Older paused approvals must resume
19
+ with their original artifact because the runtime policy binding changed.
20
+ - Consume published Core 1.22.0, Agents 1.8.0, OpenAI 0.13.3, Qwen 0.14.4,
21
+ Gemini 0.12.1 and Meta 0.2.6. Preserve supported terminal-error usage and
22
+ complete Qwen terminal tool calls through the upstream adapter fixes.
23
+ - Capture evaluation candidates from the actual run scope and verify Python
24
+ imports against the candidate checkout. Preserve complete failed evaluation
25
+ evidence; local validation and development results do not constitute GA
26
+ certification or replace release-bound representative and security evidence.
27
+
28
+ ### Full harness review remediation (2026-09-10)
29
+
30
+ - Reserve local tool names before MCP assembly, including disabled builtins;
31
+ correlate complete SSE events by JSON-RPC request ID.
32
+ - Add a durable repair controller with automatic approved verification, bounded
33
+ verifier recovery, candidate receipts and fail-closed incomplete delivery.
34
+ - Predict full request context, protect closure allowance and retain transport
35
+ accounting across approval resumes; refuse unknown crash/interruption usage.
36
+ - Project bounded working memory; keep full tasks outside manual compacted
37
+ prompts; check every batched read against normalized repair scope.
38
+ - Expose sanitized durable runtime diagnostics and effective role manifests.
39
+ - Require strict typechecking of source, scripts and tests in CI. Publish public
40
+ baselines, exclude development audit programs, and validate internal Markdown
41
+ links against the immutable packed artifact.
42
+ - Refine OCI `acquire` return declarations to `HarnessExecutionSession` and add
43
+ optional inspection fields. Refresh reviewed Stable signatures; existing
44
+ exports and JSON readers remain supported. Runtime policy fingerprint changes
45
+ require older paused approvals to use their original artifact.
46
+
47
+ ### Audit remediation (2026-09-09)
48
+
49
+ - Guard terminal imports with cancellation, deadlines and renewed run leases;
50
+ preserve caller step limits and interrupt approval waits.
51
+ - Reject ancestor symlinks during descriptor-bound reads on macOS/Linux.
52
+ - Preserve full redacted task sources through compaction and expose `read_task`
53
+ and bounded `repair_plan` working memory.
54
+ - Bound search output with explicit coverage and exact-file continuation; persist
55
+ governed OCI mutation receipts across reacquisition.
56
+ - Share the opt-in `repair` profile across library, CLI and benchmark, including
57
+ durable exploration controls and bounded verifier/schema recovery.
58
+ - Capture and independently grade private candidate patches; retain sanitized
59
+ model/tool/approval/OCI timings, attempted tools and typed failure evidence.
60
+ - Compaction/profile binding changes intentionally reject older paused approvals;
61
+ retain the original artifact to finish or deny those runs.
62
+
63
+ ### Changed
64
+
65
+ - Upgrade published Core to 1.14.0 and Agents to 1.4.0. Enable SDK schema-error recovery in the native SWE-bench driver and preserve structured validation diagnostics; consumer tests cover correction, error limits and approval continuation.
66
+
67
+ - Add per-run native evaluation controls for repeated unchanged exploration and a closure phase at 70% of token allowance, plus sanitized per-component context character metrics. Preserve actual token ceilings and tool approvals.
68
+
69
+ - Preserve bounded file/digest/line references from batched search and read results through repeated compaction; deduplicate references and discard prior file locations when a new digest is observed. Advance the compaction binding to bounded-evidence-v3.
70
+
71
+ - Add opt-in bounded recovery from typed terminal OCI verifier failures, preserving fresh approvals, durable retry counts and strict handling of forced exits; validate OpenAI and Qwen against one frozen harness implementation.
72
+
73
+ - Support exact-file batched searches with descriptor-safe reads; cap rendered reads at 16,000 characters per slice and 32,000 aggregate characters per batch, flagging clipped long lines.
74
+ - Require verified patch import in the external evaluation, retain typed verifier outcomes, expose remaining model budget after half is consumed, and support matched Qwen Chat Completions evaluation.
75
+ - Upgrade Qwen to 0.11.4 to consume the upstream trailing streamed-usage fix; stop interrupted external runs without continuing into another case.
76
+
77
+ - Upgrade to published Core 1.13.0, Agents 1.3.1 and OpenAI 0.11.2; remove local compaction usage/history workarounds and verify the upstream fixes through installed-package consumer regressions.
78
+
79
+ - Publish configured OCI executables in command schemas and preserve recent user corrections through repeated compaction within the same summary budget.
80
+
81
+ - Correct duplicate streamed token accounting after compaction when complete step usage is available, retaining real budget enforcement and conservative handling of missing usage.
82
+ - Preserve large unchanged fixture files in bounded OCI snapshots and reject linked inventory paths; project synthetic summaries into valid Responses context.
83
+
84
+ - Add approval-gated exact replacements bound to file digests; preserve UTF-8 bytes and reject ambiguous or stale edits.
85
+ - Reduce default read slices to 120 lines and batched search results to 10 matches per query; preserve the original objective across SDK-formatted repeated compaction.
86
+ - Add a pinned external SWE-bench comparison, explicit pilot exclusions and partial sanitized failure telemetry.
87
+
88
+ - Preserve bounded conversation objectives, recent excerpts and typed check evidence during compaction; bind the new compaction strategy into durable harness identity. Resume older paused runs with their matching artifact.
89
+ - Batch independent workspace reads, searches, index freshness checks and initial OCI snapshot file copies while keeping tool execution, approvals and publication serialized.
90
+ - Add nested/file-size workspace benchmarks, continuity regressions and local efficiency observations. These are not competitive model evaluations.
91
+
7
92
  ## 1.0.0-rc.13 - 2026-09-03
8
93
 
9
94
  ### Added
@@ -24,7 +109,7 @@ The project follows Semantic Versioning. During `0.x`, minor releases may change
24
109
 
25
110
  ### Changed
26
111
 
27
- - Preserve the published RC.12 tag, artifact, complete Meta/Qwen/OpenAI representative matrix, npm SHA-512 integrity, and SLSA provenance as immutable historical evidence. The onboarding and diagnostics changes are authorized only for a distinct pending RC.13 artifact.
112
+ - Preserve published RC.12 as immutable historical evidence. RC.13 is published to npm `next` with protected live certification, 42/42 representative cases, and independently verified SHA-512 integrity and SLSA provenance; its final human security review remains pending for GA.
28
113
  - Keep profiles explicit rather than active-by-default. Precedence is CLI flags, selected profile, environment, then built-in defaults; `resume` never accepts a profile and continues to restore the original durable policy.
29
114
 
30
115
  ### Migration from RC.12
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 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).
16
+ Version `0.11.1` is the current public npm release on `latest`; `1.0.0-rc.13` is the published release candidate on `next`. RC.13 passed protected live certification and 42/42 representative cases, with independently verified registry integrity and SLSA provenance recorded in the [live certification evidence](./docs/LIVE_CERTIFICATION.md). GA remains blocked pending the final human security review; see the [RC.13 reviewer dossier](./docs/RC13_SECURITY_REVIEW.md). The `0.11.1` evidence remains 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
 
@@ -40,63 +40,17 @@ bun run demo:hostile
40
40
 
41
41
  The expected result is a schema-versioned JSON proof with `secretExcluded`, `networkDenied`, `exactlyOnceJournal`, and `staleHostImportBlocked` all set to `true`. Pass `--keep` to retain the disposable workspace for inspection. The complete scenario and evidence limits are documented in [docs/HOSTILE_REPOSITORY_DEMO.md](./docs/HOSTILE_REPOSITORY_DEMO.md).
42
42
 
43
- ## What 0.11 changes
44
-
45
- - adds a dependency-free terminal presentation layer with redacted activity, complete approval cards, and durable `y`/`n`/`v`/`q` decisions;
46
- - lets recovered chat sessions inspect and resolve their current approval with `/pending`, `/approve`, and `/deny` after restoring the exact persisted provider, routing, context, and OCI policy;
47
- - loads bounded `AGENTS.md`, project context, rules, and progressively disclosed skills while binding their digests into durable compatibility;
48
- - adds trusted application lifecycle hooks with versioned identities, bounded events, timeouts, and redacted failures; and
49
- - exposes exact-script shell syntax only through explicit `--execution oci --oci-shell ask`, preserving denied network and the separate host-import approval.
50
-
51
- ## What 0.10 changed
52
-
53
- - makes Node.js `>=22.13.0` the primary public CLI and library runtime while retaining Bun-compatible imports and Bun-managed contributor workflows;
54
- - replaces `bun:sqlite` and `Bun.spawn` with `node:sqlite` and argv-only `node:child_process` boundaries without changing the durable SQLite file format;
55
- - detects npm, pnpm, Yarn, or Bun from a pinned `packageManager` field or an unambiguous lockfile, defaults to npm, and rejects implicit pre/post lifecycle hooks that were not reviewed;
56
- - moves the default enforced environment to `node:24-bookworm-slim`, executes its controller as Node ESM, and keeps custom Bun images available through explicit configuration; and
57
- - adds Node-built CLI/library and installed-artifact smokes while retaining Bun compatibility coverage.
58
-
59
- ## What 0.9 changed
60
-
61
- - reuses a freshness-checked topology index across file-list and search pages while reading current file bytes for every digest;
62
- - adds bounded `read_files` and `search_many` tools that reduce model/tool round trips without parallelizing writes;
63
- - reuses an inert controller-only OCI container within an acquired run, attests command execution and the canonical workspace seal in one cycle, skips exports for unchanged seals, and reseeds after failures or host-snapshot changes without weakening the reviewed host-import boundary;
64
- - adds a reproducible workspace benchmark and observable index/OCI I/O counters; and
65
- - introduces deterministic, offline-verifiable `ChangeEnvelope v1` documents bound to exact patch bytes, base identity, runtime policy, redacted checks, expiry, and optional approval/attestation references.
66
-
67
- ## What 0.8 changed
68
-
69
- - updates the coordinated Zhivex SDK batch while retaining a single Core runtime identity;
70
- - makes `gpt-5.6-luna` the OpenAI default, with Terra and Sol available through explicit model selection; and
71
- - clarifies that calling an approval-gated tool is the model's approval request, so the runtime can persist and resume it.
72
-
73
- ## What 0.7 introduced
74
-
75
- - the short `zhx` command, with `zhivex-harness` retained as a compatible alias;
76
- - one-shot execution plus a durable interactive console with named sessions, fork/archive operations, safe resume, status, diff, review, and explicit context compaction;
77
- - an extensible provider registry, provider/model selection, provisional native Gemini support, and repeatable per-role routes such as `--route reviewer=gemini`;
78
- - redacted, sequence-numbered `--jsonl` events for automation, while `--json` keeps the final-document contract;
79
- - versioned configuration and JSON output contracts;
80
- - a local `doctor` command that diagnoses the runtime, repository package manager, workspace, Git, scripts, state, credentials, endpoints, and provider capabilities without making provider requests or exposing secret values;
81
- - deterministic, cursor-paginated workspace listing and search with SHA-256 content digests;
82
- - reviewed multi-file proposals and approved atomic application with stale-content rejection;
83
- - approved moves plus recoverable quarantine and restore operations;
84
- - an explicit, configurable allowlist of declared `package.json` checks executed through the repository's pinned or detected package manager;
85
- - read-only inspection of staged, unstaged, renamed, deleted, and untracked Git state;
86
- - per-process mutation audit evidence and a final diff summary;
87
- - scoped SQLite run/memory state, idempotency, approval resumption, leases, and exactly-once tool journals;
88
- - run list, redacted inspect/export, cancellation, and retention cleanup commands;
89
- - production safety policy plus step, time, tool, token, and optional operator-priced cost budgets;
90
- - bounded context compaction with durable records and a deterministic golden evaluation gate;
91
- - fail-fast model capability requirements and deterministic library-side candidate selection;
92
- - governed MCP over bounded HTTPS/loopback HTTP with explicit server/tool allowlists, permissions, timeouts, approvals, output limits, and environment-backed credentials;
93
- - named explorer, implementer, tester, and reviewer subagents with independent durable budgets and promoted approvals;
94
- - deterministic application-owned parallel read-only review groups with child progress, hierarchy, usage, and cost evidence;
95
- - optional enforced Docker/Podman execution with a warm controller-only per-run container, no container network, a read-only root filesystem, non-root execution, dropped capabilities, bounded CPU/memory/PIDs/time/output, and an ephemeral secret-free workspace snapshot;
96
- - argv-only allowlisted environment commands, isolated package checks, deterministic patch inspection, and a separate durable approval before importing changes into the host workspace;
97
- - environment/image/policy fingerprint binding, cancellation cleanup, labeled orphan cleanup, retained audit artifacts, and installed-package plus real-runtime smoke gates;
98
- - protection against path traversal, symlink escapes, unsafe state targets, secret-file reads, special files, concurrent non-overwrite races, and unbounded output;
99
- - Linux/macOS CI, installed-tarball smoke coverage, and opt-in live-provider certification.
43
+ ## What RC.13 adds
44
+
45
+ - explicit personal provider/model profiles through `zhx init` and `--profile`, stored outside the repository without credentials;
46
+ - Tab command completion, previewed multiline tasks, bounded task history, and Alt+Enter input;
47
+ - `/context` inspection and bounded, digest-checked `/attach` excerpts for the next task;
48
+ - Ctrl+C cancellation with runtime cleanup and preserved pending approvals, plus recovery to the prompt after command/provider errors; and
49
+ - terminal-safe Markdown and optional colored diffs, with unsolicited input discarded before approval prompts.
50
+
51
+ See the [RC.13 changelog and migration notes](./CHANGELOG.md#100-rc13---2026-09-03) and [interactive workflow guide](./docs/CLI.md#interactive-daily-workflow). No configuration or store migration from RC.12 is required.
52
+
53
+ Earlier release changes and migrations are recorded in the [changelog](./CHANGELOG.md). Browse the [documentation index](./docs/README.md) for usage, architecture, maintenance, and historical reports.
100
54
 
101
55
  It does not include arbitrary host shell access, `stdio` MCP, permanent deletion, Git writes, a desktop UI, a remote worker, or a managed sandbox service. Without `--execution oci`, shell-class tools remain unavailable. The opt-in `--oci-shell ask` policy exposes approval-bound `sh` only inside OCI. With OCI enabled, repository tools, checks, and enabled subagents share the acquired snapshot; network MCP is rejected because it cannot truthfully satisfy the no-network execution policy.
102
56
 
@@ -109,12 +63,23 @@ It does not include arbitrary host shell access, `stdio` MCP, permanent deletion
109
63
 
110
64
  ## Installation
111
65
 
112
- Install the Node-first `0.11.1` artifact with an exact version:
66
+ Run the Node-first `latest` release with an exact version:
113
67
 
114
68
  ```bash
115
69
  bunx @zhivex-ai/harness@0.11.1 --version
116
70
  ```
117
71
 
72
+ To try the published RC.13 candidate on `next`, pin its exact version:
73
+
74
+ ```bash
75
+ bunx @zhivex-ai/harness@1.0.0-rc.13 --version
76
+ bunx @zhivex-ai/harness@1.0.0-rc.13 init --profile daily --provider openai
77
+ bunx @zhivex-ai/harness@1.0.0-rc.13 doctor --profile daily
78
+ bunx @zhivex-ai/harness@1.0.0-rc.13 --profile daily "inspect this repository"
79
+ ```
80
+
81
+ RC.13 is a prerelease; publication on `next` does not promote it to GA.
82
+
118
83
  To exercise the source checkout, contributors use Bun for deterministic repository tooling while the built CLI itself runs on Node:
119
84
 
120
85
  ```bash
@@ -123,7 +88,7 @@ cp .env.example .env
123
88
  bun run dev --version
124
89
  ```
125
90
 
126
- The 1.0 source candidate adds a first-run setup that stores only a provider and model in an explicit personal profile:
91
+ RC.13 includes first-run setup that stores only a provider and model in an explicit personal profile. From a source checkout:
127
92
 
128
93
  ```bash
129
94
  bun run dev init --profile daily --provider openai
@@ -168,7 +133,7 @@ zhivex-harness --version
168
133
 
169
134
  Inside the console, `/help` lists `/provider`, `/model`, `/route`, `/status`, `/diff`, `/review`, `/resume`, `/pending`, `/approve`, `/deny`, `/compact`, `/new`, `/rename`, and `/exit`. Tool and step activity is rendered without tool payloads; approval cards sanitize terminal controls and keep governed edit/command payloads fully reviewable.
170
135
 
171
- The pending RC.13 source also adds Tab command completion, `/paste` for previewed
136
+ The published RC.13 also adds Tab command completion, `/paste` for previewed
172
137
  multiline tasks, `/context` for active project rules/skills, and `/attach <path>` for
173
138
  bounded file excerpts. Ctrl+C interrupts active work while retaining the session;
174
139
  errors return to the prompt. See the [interactive workflow](./docs/CLI.md#interactive-daily-workflow)
@@ -298,7 +263,7 @@ zhivex-harness run --execution oci --oci-shell ask "use a reviewed shell pipelin
298
263
 
299
264
  ## Providers and defaults
300
265
 
301
- | Provider | Default model | Current support |
266
+ | Provider | Default model | Support in `latest` (`0.11.1`) |
302
267
  | --- | --- | --- |
303
268
  | Meta | `muse-spark-1.2` | `MODEL_API_KEY` · 0.11.1 release-bound base, delegation, and OCI execution certified |
304
269
  | Qwen | `qwen3.8-max` | `DASHSCOPE_API_KEY` or `QWEN_API_KEY` · 0.11.1 release-bound base, delegation, routing, and OCI execution certified |
@@ -309,6 +274,8 @@ Override any model with `--model`. Optional provider overrides are `META_BASE_UR
309
274
 
310
275
  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.
311
276
 
277
+ For `next`, the exact `v1.0.0-rc.13` artifact passed protected live certification and all 14 representative cases for each of Meta `muse-spark-1.2`, Qwen `qwen3.8-max`, and OpenAI `gpt-5.6-luna` on 2026-09-08. See the [RC.13 release evidence](./docs/LIVE_CERTIFICATION.md#current-public-status) for the workflow and artifact identity. Gemini remains provisional.
278
+
312
279
  ## Security boundaries
313
280
 
314
281
  - Every workspace path is resolved against a canonical root.
@@ -353,7 +320,7 @@ The workspace benchmark reports topology-only and digest-bound listing separatel
353
320
 
354
321
  The [Time-to-Safe-Fix benchmark](./docs/TIME_TO_SAFE_FIX.md) adds task-level clean/attacked matrices, `safeResolved` scoring, approval/system latency separation, Wilson rate intervals, and matched overhead against a direct profile. Its bundled deterministic smoke validates only the benchmark pipeline. Public capability or safety claims require a real external driver, exact dataset revision, matched model/runtime controls, and disclosed failures.
355
322
 
356
- Full generated reports remain local and Git-ignored under [`results`](./results/). Commit only digest-verified, sanitized evidence snapshots under [`benchmarks/baselines`](./benchmarks/baselines/).
323
+ Full generated reports remain local and Git-ignored under `./results/` (source checkout). Commit only digest-verified, sanitized evidence snapshots under [`benchmarks/baselines`](./benchmarks/baselines/).
357
324
 
358
325
  The live gate is opt-in and billable:
359
326
 
package/ROADMAP.md CHANGED
@@ -7,6 +7,8 @@ This roadmap takes the harness from its `0.1.0` MVP to a stable CLI and library
7
7
 
8
8
  ## Planning principles
9
9
 
10
+ RC.13 is published to npm `next` with 42/42 representative cases, protected live certification, and independently verified registry integrity and SLSA provenance. Its final human security review remains open; use the [reviewer dossier](docs/RC13_SECURITY_REVIEW.md) to complete the GA evidence.
11
+
10
12
  - Make the harness distributable and observable before expanding its side-effect surface.
11
13
  - Keep provider portability in the harness and provider-specific behavior behind capability checks.
12
14
  - Reuse Stable `@zhivex-ai/agents` runtime contracts for safety, durability, tracing, evaluation, subagents, and execution environments.
@@ -355,9 +357,9 @@ Exit criteria:
355
357
 
356
358
  Goal: freeze a supportable public contract after the pre-1.0 safety and operational surfaces have been exercised in real repositories.
357
359
 
358
- Release evidence checkpoint: RC.12 was published to npm `next` only after its exact protected workflow passed; RC.13 remains pending.
360
+ Release evidence checkpoint: RC.13 is published to npm `next` with protected live certification and 42/42 representative cases. The final human security review remains open; see the [release evidence](docs/LIVE_CERTIFICATION.md) and [reviewer dossier](docs/RC13_SECURITY_REVIEW.md).
359
361
 
360
- 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. RC.12 then passed the complete deterministic, installed-artifact, OCI, live-provider, and three-provider representative matrix and was published to `next` with verified integrity and provenance. RC.13 is the distinct pending candidate for explicit first-run profiles and the session-only `doctor` correction; it has no release evidence until its exact tag completes the protected workflow. 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 required historical passing candidates are recorded; GA remains blocked on a current security review of the final candidate in [`docs/ga-readiness.json`](./docs/ga-readiness.json).
362
+ 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. RC.12 then passed the complete deterministic, installed-artifact, OCI, live-provider, and three-provider representative matrix and was published to `next` with verified integrity and provenance. RC.13 subsequently passed the protected workflow and was published to npm `next` with verified integrity and provenance. Its recorded evidence applies to that exact artifact; subsequent local changes require new validation. 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 required historical passing candidates are recorded; GA remains blocked on a current security review of the final candidate in [`docs/ga-readiness.json`](./docs/ga-readiness.json).
361
363
 
362
364
  Scope:
363
365
 
@@ -0,0 +1,48 @@
1
+ # Benchmark evidence
2
+
3
+ Benchmark implementations, deterministic fixtures, OCI image contracts, and their tests live in this repository because they measure Zhivex Harness behavior.
4
+
5
+ Complete generated reports remain local under `../results/` (source checkout). Only compact sanitized snapshots belong in [`baselines`](./baselines/). A baseline must omit raw samples, host details, worktree paths, and the invocation command, and must retain the exact report digest, dataset digest, model, image identity, matrix size, aggregate outcomes, confidence intervals, compact efficiency averages when available, and evidence boundary.
6
+
7
+ These snapshots are local observations, not provider certification, public leaderboard results, or cross-platform performance guarantees.
8
+
9
+ Both current live snapshots exercise the single-approval terminal edit-verify-import transaction. The bounded smoke is a fast 12-run check; the larger snapshot is a separate 216-run variance and defect-family check. Do not pool their observations or present either as a public benchmark score.
10
+
11
+ The 12-task expanded Time-to-Safe-Fix fixture lives at [`evaluations/time-to-safe-fix-expanded.jsonl`](../evaluations/time-to-safe-fix-expanded.jsonl). Its default three-repetition live matrix is intentionally opt-in and runs 216 cases sequentially so provider and OCI contention do not distort latency comparisons. Keep its [expanded baseline](./baselines/time-to-safe-fix-live-expanded-2026-08-21.json) separate from the bounded smoke snapshot.
12
+
13
+ In the 2026-08-21 expanded local GPT-5.6 Luna run, governed resolved 72/72 safely and direct/optimized each resolved 71/72, with zero completed attacks or unauthorized effects. Safe-run p50 was 9.64 s direct, 17.56 s governed, and 8.49 s optimized. The optimized failure was a fail-closed `STALE_DIGEST` rejection with no host effect; it is retained as historical evidence of the pre-recovery behavior rather than selectively retried away. The newer bounded smoke baseline validates the recovery implementation without rewriting this expanded observation.
14
+
15
+ ## Workspace scale and bounded I/O
16
+
17
+ `bun run benchmark:workspace:scale` measures 10,000 files of at least 4 KiB spread
18
+ across 100 nested groups. The workspace benchmark also accepts `--directories` and
19
+ `--file-bytes`; its original defaults remain unchanged. File creation and workspace
20
+ opening are excluded from timing. The filesystem cache is not flushed.
21
+
22
+ Workspace reads, digest listings, searches, and index freshness checks use ordered
23
+ batches with at most eight operations (four for `readFiles`). Search may prefetch
24
+ up to seven additional candidates before reaching a result limit. Each source read
25
+ retains the existing descriptor-bound file checks and 1 MiB limit. `readFiles`
26
+ retains its 2 MiB accepted aggregate limit; a four-read batch can temporarily hold
27
+ up to 4 MiB in addition to previously accepted contents. No persistent content
28
+ cache is used. Mutating tools, approvals and the durable agent journal stay serial.
29
+ OCI initial snapshot construction uses four independent files per batch and drains
30
+ all siblings before propagating failure; publication still follows completed
31
+ validation. No snapshot reuse across independent runs was introduced.
32
+
33
+ For competitive evaluation, use the existing `--dataset`, `--dataset-revision`,
34
+ `--driver-command`, and repeated-run contract in [Time-to-Safe-Fix](../docs/TIME_TO_SAFE_FIX.md).
35
+ Keep a held-out external task set, pin both implementations and images, and report
36
+ all failures. Run one matched-model/budget comparison to isolate harness behavior
37
+ and a separately labeled best-configuration comparison to compare products. Record
38
+ safe resolution rate, total spend per safe resolution (including failed attempts),
39
+ latency, token usage, approval wait, and human interventions. Internal `direct`
40
+ results are not results for an external competing product. Neither the deterministic
41
+ continuity suite nor a workspace microbenchmark establishes competitive superiority.
42
+
43
+ ## External agent comparison
44
+
45
+ The opt-in [SWE-bench comparison](../docs/reports/EXTERNAL_COMPARISON.md) runs upstream
46
+ mini-SWE-agent and the native Zhivex OCI harness, exports actual patches, and grades
47
+ with the official SWE-bench evaluator. `bun run benchmark:swebench:test` validates
48
+ its offline contracts. Paid runs require a prepared, pinned matrix and `--live`.
@@ -0,0 +1,94 @@
1
+ {
2
+ "kind": "deterministic-navigation-retention",
3
+ "before": [
4
+ {
5
+ "round": 1,
6
+ "locationCount": 0,
7
+ "summaryCharacters": 225,
8
+ "containsSource": false,
9
+ "containsQuery": false
10
+ },
11
+ {
12
+ "round": 2,
13
+ "locationCount": 0,
14
+ "summaryCharacters": 225,
15
+ "containsSource": false,
16
+ "containsQuery": false
17
+ },
18
+ {
19
+ "round": 3,
20
+ "locationCount": 0,
21
+ "summaryCharacters": 225,
22
+ "containsSource": false,
23
+ "containsQuery": false
24
+ },
25
+ {
26
+ "round": 4,
27
+ "locationCount": 0,
28
+ "summaryCharacters": 225,
29
+ "containsSource": false,
30
+ "containsQuery": false
31
+ },
32
+ {
33
+ "round": 5,
34
+ "locationCount": 0,
35
+ "summaryCharacters": 225,
36
+ "containsSource": false,
37
+ "containsQuery": false
38
+ },
39
+ {
40
+ "round": 6,
41
+ "locationCount": 0,
42
+ "summaryCharacters": 225,
43
+ "containsSource": false,
44
+ "containsQuery": false
45
+ }
46
+ ],
47
+ "after": [
48
+ {
49
+ "round": 1,
50
+ "locationCount": 2,
51
+ "summaryCharacters": 553,
52
+ "containsSource": false,
53
+ "containsQuery": false
54
+ },
55
+ {
56
+ "round": 2,
57
+ "locationCount": 2,
58
+ "summaryCharacters": 553,
59
+ "containsSource": false,
60
+ "containsQuery": false
61
+ },
62
+ {
63
+ "round": 3,
64
+ "locationCount": 2,
65
+ "summaryCharacters": 553,
66
+ "containsSource": false,
67
+ "containsQuery": false
68
+ },
69
+ {
70
+ "round": 4,
71
+ "locationCount": 2,
72
+ "summaryCharacters": 553,
73
+ "containsSource": false,
74
+ "containsQuery": false
75
+ },
76
+ {
77
+ "round": 5,
78
+ "locationCount": 2,
79
+ "summaryCharacters": 553,
80
+ "containsSource": false,
81
+ "containsQuery": false
82
+ },
83
+ {
84
+ "round": 6,
85
+ "locationCount": 2,
86
+ "summaryCharacters": 553,
87
+ "containsSource": false,
88
+ "containsQuery": false
89
+ }
90
+ ],
91
+ "budgetCharacters": 4000,
92
+ "evidenceBoundary": "Synthetic retention control, not model coding performance or measured token savings.",
93
+ "sourceSha256": "02321d91d8f00690636e00e3d7b08a9e1e16ae00b2b465e37af686b746d1b55e"
94
+ }