@zhivex-ai/harness 1.0.0 → 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 (246) hide show
  1. package/CHANGELOG.md +184 -1
  2. package/README.md +52 -306
  3. package/SECURITY.md +1 -1
  4. package/SUPPORT.md +7 -3
  5. package/benchmarks/README.md +3 -3
  6. package/contracts/client-protocol-v1.schema.json +341 -0
  7. package/contracts/public-api.json +107 -1
  8. package/contracts/stable-api-signatures.json +34 -34
  9. package/dist/approvals/approval-diff.d.ts +45 -0
  10. package/dist/approvals/approval-history.d.ts +38 -0
  11. package/dist/approvals/approval-preview.d.ts +26 -0
  12. package/dist/cli/arguments.d.ts +105 -0
  13. package/dist/cli/changes.d.ts +2 -0
  14. package/dist/cli/cli-credentials.d.ts +50 -0
  15. package/dist/cli/cli-help.d.ts +3 -0
  16. package/dist/{cli-options.d.ts → cli/cli-options.d.ts} +1 -1
  17. package/dist/{cli-profiles.d.ts → cli/cli-profiles.d.ts} +17 -1
  18. package/dist/cli/configured-harness.d.ts +12 -0
  19. package/dist/cli/console/console-commands.d.ts +6 -0
  20. package/dist/{console-context.d.ts → cli/console/console-context.d.ts} +7 -3
  21. package/dist/cli/console/console-input.d.ts +68 -0
  22. package/dist/cli/console/console-model-catalog.d.ts +8 -0
  23. package/dist/cli/console/console-navigation.d.ts +29 -0
  24. package/dist/cli/console/console-presentation.d.ts +18 -0
  25. package/dist/cli/console/console-welcome.d.ts +13 -0
  26. package/dist/cli/console.d.ts +2 -0
  27. package/dist/cli/doctor.d.ts +52 -0
  28. package/dist/cli/errors.d.ts +8 -0
  29. package/dist/cli/help-text.d.ts +2 -0
  30. package/dist/cli/presentation.d.ts +23 -0
  31. package/dist/cli/resume-metadata.d.ts +12 -0
  32. package/dist/cli/routing.d.ts +6 -0
  33. package/dist/cli/run-commands.d.ts +4 -0
  34. package/dist/cli/run-document.d.ts +91 -0
  35. package/dist/cli/run-management.d.ts +2 -0
  36. package/dist/cli/service-client-cli.d.ts +2 -0
  37. package/dist/cli/session-management.d.ts +8 -0
  38. package/dist/cli/setup.d.ts +10 -0
  39. package/dist/cli/state.d.ts +2 -0
  40. package/dist/cli/task-input.d.ts +6 -0
  41. package/dist/cli/terminal/terminal-continuation.d.ts +3 -0
  42. package/dist/{terminal-markdown.d.ts → cli/terminal/terminal-markdown.d.ts} +1 -0
  43. package/dist/{terminal-ui.d.ts → cli/terminal/terminal-ui.d.ts} +7 -0
  44. package/dist/cli/terminal/tool-activity.d.ts +19 -0
  45. package/dist/cli.d.ts +32 -238
  46. package/dist/cli.js +17247 -12181
  47. package/dist/client/adapter.d.ts +4 -0
  48. package/dist/client/index.d.ts +15 -0
  49. package/dist/{json-contracts.d.ts → client/json-contracts.d.ts} +6 -0
  50. package/dist/client/local-service.d.ts +34 -0
  51. package/dist/client/protocol.d.ts +205 -0
  52. package/dist/client/service-events.d.ts +50 -0
  53. package/dist/context/adaptive-compaction.d.ts +16 -0
  54. package/dist/{compaction.d.ts → context/compaction.d.ts} +1 -1
  55. package/dist/{context-engineering.d.ts → context/context-engineering.d.ts} +2 -2
  56. package/dist/{context-metrics.d.ts → context/context-metrics.d.ts} +2 -0
  57. package/dist/{execution-environment.d.ts → execution/execution-environment.d.ts} +8 -4
  58. package/dist/hostile-repository-demo.js +2813 -869
  59. package/dist/index.d.ts +49 -41
  60. package/dist/index.js +8834 -6250
  61. package/dist/internal/desktop/persistence.d.ts +14 -0
  62. package/dist/internal/desktop/protocol.d.ts +8 -0
  63. package/dist/internal/desktop/providers.d.ts +9 -0
  64. package/dist/internal/desktop/runtime.d.ts +7 -0
  65. package/dist/models/catalog-store.d.ts +15 -0
  66. package/dist/models/catalog.d.ts +74 -0
  67. package/dist/{operations.d.ts → persistence/operations.d.ts} +25 -2
  68. package/dist/persistence/persistence-secrets.d.ts +2 -0
  69. package/dist/persistence/recorded-workspace.d.ts +4 -0
  70. package/dist/{sessions.d.ts → persistence/sessions.d.ts} +3 -0
  71. package/dist/persistence/sqlite-access.d.ts +26 -0
  72. package/dist/{sqlite-database.d.ts → persistence/sqlite-database.d.ts} +2 -0
  73. package/dist/{state-backup.d.ts → persistence/state-backup.d.ts} +9 -1
  74. package/dist/{capabilities.d.ts → providers/capabilities.d.ts} +1 -1
  75. package/dist/providers/meta-continuation.d.ts +1 -0
  76. package/dist/{providers.d.ts → providers/providers.d.ts} +4 -0
  77. package/dist/{routing.d.ts → providers/routing.d.ts} +1 -1
  78. package/dist/{config.d.ts → runtime/config.d.ts} +5 -1
  79. package/dist/runtime/delegation-contracts.d.ts +23 -0
  80. package/dist/runtime/error-diagnostics.d.ts +116 -0
  81. package/dist/{harness.d.ts → runtime/harness.d.ts} +16 -135
  82. package/dist/{orchestration.d.ts → runtime/orchestration.d.ts} +5 -0
  83. package/dist/{runtime-diagnostics.d.ts → runtime/runtime-diagnostics.d.ts} +1 -0
  84. package/dist/{runtime-policy.d.ts → runtime/runtime-policy.d.ts} +17 -1
  85. package/dist/{time-to-safe-fix.d.ts → runtime/time-to-safe-fix.d.ts} +114 -0
  86. package/dist/runtime/usage-ledger.d.ts +84 -0
  87. package/dist/service-cli.d.ts +2 -0
  88. package/dist/service-cli.js +11748 -0
  89. package/dist/tools/execution.d.ts +47 -0
  90. package/dist/tools/shared.d.ts +67 -0
  91. package/dist/tools/workspace.d.ts +85 -0
  92. package/dist/verify-historical-migrations.js +6831 -5494
  93. package/dist/{workspace.d.ts → workspace/workspace.d.ts} +22 -0
  94. package/dist/zhx.js +17247 -12181
  95. package/docs/CLI.md +190 -30
  96. package/docs/CLIENT_PROTOCOL.md +212 -0
  97. package/docs/CONTEXT_ENGINEERING.md +29 -2
  98. package/docs/CREDENTIALS.md +69 -0
  99. package/docs/DURABLE_OPERATIONS.md +8 -2
  100. package/docs/EXTENSIBILITY.md +58 -1
  101. package/docs/FIRST_USE.md +95 -0
  102. package/docs/FIRST_USE_EXAMPLE.md +40 -0
  103. package/docs/HOSTILE_REPOSITORY_DEMO.md +1 -1
  104. package/docs/LOCAL_SERVICE.md +142 -0
  105. package/docs/MODEL_CATALOG.md +48 -0
  106. package/docs/README.md +25 -23
  107. package/docs/THREAT_MODEL.md +1 -1
  108. package/docs/TIME_TO_SAFE_FIX.md +2 -2
  109. package/docs/USAGE.md +181 -0
  110. package/evaluations/daily-cli-cohort.json +33 -0
  111. package/evaluations/representative-assembly-matrix.json +91 -1
  112. package/examples/README.md +26 -0
  113. package/examples/first-use/greeting.test.ts +3 -0
  114. package/examples/first-use/greeting.ts +1 -0
  115. package/examples/first-use/package.json +7 -0
  116. package/package.json +50 -18
  117. package/ROADMAP.md +0 -414
  118. package/benchmarks/baselines/context-navigation-2026-09-09.json +0 -94
  119. package/benchmarks/baselines/efficiency-2026-09-08.json +0 -233
  120. package/benchmarks/baselines/external-final-2026-09-08.json +0 -588
  121. package/benchmarks/baselines/external-intermediate-2026-09-08.json +0 -116
  122. package/benchmarks/baselines/external-matched-openai-2026-09-08.json +0 -1922
  123. package/benchmarks/baselines/external-matched-qwen-2026-09-08.json +0 -1706
  124. package/benchmarks/baselines/external-pilot-2026-09-08.json +0 -439
  125. package/benchmarks/baselines/external-qwen-flash-2026-09-08.json +0 -1570
  126. package/benchmarks/baselines/external-qwen-remediation-2026-09-09.json +0 -1509
  127. package/benchmarks/baselines/external-qwen-sdk-114-progress-2026-09-09.json +0 -2509
  128. package/benchmarks/baselines/external-sdk-upgrade-2026-09-08.json +0 -564
  129. package/benchmarks/baselines/external-verifier-recovery-2026-09-09.json +0 -794
  130. package/benchmarks/baselines/full-harness-review-2026-09-10.json +0 -134
  131. package/benchmarks/baselines/harness-audit-2026-09-09.json +0 -136
  132. package/benchmarks/baselines/harness-remediation-2026-09-09.json +0 -160
  133. package/benchmarks/baselines/oci-remediation-2026-09-10.json +0 -535
  134. package/benchmarks/baselines/rc14-holdout-2026-09-10.json +0 -854
  135. package/benchmarks/baselines/repair-architecture-audit-2026-09-09.json +0 -75
  136. package/benchmarks/baselines/time-to-safe-fix-live-expanded-2026-08-21.json +0 -186
  137. package/benchmarks/baselines/time-to-safe-fix-live-smoke-2026-08-21.json +0 -186
  138. package/dist/console-input.d.ts +0 -28
  139. package/docs/GA_READINESS.md +0 -29
  140. package/docs/GEMINI_1_0_DECISION.md +0 -9
  141. package/docs/LIVE_CERTIFICATION.md +0 -107
  142. package/docs/RC13_SECURITY_REVIEW.md +0 -28
  143. package/docs/RC14_DELEGATED_SECURITY_DECISION.md +0 -80
  144. package/docs/RC14_SECURITY_REVIEW.md +0 -40
  145. package/docs/RELEASE.md +0 -96
  146. package/docs/ROLLBACK.md +0 -9
  147. package/docs/SECURITY_REVIEW_EVIDENCE.md +0 -17
  148. package/docs/ga-readiness.json +0 -366
  149. package/docs/reports/EFFICIENCY_REVIEW.md +0 -156
  150. package/docs/reports/EXTERNAL_COMPARISON.md +0 -434
  151. package/docs/reports/FULL_HARNESS_REVIEW_2026-09-10.md +0 -200
  152. package/docs/reports/GA_BUDGET_REMEDIATION_2026-09-19.md +0 -38
  153. package/docs/reports/GA_REPAIR_RECOVERY_2026-09-19.md +0 -700
  154. package/docs/reports/GA_VALIDATION_2026-09-19.md +0 -111
  155. package/docs/reports/HARNESS_ARCHITECTURE_REVIEW_2026-09-09.md +0 -202
  156. package/docs/reports/HARNESS_AUDIT_2026-09-09.md +0 -306
  157. package/docs/reports/HARNESS_REMEDIATION_2026-09-09.md +0 -74
  158. package/docs/reports/HARNESS_REMEDIATION_2026-09-10.md +0 -90
  159. package/docs/reports/MODEL_COMPARISON_2026-09-09.md +0 -184
  160. package/docs/reports/QWEN_REMEDIATION_COMPARISON_2026-09-09.md +0 -142
  161. package/docs/reports/RC14_VALIDATION_2026-09-10.md +0 -45
  162. package/docs/reports/README.md +0 -26
  163. package/docs/reports/evidence/ga-budget-remediation-2026-09-19.json +0 -133
  164. package/docs/reports/evidence/ga-catalog-ablation-2026-09-19.json +0 -699
  165. package/docs/reports/evidence/ga-catalog-ablation-plan-2026-09-19.json +0 -40
  166. package/docs/reports/evidence/ga-catalog-observed-2026-09-19.json +0 -985
  167. package/docs/reports/evidence/ga-catalog-observed-plan-2026-09-19.json +0 -28
  168. package/docs/reports/evidence/ga-catalog-observed-status-2026-09-19.json +0 -15
  169. package/docs/reports/evidence/ga-complete-local-check-2026-09-19.json +0 -47
  170. package/docs/reports/evidence/ga-completion-reminder-2026-09-19.json +0 -22
  171. package/docs/reports/evidence/ga-fresh-cohort-plan-2026-09-19.json +0 -54
  172. package/docs/reports/evidence/ga-fresh-cohort-preparation-2026-09-19.json +0 -242
  173. package/docs/reports/evidence/ga-fresh-cohort-result-2026-09-19.json +0 -4318
  174. package/docs/reports/evidence/ga-local-validation-followup-2026-09-19.json +0 -66
  175. package/docs/reports/evidence/ga-node-consumers-2026-09-19.json +0 -31
  176. package/docs/reports/evidence/ga-package-content-validation-2026-09-19.json +0 -22
  177. package/docs/reports/evidence/ga-plan-completion-2026-09-19.json +0 -39
  178. package/docs/reports/evidence/ga-plan-reserve-2026-09-19.json +0 -573
  179. package/docs/reports/evidence/ga-plan-reserve-plan-2026-09-19.json +0 -24
  180. package/docs/reports/evidence/ga-plan-transition-2026-09-19.json +0 -19
  181. package/docs/reports/evidence/ga-private-verifier-plan-2026-09-19.json +0 -24
  182. package/docs/reports/evidence/ga-private-verifier-root-cause-2026-09-19.json +0 -41
  183. package/docs/reports/evidence/ga-published-sdk-2026-09-19.json +0 -35
  184. package/docs/reports/evidence/ga-python-checkout-imports-2026-09-19.json +0 -95
  185. package/docs/reports/evidence/ga-python-origin-delivery-2026-09-19.json +0 -211
  186. package/docs/reports/evidence/ga-python-origin-delivery-plan-2026-09-19.json +0 -27
  187. package/docs/reports/evidence/ga-qwen-patched-package-2026-09-19.json +0 -1092
  188. package/docs/reports/evidence/ga-qwen-patched-package-plan-2026-09-19.json +0 -18
  189. package/docs/reports/evidence/ga-qwen-published-2026-09-19.json +0 -571
  190. package/docs/reports/evidence/ga-qwen-published-plan-2026-09-19.json +0 -18
  191. package/docs/reports/evidence/ga-qwen-tool-choice-2026-09-19.json +0 -85
  192. package/docs/reports/evidence/ga-qwen-tool-choice-patched-2026-09-19.json +0 -85
  193. package/docs/reports/evidence/ga-recovery-development-2026-09-19.json +0 -1066
  194. package/docs/reports/evidence/ga-recovery-graded-development-2026-09-19.json +0 -1313
  195. package/docs/reports/evidence/ga-recovery-graded-v2-2026-09-19.json +0 -1151
  196. package/docs/reports/evidence/ga-recovery-v3-2026-09-19.json +0 -3943
  197. package/docs/reports/evidence/ga-recovery-v4-2026-09-19.json +0 -1055
  198. package/docs/reports/evidence/ga-recovery-v5-2026-09-19.json +0 -1245
  199. package/docs/reports/evidence/ga-recovery-v6-2026-09-19.json +0 -699
  200. package/docs/reports/evidence/ga-recovery-v7-2026-09-19.json +0 -854
  201. package/docs/reports/evidence/ga-recovery-v8-2026-09-19.json +0 -596
  202. package/docs/reports/evidence/ga-required-delivery-2026-09-19.json +0 -25
  203. package/docs/reports/evidence/ga-required-delivery-live-2026-09-19.json +0 -1337
  204. package/docs/reports/evidence/ga-required-delivery-live-plan-2026-09-19.json +0 -25
  205. package/docs/reports/evidence/ga-retained-candidate-grading-2026-09-19.json +0 -30
  206. package/docs/reports/evidence/ga-tool-selection-live-2026-09-19.json +0 -559
  207. package/docs/reports/evidence/ga-tool-selection-live-plan-2026-09-19.json +0 -28
  208. package/docs/reports/evidence/ga-tool-selection-recovery-2026-09-19.json +0 -27
  209. package/docs/reports/evidence/ga-validation-2026-09-19.json +0 -236
  210. package/docs/reports/evidence/ga-verifier-discovery-live-2026-09-19.json +0 -1369
  211. package/docs/reports/evidence/ga-verifier-discovery-plan-2026-09-19.json +0 -29
  212. package/docs/reports/evidence/ga-verifier-failure-identification-2026-09-19.json +0 -30
  213. package/docs/reports/evidence/ga-verifier-feedback-2026-09-19.json +0 -65
  214. package/docs/reports/evidence/ga-verifier-hints-live-2026-09-19.json +0 -1297
  215. package/docs/reports/evidence/ga-verifier-hints-plan-2026-09-19.json +0 -27
  216. package/docs/reports/evidence/ga-work-boundary-context-analysis-2026-09-19.json +0 -113
  217. package/docs/reports/evidence/ga-work-boundary-live-2026-09-19.json +0 -301
  218. package/docs/reports/evidence/ga-work-boundary-live-plan-2026-09-19.json +0 -84
  219. package/docs/reports/evidence/ga-work-budget-planning-2026-09-19.json +0 -32
  220. package/docs/reports/evidence/ga-working-context-2026-09-19.json +0 -22
  221. package/docs/reports/evidence/rc14-delegated-security-review-2026-09-20.json +0 -81
  222. package/docs/reports/evidence/rc14-ga-gate-2026-09-20.json +0 -18
  223. package/docs/reports/evidence/rc14-representative-2026-09-20.json +0 -509
  224. package/docs/reports/evidence/rc14-security-regressions-2026-09-20.json +0 -64
  225. package/docs/reports/evidence/security-current-2026-09-19.json +0 -91
  226. package/docs/reports/evidence/security-remediation-2026-09-19.json +0 -97
  227. /package/dist/{cli-stream.d.ts → cli/cli-stream.d.ts} +0 -0
  228. /package/dist/{task-memory.d.ts → context/task-memory.d.ts} +0 -0
  229. /package/dist/{package-manager.d.ts → execution/package-manager.d.ts} +0 -0
  230. /package/dist/{process-runtime.d.ts → execution/process-runtime.d.ts} +0 -0
  231. /package/dist/{mcp.d.ts → integrations/mcp.d.ts} +0 -0
  232. /package/dist/{state-directory.d.ts → persistence/state-directory.d.ts} +0 -0
  233. /package/dist/{errors.d.ts → runtime/errors.d.ts} +0 -0
  234. /package/dist/{model-budget.d.ts → runtime/model-budget.d.ts} +0 -0
  235. /package/dist/{repair-controller.d.ts → runtime/repair-controller.d.ts} +0 -0
  236. /package/dist/{repair-progress.d.ts → runtime/repair-progress.d.ts} +0 -0
  237. /package/dist/{repair-verifier.d.ts → runtime/repair-verifier.d.ts} +0 -0
  238. /package/dist/{run-interruption.d.ts → runtime/run-interruption.d.ts} +0 -0
  239. /package/dist/{runtime-checkpoints.d.ts → runtime/runtime-checkpoints.d.ts} +0 -0
  240. /package/dist/{tool-registry.d.ts → tools/tool-registry.d.ts} +0 -0
  241. /package/dist/{bounded-reads.d.ts → workspace/bounded-reads.d.ts} +0 -0
  242. /package/dist/{change-envelope.d.ts → workspace/change-envelope.d.ts} +0 -0
  243. /package/dist/{edit-contracts.d.ts → workspace/edit-contracts.d.ts} +0 -0
  244. /package/dist/{file-security.d.ts → workspace/file-security.d.ts} +0 -0
  245. /package/dist/{replacement-edits.d.ts → workspace/replacement-edits.d.ts} +0 -0
  246. /package/dist/{workspace-mutation-lock.d.ts → workspace/workspace-mutation-lock.d.ts} +0 -0
