@zhivex-ai/harness 1.0.0-rc.7 → 1.1.0-rc.10

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 (152) hide show
  1. package/CHANGELOG.md +373 -0
  2. package/README.md +52 -321
  3. package/SECURITY.md +2 -2
  4. package/SUPPORT.md +7 -3
  5. package/benchmarks/README.md +48 -0
  6. package/contracts/client-protocol-v1.schema.json +341 -0
  7. package/contracts/public-api.json +132 -1
  8. package/contracts/security-controls.json +3 -2
  9. package/contracts/stable-api-signatures.json +61 -57
  10. package/dist/approvals/approval-diff.d.ts +45 -0
  11. package/dist/approvals/approval-history.d.ts +38 -0
  12. package/dist/approvals/approval-preview.d.ts +26 -0
  13. package/dist/cli/arguments.d.ts +105 -0
  14. package/dist/cli/changes.d.ts +2 -0
  15. package/dist/cli/cli-credentials.d.ts +50 -0
  16. package/dist/cli/cli-help.d.ts +3 -0
  17. package/dist/{cli-options.d.ts → cli/cli-options.d.ts} +2 -1
  18. package/dist/cli/cli-profiles.d.ts +55 -0
  19. package/dist/cli/cli-stream.d.ts +167 -0
  20. package/dist/cli/configured-harness.d.ts +12 -0
  21. package/dist/cli/console/console-commands.d.ts +6 -0
  22. package/dist/cli/console/console-context.d.ts +30 -0
  23. package/dist/cli/console/console-input.d.ts +68 -0
  24. package/dist/cli/console/console-model-catalog.d.ts +8 -0
  25. package/dist/cli/console/console-navigation.d.ts +29 -0
  26. package/dist/cli/console/console-presentation.d.ts +18 -0
  27. package/dist/cli/console/console-welcome.d.ts +13 -0
  28. package/dist/cli/console.d.ts +2 -0
  29. package/dist/cli/doctor.d.ts +52 -0
  30. package/dist/cli/errors.d.ts +8 -0
  31. package/dist/cli/help-text.d.ts +2 -0
  32. package/dist/cli/presentation.d.ts +23 -0
  33. package/dist/cli/resume-metadata.d.ts +12 -0
  34. package/dist/cli/routing.d.ts +6 -0
  35. package/dist/cli/run-commands.d.ts +4 -0
  36. package/dist/cli/run-document.d.ts +91 -0
  37. package/dist/cli/run-management.d.ts +2 -0
  38. package/dist/cli/service-client-cli.d.ts +2 -0
  39. package/dist/cli/session-management.d.ts +8 -0
  40. package/dist/cli/setup.d.ts +10 -0
  41. package/dist/cli/state.d.ts +2 -0
  42. package/dist/cli/task-input.d.ts +6 -0
  43. package/dist/cli/terminal/terminal-continuation.d.ts +3 -0
  44. package/dist/cli/terminal/terminal-markdown.d.ts +13 -0
  45. package/dist/{terminal-ui.d.ts → cli/terminal/terminal-ui.d.ts} +7 -0
  46. package/dist/cli/terminal/tool-activity.d.ts +19 -0
  47. package/dist/cli.d.ts +32 -235
  48. package/dist/cli.js +17279 -9687
  49. package/dist/client/adapter.d.ts +4 -0
  50. package/dist/client/index.d.ts +15 -0
  51. package/dist/{json-contracts.d.ts → client/json-contracts.d.ts} +298 -236
  52. package/dist/client/local-service.d.ts +34 -0
  53. package/dist/client/protocol.d.ts +205 -0
  54. package/dist/client/service-events.d.ts +50 -0
  55. package/dist/context/adaptive-compaction.d.ts +16 -0
  56. package/dist/context/compaction.d.ts +12 -0
  57. package/dist/{context-engineering.d.ts → context/context-engineering.d.ts} +7 -7
  58. package/dist/context/context-metrics.d.ts +13 -0
  59. package/dist/context/task-memory.d.ts +36 -0
  60. package/dist/{execution-environment.d.ts → execution/execution-environment.d.ts} +17 -9
  61. package/dist/hostile-repository-demo.js +5065 -1267
  62. package/dist/index.d.ts +49 -41
  63. package/dist/index.js +10641 -6176
  64. package/dist/internal/desktop/persistence.d.ts +14 -0
  65. package/dist/internal/desktop/protocol.d.ts +8 -0
  66. package/dist/internal/desktop/providers.d.ts +9 -0
  67. package/dist/internal/desktop/runtime.d.ts +7 -0
  68. package/dist/models/catalog-store.d.ts +15 -0
  69. package/dist/models/catalog.d.ts +74 -0
  70. package/dist/{operations.d.ts → persistence/operations.d.ts} +105 -20
  71. package/dist/persistence/persistence-secrets.d.ts +2 -0
  72. package/dist/persistence/recorded-workspace.d.ts +4 -0
  73. package/dist/{sessions.d.ts → persistence/sessions.d.ts} +4 -1
  74. package/dist/persistence/sqlite-access.d.ts +26 -0
  75. package/dist/{sqlite-database.d.ts → persistence/sqlite-database.d.ts} +2 -0
  76. package/dist/{state-backup.d.ts → persistence/state-backup.d.ts} +11 -3
  77. package/dist/{capabilities.d.ts → providers/capabilities.d.ts} +1 -1
  78. package/dist/providers/meta-continuation.d.ts +1 -0
  79. package/dist/{providers.d.ts → providers/providers.d.ts} +9 -2
  80. package/dist/{routing.d.ts → providers/routing.d.ts} +2 -2
  81. package/dist/{config.d.ts → runtime/config.d.ts} +11 -2
  82. package/dist/runtime/delegation-contracts.d.ts +23 -0
  83. package/dist/runtime/error-diagnostics.d.ts +116 -0
  84. package/dist/runtime/harness.d.ts +90 -0
  85. package/dist/runtime/model-budget.d.ts +61 -0
  86. package/dist/{orchestration.d.ts → runtime/orchestration.d.ts} +6 -0
  87. package/dist/runtime/repair-controller.d.ts +72 -0
  88. package/dist/runtime/repair-progress.d.ts +40 -0
  89. package/dist/runtime/repair-verifier.d.ts +6 -0
  90. package/dist/runtime/run-interruption.d.ts +4 -0
  91. package/dist/runtime/runtime-checkpoints.d.ts +7 -0
  92. package/dist/runtime/runtime-diagnostics.d.ts +64 -0
  93. package/dist/runtime/runtime-policy.d.ts +52 -0
  94. package/dist/{time-to-safe-fix.d.ts → runtime/time-to-safe-fix.d.ts} +133 -19
  95. package/dist/runtime/usage-ledger.d.ts +84 -0
  96. package/dist/service-cli.d.ts +2 -0
  97. package/dist/service-cli.js +11748 -0
  98. package/dist/tools/execution.d.ts +47 -0
  99. package/dist/tools/shared.d.ts +67 -0
  100. package/dist/tools/tool-registry.d.ts +4 -0
  101. package/dist/tools/workspace.d.ts +85 -0
  102. package/dist/verify-historical-migrations.js +6409 -3225
  103. package/dist/workspace/bounded-reads.d.ts +4 -0
  104. package/dist/workspace/replacement-edits.d.ts +9 -0
  105. package/dist/workspace/workspace-mutation-lock.d.ts +5 -0
  106. package/dist/{workspace.d.ts → workspace/workspace.d.ts} +61 -4
  107. package/dist/zhx.js +17279 -9687
  108. package/docs/CLI.md +271 -25
  109. package/docs/CLIENT_PROTOCOL.md +212 -0
  110. package/docs/CONTEXT_ENGINEERING.md +187 -0
  111. package/docs/CREDENTIALS.md +69 -0
  112. package/docs/DURABLE_OPERATIONS.md +8 -2
  113. package/docs/EXECUTION_ENVIRONMENTS.md +21 -0
  114. package/docs/EXTENSIBILITY.md +59 -2
  115. package/docs/FIRST_USE.md +95 -0
  116. package/docs/FIRST_USE_EXAMPLE.md +40 -0
  117. package/docs/HOSTILE_REPOSITORY_DEMO.md +1 -1
  118. package/docs/LOCAL_SERVICE.md +142 -0
  119. package/docs/MODEL_CATALOG.md +48 -0
  120. package/docs/README.md +35 -0
  121. package/docs/REPOSITORY_EDITING.md +47 -0
  122. package/docs/THREAT_MODEL.md +3 -3
  123. package/docs/TIME_TO_SAFE_FIX.md +6 -6
  124. package/docs/USAGE.md +181 -0
  125. package/evaluations/daily-cli-cohort.json +33 -0
  126. package/evaluations/repair-controller-experiment.json +24 -0
  127. package/evaluations/representative-assembly-matrix.json +154 -1
  128. package/evaluations/representative-matrix.json +2219 -2
  129. package/examples/README.md +26 -0
  130. package/examples/first-use/greeting.test.ts +3 -0
  131. package/examples/first-use/greeting.ts +1 -0
  132. package/examples/first-use/package.json +7 -0
  133. package/fixtures/contracts/v1/init.json +19 -0
  134. package/package.json +63 -22
  135. package/ROADMAP.md +0 -405
  136. package/dist/cli-stream.d.ts +0 -167
  137. package/dist/harness.d.ts +0 -175
  138. package/docs/GA_READINESS.md +0 -23
  139. package/docs/GEMINI_1_0_DECISION.md +0 -9
  140. package/docs/LIVE_CERTIFICATION.md +0 -97
  141. package/docs/RELEASE.md +0 -94
  142. package/docs/ROLLBACK.md +0 -9
  143. package/docs/SECURITY_REVIEW_EVIDENCE.md +0 -15
  144. package/docs/ga-readiness.json +0 -235
  145. package/dist/{package-manager.d.ts → execution/package-manager.d.ts} +0 -0
  146. package/dist/{process-runtime.d.ts → execution/process-runtime.d.ts} +0 -0
  147. package/dist/{mcp.d.ts → integrations/mcp.d.ts} +0 -0
  148. package/dist/{state-directory.d.ts → persistence/state-directory.d.ts} +0 -0
  149. package/dist/{errors.d.ts → runtime/errors.d.ts} +0 -0
  150. package/dist/{change-envelope.d.ts → workspace/change-envelope.d.ts} +4 -4
  151. package/dist/{edit-contracts.d.ts → workspace/edit-contracts.d.ts} +2 -2
  152. /package/dist/{file-security.d.ts → workspace/file-security.d.ts} +0 -0