package/CHANGELOG.md CHANGED
@@ -4,7 +4,174 @@ 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.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.
8
175
 
9
176
  ## 1.0.0 - 2026-09-20
10
177
 
@@ -636,3 +803,19 @@ No configuration, SQLite, approval, or execution-policy migration is required. E
636
803
  ### Added
637
804
 
638
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.
package/README.md CHANGED
@@ -1,330 +1,76 @@
1
1
  # Zhivex Harness
2
2
 
3
- **Governed execution for coding agents.**
3
+ **Work on your code with an agent. Review consequential actions before approving them.**
4
4
 
5
- [![npm](https://img.shields.io/npm/v/%40zhivex-ai%2Fharness?logo=npm)](https://www.npmjs.com/package/@zhivex-ai/harness)
6
- [![CI](https://github.com/Zhivex/zhivex-harness/actions/workflows/ci.yml/badge.svg)](https://github.com/Zhivex/zhivex-harness/actions/workflows/ci.yml)
7
- [![Node.js](https://img.shields.io/badge/Node.js-%3E%3D22.13-339933?logo=nodedotjs)](https://nodejs.org/)
8
- [![License](https://img.shields.io/badge/license-MIT-22c55e.svg)](./LICENSE)
5
+ Zhivex Harness is a local terminal assistant and TypeScript library. It supports
6
+ OpenAI, Qwen and Meta, with provisional Gemini support. Conversations and pending
7
+ approvals survive restarts.
9
8
 
10
- ![Zhivex Harness: Let agents work. Control every change.](https://raw.githubusercontent.com/Zhivex/zhivex-harness/main/assets/social-preview.png)
9
+ This development branch prepares `1.1.0-rc.9` (unpublished), with console, local
10
+ service and Desktop preview improvements. The commands below install stable 1.0.0.
11
11
 
12
- Zhivex Harness runs coding agents against real repositories with conflict-safe edits, durable approvals, isolated execution, and redacted operational evidence. It is a Node-first local CLI and TypeScript library portable across Meta, Qwen, OpenAI, and provisional Gemini support, built on the Stable `@zhivex-ai/agents` runtime. Bun remains supported as development tooling and as an explicitly selected repository package manager.
12
+ ## Quick start
13
13
 
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.
14
+ Requires Node.js 22.13.0 or newer, Git and a provider API key.
15
15
 
16
- Version `1.0.0` is the current source release candidate for stable publication; it is not yet published. The latest public stable release remains `0.11.1`, and `1.0.0-rc.14` is published on `next`. RC.14 passed protected live certification and 42/42 representative cases; its security review is complete under the explicit [user-delegated AI exception](./docs/RC14_DELEGATED_SECURITY_DECISION.md), not an independent human audit. The [repository release status](https://raw.githubusercontent.com/Zhivex/zhivex-harness/main/release-status.json) records the pending stable candidate. Stable publication requires its own deterministic, installed-package, OCI, live-provider and representative gates and verified provenance. See the [readiness gate](./docs/GA_READINESS.md), [API stability policy](./docs/STABILITY.md), [support matrix](./docs/SUPPORT_MATRIX.md), [threat model](./docs/THREAT_MODEL.md), [roadmap](./ROADMAP.md) and [changelog](./CHANGELOG.md).
17
-
18
- ## Why Zhivex Harness
19
-
20
- Provider choice, MCP, subagents, and containers are useful building blocks. Zhivex Harness focuses on the change-control path that connects them:
21
-
22
- 1. copy an eligible, secret-free repository snapshot into an enforced OCI environment;
23
- 2. execute only approved, allowlisted argv commands without host shell interpolation or container network;
24
- 3. inspect a content- and run-bound patch while the host workspace remains unchanged;
25
- 4. require a separate durable approval before importing that exact patch; and
26
- 5. reject the import if either the reviewed patch or the host preconditions changed.
27
-
28
- Approvals, leases, idempotency claims, execution bindings, and exactly-once tool journals survive process restarts. Host deletions remain recoverable through quarantine, and operator exports are redacted by default.
29
-
30
- ## Prove the boundary in five minutes
31
-
32
- The hostile-repository demo creates a disposable fixture containing malicious instructions and a decoy `.env`, then exercises the real OCI, approval, restart, patch-import, ledger, and stale-host boundaries:
33
-
34
- ```bash
35
- bun install --frozen-lockfile
36
- docker pull node:24-bookworm-slim
37
- bun run build
38
- bun run demo:hostile
39
- ```
40
-
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
-
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.
54
-
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.
56
-
57
- ## Requirements
58
-
59
- - Node.js 22.13.0 or newer. Node 24 LTS is used by the default OCI image and release workflow.
60
- - Git for repository status and diff inspection.
61
- - At least one supported provider credential for real model execution.
62
- - Docker or Podman plus a preloaded image when `--execution oci` is requested.
63
-
64
- ## Installation
65
-
66
- Run the Node-first `latest` release with an exact version:
67
-
68
- ```bash
69
- bunx @zhivex-ai/harness@0.11.1 --version
70
- ```
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
-
83
- To exercise the source checkout, contributors use Bun for deterministic repository tooling while the built CLI itself runs on Node:
84
-
85
- ```bash
86
- bun install --frozen-lockfile
87
- cp .env.example .env
88
- bun run dev --version
89
- ```
90
-
91
- RC.13 includes first-run setup that stores only a provider and model in an explicit personal profile. From a source checkout:
92
-
93
- ```bash
94
- bun run dev init --profile daily --provider openai
95
- bun run dev doctor --profile daily
96
- bun run dev --profile daily "inspect this repository"
97
- ```
98
-
99
- Installed builds expose the same flow as `zhx init`. Profiles are private user configuration outside the repository, use owner-only permissions, contain no credentials, and are never selected implicitly. CLI flags override the selected profile; the selected profile overrides environment variables; environment variables override built-in defaults.
100
-
101
- Configure only the providers you plan to use:
102
-
103
- ```dotenv
104
- OPENAI_API_KEY=...
105
- MODEL_API_KEY=...
106
- DASHSCOPE_API_KEY=...
107
- GEMINI_API_KEY=...
108
- ```
109
-
110
- `MODEL_API_KEY` is used by the Meta Model API. Qwen also accepts `QWEN_API_KEY`; `DASHSCOPE_API_KEY` takes precedence. Gemini also accepts `GOOGLE_GENERATIVE_AI_API_KEY`.
111
-
112
- ## Diagnose the environment
113
-
114
- `doctor` is local and does not contact provider endpoints:
115
-
116
- ```bash
117
- zhx doctor
118
- zhx doctor --profile daily
119
- zhx doctor --provider qwen --json
120
- ```
121
-
122
- For a source checkout, replace `zhivex-harness` with `bun run dev`.
123
-
124
- ## Usage
125
-
126
- Start the durable console with the ergonomic command, or use the long alias in existing scripts:
127
-
128
- ```bash
16
+ ```sh
17
+ npm install -g @zhivex-ai/harness@1.0.0
18
+ cd /path/to/your/project
129
19
  zhx
130
- zhx chat --continue
131
- zhivex-harness --version
132
- ```
133
-
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.
135
-
136
- The published RC.13 also adds Tab command completion, `/paste` for previewed
137
- multiline tasks, `/context` for active project rules/skills, and `/attach <path>` for
138
- bounded file excerpts. Ctrl+C interrupts active work while retaining the session;
139
- errors return to the prompt. See the [interactive workflow](./docs/CLI.md#interactive-daily-workflow)
140
- for attachment limits, approval behavior, and recovery. These source additions are
141
- not yet published or live-certified.
142
-
143
- Project context engineering is enabled by default. A root `AGENTS.md` plus an optional `.zhivex/harness.json` can declare bounded context files, rule files, and progressively loaded `SKILL.md` directories. Disable discovery with `--no-project-context` or select another manifest with `--context-config`.
144
-
145
- Show providers and detected configuration without printing secrets:
146
-
147
- ```bash
148
- zhx providers
149
- zhx providers --json
150
20
  ```
151
21
 
152
- Run a task against the current directory:
22
+ On first use, choose a provider and model, then enter your API key in the hidden
23
+ prompt. Save it in the system keychain (macOS/Linux) or use it only for the current
24
+ CLI session. Existing environment keys take precedence. See [First use](docs/FIRST_USE.md)
25
+ and [Credentials](docs/CREDENTIALS.md) for setup and automation.
153
26
 
154
- ```bash
155
- zhivex-harness run --provider openai "review the repository and fix the tests"
156
- zhivex-harness run --provider meta "document the current architecture"
157
- zhivex-harness run --provider qwen "implement the pending endpoint"
158
- zhx run --provider gemini "review the proposed implementation"
159
- ```
27
+ Try: “Explain this repository and suggest a small improvement.”
160
28
 
161
- Operate on another workspace:
29
+ Type `/` for common actions. `/model` changes the model, `/sessions` finds previous
30
+ conversations, and `/diff` shows changes. Review requested actions before approving
31
+ them. Ctrl+C stops active work; it does not undo completed changes.
162
32
 
163
- ```bash
164
- zhivex-harness run --provider qwen --workspace ../my-app "fix the typecheck errors"
165
- ```
33
+ ## A few commands are enough
166
34
 
167
- Interactive mode:
35
+ | Command | Purpose |
36
+ | --- | --- |
37
+ | `zhx` | Open the conversation |
38
+ | `zhx --continue` | Continue the latest conversation |
39
+ | `zhx run "task"` | Run one task for automation |
40
+ | `zhx doctor` | Diagnose local configuration |
41
+ | `zhx --help` | Show the short guide |
168
42
 
169
- ```bash
170
- zhx chat --provider meta
171
- zhx chat --continue
172
- zhx sessions list
173
- ```
43
+ Use `zhx <command> --help` for command-specific options, or `zhx help all` for the
44
+ complete reference. Existing `zhx chat` and `zhivex-harness` commands remain supported.
174
45
 
175
- Route only selected subagent roles; credentials are required only for providers actually instantiated:
46
+ ## CLI, library or Desktop?
176
47
 
177
- ```bash
178
- zhx run --provider openai --route explorer=qwen --route reviewer=gemini \
179
- "implement the change, then review it independently"
180
- ```
48
+ The npm package includes the CLI and TypeScript library. [Desktop](https://github.com/Zhivex/zhivex-harness/blob/main/desktop/README.md)
49
+ is a separate Electron application, currently alpha for macOS Apple Silicon.
50
+ It is not included in npm and has its own build and distribution process. Its local
51
+ package is unsigned and unnotarized; automatic updates are disabled pending production trust setup and validation.
181
52
 
182
- Routing with `--max-cost-usd` remains rejected in `0.11.1`: aggregate usage cannot yet be priced correctly when roles use different models.
183
-
184
- Writes and checks pause for approval. In a non-interactive execution, state is saved in `.zhivex-harness/runs/operations.sqlite`:
185
-
186
- ```bash
187
- zhivex-harness resume <runId> --approve
188
- zhivex-harness resume <runId> --deny
189
- ```
190
-
191
- Duplicate external requests can share a durable run identity:
192
-
193
- ```bash
194
- zhivex-harness run --idempotency-key issue-482 "fix the reported regression"
195
- ```
196
-
197
- Operate on runs without loading a provider or requiring its credential:
198
-
199
- ```bash
200
- zhivex-harness runs list --status waiting_approval
201
- zhivex-harness runs inspect <runId> --json
202
- zhivex-harness runs export <runId> --json
203
- zhivex-harness runs cancel <runId> --reason "superseded"
204
- zhivex-harness runs cleanup --before 2026-08-01T00:00:00Z
205
- ```
53
+ ## Permissions and limits
206
54
 
207
- Operations are scope-bound. The defaults are tenant `local` and a namespace derived from the canonical workspace. Supply the same `--tenant`, `--user`, and `--namespace` values across run and operator commands. Migration, budgets, redaction, retention, and compatibility limits are documented in [docs/DURABLE_OPERATIONS.md](./docs/DURABLE_OPERATIONS.md).
55
+ Edits and checks require approval by default. Files such as `.env`, private keys,
56
+ Git internals and dependency directories are excluded from model exploration.
57
+ The default runtime has no OS isolation and exposes no shell-class tools. Running
58
+ commands in isolation requires an explicitly configured Docker or Podman environment;
59
+ see [Execution environments](docs/EXECUTION_ENVIRONMENTS.md).
208
60
 
209
- Use governed MCP and bounded subagents explicitly:
61
+ Gemini remains provisional. See the [support matrix](docs/SUPPORT_MATRIX.md) and
62
+ [security policy](SECURITY.md) for supported configurations and reporting concerns.
210
63
 
211
- ```bash
212
- zhivex-harness run --mcp-config examples/mcp-config.json "consult the allowed documentation tools"
213
- zhivex-harness run --subagent explorer --subagent reviewer "analyze the boundary"
214
- zhivex-harness review --reviewer explorer --reviewer reviewer --json "review the durable runtime"
215
- ```
216
-
217
- MCP configuration, capability gates, child budgets, promoted approvals, review groups, migration, and known limits are documented in [docs/EXTENSIBILITY.md](./docs/EXTENSIBILITY.md).
218
-
219
- `--yes` automatically approves tools with side effects. Use it only inside a disposable or isolated workspace:
220
-
221
- ```bash
222
- zhivex-harness run --provider openai --yes "apply the change and validate it"
223
- ```
224
-
225
- Structured automation output uses schema version `1`:
226
-
227
- ```bash
228
- zhivex-harness run --provider qwen --json "analyze the issue without modifying files"
229
- zhx run --provider gemini --jsonl "analyze the issue without modifying files"
230
- ```
231
-
232
- The JSON shapes and exit codes are documented in [docs/CLI.md](./docs/CLI.md).
233
-
234
- Create a portable change-admission envelope from structured, redacted evidence and the exact patch bytes, then verify it without provider credentials or network access:
235
-
236
- ```bash
237
- zhx changes create examples/change-envelope-input.json --patch examples/change.patch > change-envelope.json
238
- zhx changes verify change-envelope.json --patch examples/change.patch
239
- ```
64
+ ## Documentation
240
65
 
241
- The verifier proves integrity, expiry, and explicit preconditions; it deliberately reports approval and external-attestation authenticity as `not-verified`. See [docs/CHANGE_ENVELOPES.md](./docs/CHANGE_ENVELOPES.md).
66
+ - **Users:** [First use](docs/FIRST_USE.md), [daily workflow](docs/CLI.md#interactive-daily-workflow), [usage reference](docs/USAGE.md).
67
+ - **Integrators:** [CLI contracts](docs/CLI.md), [extensibility](docs/EXTENSIBILITY.md), [API stability](docs/STABILITY.md).
68
+ - **Contributors:** [Development](https://github.com/Zhivex/zhivex-harness/blob/main/CONTRIBUTING.md) and [maintenance](https://github.com/Zhivex/zhivex-harness/blob/main/docs/MAINTENANCE.md).
242
69
 
243
- Repository edits use digest-bound proposals. Discovery returns `nextCursor` when another deterministic page is available; mutating tools reject stale content instead of merging or overwriting it. Deletions move files into harness-owned quarantine and return a recovery identifier. The complete contract and migration from `0.2.x` are documented in [docs/REPOSITORY_EDITING.md](./docs/REPOSITORY_EDITING.md).
70
+ [Browse documentation](docs/README.md).
244
71
 
245
- The default check allowlist is `test`, `typecheck`, `lint`, and `build`. Replace it with repeatable CLI flags when a repository uses different declared scripts:
246
-
247
- ```bash
248
- zhivex-harness run --allow-check test:unit --allow-check format "apply the fix and validate it"
249
- ```
250
-
251
- The harness uses a pinned `packageManager` field when present; otherwise it accepts one unambiguous npm, pnpm, Yarn, or Bun lockfile and defaults to npm when neither signal exists. It executes only the selected script and rejects symbolic-link or ambiguous lockfiles plus implicit `pre<script>`/`post<script>` lifecycle hooks.
252
-
253
- Enable enforced local execution explicitly. The image must already exist locally; the harness never pulls it implicitly:
254
-
255
- ```bash
256
- docker pull node:24-bookworm-slim
257
- zhivex-harness doctor --execution oci
258
- zhivex-harness run --execution oci --yes "inspect, implement, test, review the environment patch, and import it"
259
- zhivex-harness run --execution oci --oci-shell ask "use a reviewed shell pipeline inside the isolated snapshot"
260
- ```
261
-
262
- `--yes` approves eligible command execution and the distinct host patch import; it cannot enable a shell whose policy is `deny`. Omit it when a human should review each durable approval. Configuration, threat boundary, cleanup, and certification details are in [docs/EXECUTION_ENVIRONMENTS.md](./docs/EXECUTION_ENVIRONMENTS.md).
263
-
264
- ## Providers and defaults
265
-
266
- | Provider | Default model | Support in `latest` (`0.11.1`) |
267
- | --- | --- | --- |
268
- | Meta | `muse-spark-1.2` | `MODEL_API_KEY` · 0.11.1 release-bound base, delegation, and OCI execution certified |
269
- | Qwen | `qwen3.8-max` | `DASHSCOPE_API_KEY` or `QWEN_API_KEY` · 0.11.1 release-bound base, delegation, routing, and OCI execution certified |
270
- | OpenAI | `gpt-5.6-luna` | `OPENAI_API_KEY` · 0.11.1 release-bound base, delegation, routing, and OCI execution certified |
271
- | Gemini | `gemini-3.6-flash` | `GEMINI_API_KEY` or `GOOGLE_GENERATIVE_AI_API_KEY` · provisional until the harness live matrix passes |
272
-
273
- 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.
274
-
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.
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
-
279
- ## Security boundaries
280
-
281
- - Every workspace path is resolved against a canonical root.
282
- - Reads and writes that cross an external symlink are rejected.
283
- - Dependencies, build output, Git internals, harness state, `.env`, `.npmrc`, and private keys are excluded from model exploration.
284
- - The model has no generic shell.
285
- - Only explicitly allowed, declared package scripts can run; the model must provide the exact script text for approval binding.
286
- - Checks run without automatic `.env` loading and with a reduced environment.
287
- - Patch application, moves, quarantine, restore, and command execution require interruptible approval.
288
- - Every edit carries the digest observed during inspection; stale creates and updates fail closed.
289
- - Existing file modes are preserved and successful replacements are published atomically.
290
- - Unsafe state roots, protected workspace paths, files, and symlink targets are rejected before a run store is created.
291
- - Environment values are not injected into prompts, diagnostics, or tool responses.
292
- - Remote MCP output is bounded, schema-checked, treated as untrusted, and rejected on common prompt-injection directives.
293
- - Network MCP always pauses for approval; custom read-only annotation trust must be explicit and injected by the host application.
294
- - Subagent children inherit scope, workspace, cancellation, approval, and store policy while retaining independent budgets and fingerprints.
295
- - OCI execution binds the durable run to the resolved image identity and enforced policy; resume fails if either changes.
296
- - Snapshot discovery excludes secrets, Git internals, harness state, dependency trees, and build output. Dependencies may be mounted separately read-only.
297
- - Untrusted commands receive a quota-backed tmpfs workspace, never a writable host bind; only successful, frozen, validated snapshots replace durable environment state.
298
- - Container processes receive no provider credentials or arbitrary host environment values, and host changes require a separately approved digest-bound patch import.
299
-
300
- The default `none` backend provides governance but no OS isolation and therefore exposes no shell-class tool. The local OCI backend enforces the documented container boundary, but it is not a VM or a managed hostile-code sandbox; use a dedicated host or microVM when the container runtime itself is outside the threat model.
301
-
302
- ## Development
303
-
304
- ```bash
305
- bun run typecheck
306
- bun run readiness:1.0
307
- bun test
308
- bun run build
309
- bun run evaluate
310
- bun run benchmark:workspace
311
- bun run benchmark:workspace -- --files 50000 --repetitions 10 --warmups 2
312
- bun run benchmark:oci -- --files 1000 --commands 20 --repetitions 10 --warmups 1
313
- bun run benchmark:safe-fix:ci
314
- bun run smoke:package
315
- bun run pack:inspect
316
- bun run check
317
- ```
318
-
319
- The workspace benchmark reports topology-only and digest-bound listing separately, plus independent versus batched search with alternating pair order. The OCI benchmark reports environment setup, snapshot/session acquisition, first command, reused commands, mutation, and end-to-end time to first successful command. Both fixtures exclude setup, validate results, use sequential repetitions, and emit host/runtime metadata, nearest-rank p50/p95/p99, and success rates. `--repetitions` and `--warmups` are configurable; host filesystem caches are not flushed, so publish the commit and exact command with any result. Use at least 100 successful samples before treating p99 as representative.
320
-
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.
322
-
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/).
324
-
325
- The live gate is opt-in and billable:
326
-
327
- ```bash
328
- ZHIVEX_HARNESS_LIVE=1 bun run scripts/live-provider-smoke.ts
329
- ZHIVEX_HARNESS_LIVE=1 bun run smoke:live:routing
330
- ```
72
+ Version `1.0.0` is the current public npm release. Source checkout changes can be
73
+ newer than the published package. Consult the [changelog](CHANGELOG.md) and
74
+ [repository release status](https://raw.githubusercontent.com/Zhivex/zhivex-harness/main/release-status.json)
75
+ for release identity; [release evidence](https://github.com/Zhivex/zhivex-harness/blob/main/docs/LIVE_CERTIFICATION.md)
76
+ records validation scope and limitations.
package/SECURITY.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  ## Supported versions
4
4
 
5
- Security fixes are provided for the latest published `0.11.x` patch. Older minors and private checkpoints are not supported release channels. Registry integrity and provenance do not substitute for the separate provider and execution evidence recorded in [docs/LIVE_CERTIFICATION.md](./docs/LIVE_CERTIFICATION.md).
5
+ Security fixes are provided for the latest published `1.0.x` patch. Older minors and private checkpoints are not supported release channels. Registry integrity and provenance do not substitute for the separate provider and execution evidence recorded in [docs/LIVE_CERTIFICATION.md](https://github.com/Zhivex/zhivex-harness/blob/main/docs/LIVE_CERTIFICATION.md).
6
6
 
7
7
  ## Reporting a vulnerability
8
8
 
package/SUPPORT.md CHANGED
@@ -1,8 +1,8 @@
1
1
  # Support
2
2
 
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.
3
+ Zhivex Harness `1.0.x` is the latest supported Node-first CLI and TypeScript library. Stable 1.x contracts follow [the stability policy](./docs/STABILITY.md); incompatible changes require a major release except documented urgent security corrections. Beta and experimental surfaces retain their declared policies. 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.
5
+ The 1.0 support scope 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) for the published 1.x line.
6
6
 
7
7
  ## Supported baseline
8
8
 
@@ -13,7 +13,11 @@ The detailed 1.0 target is tracked in the [machine-readable support matrix](./do
13
13
  - the provider/model combinations marked certified in the package documentation; and
14
14
  - HTTPS or explicitly allowed loopback-HTTP MCP endpoints using the documented bounded JSON-RPC subset.
15
15
 
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).
16
+ Only the most recent published `1.0.x` patch receives routine fixes. The exact `v1.0.0` tag passed protected release-bound base, orchestration, routing and model-directed execution for Meta, Qwen and OpenAI on 2026-09-20; the complete representative matrix passed on its authorized second attempt. 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](https://github.com/Zhivex/zhivex-harness/blob/main/docs/LIVE_CERTIFICATION.md).
17
+
18
+ ## Installation diagnostics
19
+
20
+ Follow the [stable installation commands](./README.md#installation) or [isolated Bun example](./examples/README.md). Run `zhx --version`, `zhx --help`, and `zhx doctor` before reporting an installation issue. Doctor is local: a missing provider credential produces a diagnostic failure until that credential is configured. Include the version, OS, Node/Bun versions and sanitized diagnostics in a report; never include keys or your `.env` file.
17
21
 
18
22
  ## Support channels
19
23