package/CHANGELOG.md CHANGED
@@ -4,6 +4,363 @@ 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
+ ## 1.1.0-rc.10 - 2026-09-23
8
+
9
+ - Restore `qwen3.8-max` as the default for new CLI/Desktop selections and RC.10 certification. Keep saved models and historical release mappings unchanged.
10
+ - Remove transient provider/SDK investigation reports and their local trial evidence; retain them in Git history.
11
+
12
+ - Recover once when Meta Responses rejects a function receipt continuation because its response ID is unavailable. Replay the identical request after a bounded delay, preserve cancellation, and exclude hosted tools and unrelated HTTP errors. Host tools are not executed again.
13
+ - Bind the new Meta transport policy to durable run identity. Use Qwen 3.8 Max, OpenAI Luna 6 and Muse Spark 1.3 release models; full release certification remains required.
14
+
15
+ ## 1.1.0-rc.9 - 2026-09-23
16
+
17
+ - Upgrade Core to 1.23.0-next.2 and Agents to 1.9.0-next.2. All eight consumer redaction cases pass, including later rejection and file-store reopen. Qwen Flash orchestration remains intermittent, so RC certification is still blocked.
18
+
19
+ - Default new Meta selections to Muse Spark 1.3 and use Responses for built-in Meta agent tool loops. Bind the transport migration to durable run identity; preserve saved model IDs and historical evidence. Certification remains pending.
20
+
21
+ - Add application-owned read delegation contracts: models select task IDs while Harness preserves task text, enforces file scope and validates acceptance. Keep durable SDK execution and budgets; expose finite error classifications without logging task content.
22
+ - Allow trusted strict-mode applications to select a fingerprint-bound tool catalog and render only relevant tool instructions. Use scoped contracts/catalogs in live certification without weakening effect, approval, journal or marker checks.
23
+ - Integrate the published SDK next batch with failed-child linkage/accounting and OpenAI function receipt fixes. Update native-tool fixtures to the consistent metadata contract.
24
+ - Publication remains blocked: governed Flash orchestration passed three local executions, but the scoped base campaign failed one of three cases on exact approval arguments before mutation. These are local validation results, not a new RC certification.
25
+
26
+ ## 1.1.0-rc.8 - 2026-09-22
27
+
28
+ - Preserve OpenAI function tool receipts through approval resume using SDK result envelopes. Prevent function names such as `apply_patch` from being mistaken for native Responses tools and losing their output. Keep release assertions and fail-fast gates unchanged.
29
+
30
+ ## 1.1.0-rc.7 - 2026-09-22
31
+
32
+ - Select `gpt-6-luna` as the OpenAI default for new CLI/Desktop choices and pin it in RC7 release certification. Preserve explicitly saved models and historical certification mappings.
33
+ - Identify failed base live-smoke checkpoints with allowlisted labels and assertion kinds, without retaining raw assertion values or model responses.
34
+
35
+ ## 1.1.0-rc.6 - 2026-09-22
36
+
37
+ - Stop release gates and remaining providers after a confirmed failure while retaining exhaustive manual diagnostics.
38
+ - Preserve completed certification cases across report failures and record bounded, sanitized error structure and finalization phases.
39
+
40
+ ## 1.1.0-rc.5 - 2026-09-22
41
+
42
+ Unpublished candidate targeting npm `next`, superseding the tagged but unpublished RC.4.
43
+
44
+ - Use `qwen3.8-flash` as the default Qwen model in CLI/Desktop and the new release certification matrix. Keep Max selectable and preserve explicitly saved model choices and historical certification pins. Flash requires fresh release-bound certification.
45
+
46
+ ## 1.1.0-rc.4 - 2026-09-22
47
+
48
+ - Align the SDK batch with the latest stable packages verified on 2026-09-22:
49
+ Agents 1.8.0, Core 1.22.0, Gemini 0.12.1, Meta 0.2.6, OpenAI 0.13.4 and
50
+ Qwen 0.15.0. Keep the compatible TypeScript 6.0.3 compiler API for architecture
51
+ and Stable signature checks while building with TypeScript 7.0.2.
52
+
53
+ - Use searchable provider/model selection during first use, detect a lone environment
54
+ provider, recover failed keychain setup with explicit temporary use or retry, and
55
+ show one ready screen with credential source and approval policy.
56
+ - Make `doctor` follow conversation defaults and inspect the selected environment
57
+ or keychain credential without contacting the provider. Human diagnostics focus
58
+ on the selected provider; JSON retains the full provider inventory. One-shot
59
+ execution continues to require explicit profiles and environment credentials.
60
+
61
+ - Retain recent conversation groups by estimated tokens, adapt repair compaction
62
+ to remaining input allowance, and preserve structured working plans across
63
+ repeated summaries. Keep SDK approval/checkpoint ownership and explicit overrides.
64
+ - Unify context estimates, reuse transport measurements and cache tool-schema
65
+ serialization. Default discovery to ten search matches and path-only listings;
66
+ callers can explicitly request larger results and digests.
67
+
68
+ - Add `--no-token-budget` / `unlimitedTokens: true` to disable cumulative token
69
+ budgets for main runs and subagents while preserving usage accounting,
70
+ compaction, per-request limits, and non-token execution controls.
71
+
72
+ Unpublished release candidate targeting npm `next`, following published RC.3.
73
+ Fresh protected certification is required before publication. Stable `latest`
74
+ remains 1.0.0.
75
+
76
+ - Make appended command help independent of task/configuration validation, group options with examples, and accept `--name=value` for value options.
77
+ - Add explicit UTF-8 task input through `zhx run -` and `zhx review -`, bounded to 1 MiB and retaining approval requirements.
78
+ - Add atomic personal profile updates with `zhx init --update`, reopen provider/model selection after declining the default profile, and give actionable usage/configuration recovery messages.
79
+ - Share the curated model catalog across CLI and Desktop, with primary/other groups, explicit lifecycle and validation metadata, custom model IDs, and optional HTTPS catalog distribution with cached fallback.
80
+ - Improve the separate Desktop alpha with rendered Markdown, file diffs, conversation navigation and local preferences, accessible panels and controlled external links. Desktop retains its independent private alpha version.
81
+
82
+ ## 1.1.0-rc.3 - 2026-09-22
83
+
84
+ Published release candidate on npm `next`. The changes below describe RC.3;
85
+ subsequent work belongs to RC.4. Stable `latest` remains 1.0.0.
86
+
87
+ - Group interactive tool activity into a bounded live line and summaries between assistant messages. Preserve individual failures, check receipts and approval requests; `/verbose` restores event detail.
88
+ - Identify token-budget and step-limit failures without mislabeling them as provider stream failures or exposing arbitrary provider error payloads.
89
+ - Enforce cumulative Qwen token budgets between responses for runs without subagents, including approval resume, without injecting a transport `maxTokens` parameter. An over-budget response cannot execute its requested tools or trigger another call.
90
+ - Organize CLI, runtime, providers, persistence, tools and Desktop integration behind explicit module boundaries, with architecture checks and unchanged public API contracts.
91
+ - Make the packaged conversation smoke select its fixture provider explicitly; onboarding is verified separately.
92
+ - Add release preparation and early metadata validation, retain release tarballs for recovery, and distinguish publication from verification in workflow summaries.
93
+
94
+ ## 1.1.0-rc.2 - 2026-09-22
95
+
96
+ Release candidate superseding the unpublished RC.1, targeting npm `next`.
97
+
98
+ - Register the exact candidate's external model pins and reject missing pins before live certification.
99
+ - Preserve historical 1.0 certification checks while allowing later candidates in the shared matrix.
100
+ - Bound the governed benchmark's retained history to the latest correlated tool group so verbose Qwen turns can compact within the existing 12,000-token input ceiling. Approval, isolation and independent verification requirements remain unchanged.
101
+ - Add deterministic coverage for the previous compaction failure and current-version model pin drift.
102
+
103
+ Fresh protected certification is required for this candidate before publication.
104
+
105
+ ## 1.1.0-rc.1 - 2026-09-22
106
+
107
+ Release candidate for the next compatible minor release, targeting the `next` channel.
108
+ The latest stable release remains 1.0.0. Desktop has its own private alpha version.
109
+
110
+ ### Desktop preview
111
+
112
+ - Add an experimental Electron client with durable conversations, project/worktree
113
+ navigation, model selection, native credential storage and governed approvals.
114
+ - Add recoverable installation and verified update machinery. Production signing,
115
+ notarization and update trust configuration remain pending; automatic updates
116
+ remain disabled in the default alpha build.
117
+
118
+ ### Release validation and profile safety
119
+
120
+ - Install the pinned Electron runtime explicitly before macOS native tests, including
121
+ the general validation job; keep other dependency lifecycle scripts disabled.
122
+ - Bind default-profile confirmation to the displayed provider/model so a profile
123
+ changed while the prompt is open cannot redirect the current invocation.
124
+
125
+ ### Developer experience and documentation
126
+
127
+ - Keep initial menu and model options visible on asynchronous terminals by preserving
128
+ readline prompt and menu write order; no extra arrow key is required to draw them.
129
+
130
+ - Lead `zhx --help` with everyday actions; add command-specific help and `zhx help all` for the complete reference.
131
+ - Show common slash actions first, retaining full-catalog search and `/help all`. Pending approval controls remain visible in the short help.
132
+ - Shorten onboarding, separate user/integration/maintenance guides, and standardize maintained Desktop guides in English while quoting current UI labels.
133
+ - Exclude maintainer-only documentation from npm using explicit guide entries and validate links inside the packed archive.
134
+
135
+ Existing commands, aliases, machine output and persisted state remain compatible.
136
+ These changes are assigned to 1.1.0-rc.1 and require fresh artifact-bound certification before publication.
137
+
138
+ ### Local service and replay
139
+
140
+ - Add a private authenticated Unix transport and Node runtime owner with graceful drain and explicit dead-process recovery.
141
+ - Persist redacted activity with stable event IDs, cursor replay, bounded retention and expired-cursor snapshots.
142
+ - Coordinate approval revisions/expiry and active cancellation across clients; verify crash recovery and a single edit journal receipt against the installed artifact.
143
+
144
+ ### Shared client contract
145
+
146
+ - Add an experimental versioned in-process adapter over existing sessions, runs, approvals and checkpoint cancellation. Strict command validation, connection-scoped idempotency and expected revisions are explicit.
147
+ - Add a JSON Schema, integration documentation and an offline reference client tested against the installed package. No service listener, replay stream or multi-client coordination is introduced.
148
+
149
+ ### Daily CLI workflow
150
+
151
+ - Add installed-package first-use coverage, recovery guidance and a runnable example.
152
+ - Search project sessions and reconcile durable state and pending approvals before continuation.
153
+ - Inspect attachment limits, retained skill receipts and context compaction; clarify exact approval scope and verification outcomes.
154
+ - Persist per-provider/model usage across child calls and resumed runs. Optional dated pricing and per-run monetary limits block unknown or stale pricing and unknown usage; displayed costs remain estimates.
155
+ - Prepare a frozen two-repository evaluation cohort and installed-artifact pilot driver. Complete the authorized live baseline and pilot (HAR-HU-14, 20): both artifacts scored 6/10; release recommendation remains HOLD.
156
+
157
+ ### Console input and streaming
158
+
159
+ - Insert bracketed clipboard content as bounded, editable literal text; prevent
160
+ pasted commands and approval answers from executing accidentally.
161
+ - Suppress input echo while a run is active, preserve drafts across terminal resize,
162
+ and deliver partial streamed lines during provider pauses and on error cleanup.
163
+ - Extend the offline Node PTY demonstration with clipboard safety, cursor editing,
164
+ resize, provider failure and history recovery. JSON/JSONL and persisted state
165
+ contracts are unchanged.
166
+
167
+ ### Migration from 1.0.0
168
+
169
+ - Existing CLI commands, JSON/JSONL output, public stable APIs and state format 1
170
+ remain compatible. Back up durable state before testing a prerelease.
171
+ - Local service and shared client APIs remain experimental. Desktop remains a
172
+ separately versioned private alpha, outside the stable CLI/library guarantee.
173
+ - Use the source development workflow until this candidate is published to npm
174
+ `next`; npm `latest` continues to install 1.0.0.
175
+
176
+ ## 1.0.0 - 2026-09-20
177
+
178
+ ### GA promotion
179
+
180
+ - Promote the RC.14 runtime and dependency set without further runtime changes.
181
+ Stable API/CLI/schema contracts, supported Node runtimes and migration policies
182
+ are defined in the published stability and support documents.
183
+ - Bind readiness to the published RC evidence, including RC.14 protected live
184
+ certification and its complete 42-case Meta/Qwen/OpenAI representative matrix.
185
+ Gemini remains provisional and outside the GA-certified cohort.
186
+ - Complete the artifact-bound security assessment under the explicitly documented
187
+ RC.14-only delegated AI review exception. This is not an independent human audit.
188
+ Preserve all four resolved findings, residual risks and negative exploratory
189
+ SWE-bench results; no broad coding-accuracy claim is made.
190
+ - Existing paused approvals remain bound to their original artifact. Stable
191
+ publication and provenance require their own protected release workflow.
192
+
193
+ ## 1.0.0-rc.14 - 2026-09-20
194
+
195
+ ### GA validation remediation
196
+
197
+ - Serialize workspace mutations across processes and isolate OCI state by the
198
+ canonical workspace, state directory, user, tenant, namespace and run identity.
199
+ Reject legacy unscoped snapshots and require review of full replacement edits.
200
+ - Add opt-in `requireVerifiedDelivery` for repair runs. Preserve bounded planning,
201
+ unknown-tool recovery and closure reserve across checkpoints without granting
202
+ approvals or increasing total token limits. Older paused approvals must resume
203
+ with their original artifact because the runtime policy binding changed.
204
+ - Consume published Core 1.22.0, Agents 1.8.0, OpenAI 0.13.3, Qwen 0.14.4,
205
+ Gemini 0.12.1 and Meta 0.2.6. Preserve supported terminal-error usage and
206
+ complete Qwen terminal tool calls through the upstream adapter fixes.
207
+ - Capture evaluation candidates from the actual run scope and verify Python
208
+ imports against the candidate checkout. Preserve complete failed evaluation
209
+ evidence; local validation and development results do not constitute GA
210
+ certification or replace release-bound representative and security evidence.
211
+
212
+ ### Full harness review remediation (2026-09-10)
213
+
214
+ - Reserve local tool names before MCP assembly, including disabled builtins;
215
+ correlate complete SSE events by JSON-RPC request ID.
216
+ - Add a durable repair controller with automatic approved verification, bounded
217
+ verifier recovery, candidate receipts and fail-closed incomplete delivery.
218
+ - Predict full request context, protect closure allowance and retain transport
219
+ accounting across approval resumes; refuse unknown crash/interruption usage.
220
+ - Project bounded working memory; keep full tasks outside manual compacted
221
+ prompts; check every batched read against normalized repair scope.
222
+ - Expose sanitized durable runtime diagnostics and effective role manifests.
223
+ - Require strict typechecking of source, scripts and tests in CI. Publish public
224
+ baselines, exclude development audit programs, and validate internal Markdown
225
+ links against the immutable packed artifact.
226
+ - Refine OCI `acquire` return declarations to `HarnessExecutionSession` and add
227
+ optional inspection fields. Refresh reviewed Stable signatures; existing
228
+ exports and JSON readers remain supported. Runtime policy fingerprint changes
229
+ require older paused approvals to use their original artifact.
230
+
231
+ ### Audit remediation (2026-09-09)
232
+
233
+ - Guard terminal imports with cancellation, deadlines and renewed run leases;
234
+ preserve caller step limits and interrupt approval waits.
235
+ - Reject ancestor symlinks during descriptor-bound reads on macOS/Linux.
236
+ - Preserve full redacted task sources through compaction and expose `read_task`
237
+ and bounded `repair_plan` working memory.
238
+ - Bound search output with explicit coverage and exact-file continuation; persist
239
+ governed OCI mutation receipts across reacquisition.
240
+ - Share the opt-in `repair` profile across library, CLI and benchmark, including
241
+ durable exploration controls and bounded verifier/schema recovery.
242
+ - Capture and independently grade private candidate patches; retain sanitized
243
+ model/tool/approval/OCI timings, attempted tools and typed failure evidence.
244
+ - Compaction/profile binding changes intentionally reject older paused approvals;
245
+ retain the original artifact to finish or deny those runs.
246
+
247
+ ### Changed
248
+
249
+ - 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.
250
+
251
+ - 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.
252
+
253
+ - 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.
254
+
255
+ - 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.
256
+
257
+ - 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.
258
+ - 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.
259
+ - Upgrade Qwen to 0.11.4 to consume the upstream trailing streamed-usage fix; stop interrupted external runs without continuing into another case.
260
+
261
+ - 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.
262
+
263
+ - Publish configured OCI executables in command schemas and preserve recent user corrections through repeated compaction within the same summary budget.
264
+
265
+ - Correct duplicate streamed token accounting after compaction when complete step usage is available, retaining real budget enforcement and conservative handling of missing usage.
266
+ - Preserve large unchanged fixture files in bounded OCI snapshots and reject linked inventory paths; project synthetic summaries into valid Responses context.
267
+
268
+ - Add approval-gated exact replacements bound to file digests; preserve UTF-8 bytes and reject ambiguous or stale edits.
269
+ - 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.
270
+ - Add a pinned external SWE-bench comparison, explicit pilot exclusions and partial sanitized failure telemetry.
271
+
272
+ - 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.
273
+ - Batch independent workspace reads, searches, index freshness checks and initial OCI snapshot file copies while keeping tool execution, approvals and publication serialized.
274
+ - Add nested/file-size workspace benchmarks, continuity regressions and local efficiency observations. These are not competitive model evaluations.
275
+
276
+ ## 1.0.0-rc.13 - 2026-09-03
277
+
278
+ ### Added
279
+
280
+ - Add console command completion, previewed multiline drafts, active project-context inspection, and bounded digest-checked file attachments for the next task.
281
+ - Keep interactive sessions open after command/provider failures and pass Ctrl+C cancellation to active turns and review groups while preserving unresolved approval batches.
282
+ - Render terminal-safe model text and optionally colored diffs; discard unsolicited input lines instead of replaying them into approval prompts.
283
+ - Add `zhx init` with interactive terminal prompts and deterministic non-interactive flags, plus explicit `--profile <name>` selection for `run`, `chat`, `review`, and `doctor`.
284
+ - Store one provider/model pair per schema-versioned personal profile outside the repository with owner-only directories/files, descriptor-bound no-follow reads, strict size/link/permission checks, and no credential or authority-bearing fields.
285
+ - Add a versioned `init` JSON document and installed-tarball smoke coverage for initialization, profile reuse, precedence, permissions, and secret-free output.
286
+
287
+ ### Fixed
288
+
289
+ - Persist externally interrupted ordinary turns as cancelled after runtime cleanup, without replacing completed work, pending approvals, or genuine timeouts.
290
+ - Accept explicit null first-page cursors for listing/search tools, keeping opaque cursor validation for subsequent pages.
291
+ - Add bounded in-memory task history, Alt+Enter multiline input, and terminal-safe Markdown presentation.
292
+ - Treat a valid SQLite database created only by `sessions list` as an uninitialized operations store in `doctor`, while continuing to reject partially initialized or incompatible operational schemas.
293
+
294
+ ### Changed
295
+
296
+ - 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.
297
+ - 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.
298
+
299
+ ### Migration from RC.12
300
+
301
+ No Harness configuration, run-store, session-store, change-envelope, or execution-policy migration is required. Existing invocations behave as before unless they opt into `zhx init` and `--profile`. Profiles contain only schema version, provider, and model; API keys remain environment-owned.
302
+
303
+ ## 1.0.0-rc.12 - 2026-09-02
304
+
305
+ ### Fixed
306
+
307
+ - 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.
308
+ - 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.
309
+
310
+ ### Changed
311
+
312
+ - 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.
313
+ - 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.
314
+ - 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.
315
+
316
+ ## 1.0.0-rc.11 - 2026-09-02
317
+
318
+ ### Fixed
319
+
320
+ - 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.
321
+
322
+ ### Changed
323
+
324
+ - 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.
325
+ - 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.
326
+ - 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.
327
+
328
+ ## 1.0.0-rc.10 - 2026-09-01
329
+
330
+ ### Fixed
331
+
332
+ - 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.
333
+ - 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.
334
+
335
+ ### Changed
336
+
337
+ - 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.
338
+ - 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.
339
+
340
+ ## 1.0.0-rc.9 - 2026-09-01
341
+
342
+ ### Fixed
343
+
344
+ - 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.
345
+
346
+ ### Changed
347
+
348
+ - 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.
349
+ - Extend the representative release matrices through `v1.0.0-rc.9`; RC.9 remains pending until its exact tag completes protected certification.
350
+
351
+ ## 1.0.0-rc.8 - 2026-09-01
352
+
353
+ ### Fixed
354
+
355
+ - 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.
356
+ - 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.
357
+
358
+ ### Changed
359
+
360
+ - 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.
361
+ - 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.
362
+ - 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.
363
+
7
364
  ## 1.0.0-rc.7 - 2026-08-25
8
365
 
9
366
  ### Fixed
@@ -446,3 +803,19 @@ No configuration, SQLite, approval, or execution-policy migration is required. E
446
803
  ### Added
447
804
 
448
805
  - Initial provider-portable coding harness MVP for Meta, Qwen, and OpenAI.
806
+
807
+ ### Experimental local service CLI
808
+
809
+ - Added opt-in `--service` for run/resume/chat and session list/inspect/rename,
810
+ with durable event replay and existing versioned JSON/JSONL documents.
811
+ - Persisted the shared CLI result projection and explicitly bound service run
812
+ admission to host scope. Added CLI/second-client crash recovery in installed smoke.
813
+
814
+ ### Experimental desktop chat
815
+
816
+ - Added redacted per-run chat activity with durable prompts, bounded tool snapshots
817
+ and actual check exit codes. Session reads remain available during execution.
818
+ - Preserved CLI JSONL compatibility; desktop strips rich engine/CLI/approval payloads,
819
+ deduplicates replay and reconciles lost responses before allowing another send.
820
+ - Verified packaged macOS chat with duplicate submission, failed check, expired
821
+ snapshot, transport interruption, renderer reload and split-secret fixtures.