@zhivex-ai/harness 1.0.0 → 1.1.0-rc.3

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 (236) hide show
  1. package/CHANGELOG.md +109 -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 +100 -1
  8. package/contracts/stable-api-signatures.json +14 -14
  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 +103 -0
  13. package/dist/cli/changes.d.ts +2 -0
  14. package/dist/cli/cli-credentials.d.ts +38 -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} +1 -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 +25 -0
  23. package/dist/cli/console/console-navigation.d.ts +27 -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 +50 -0
  28. package/dist/cli/errors.d.ts +7 -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 +16 -0
  39. package/dist/cli/state.d.ts +2 -0
  40. package/dist/cli/terminal/terminal-continuation.d.ts +3 -0
  41. package/dist/{terminal-markdown.d.ts → cli/terminal/terminal-markdown.d.ts} +1 -0
  42. package/dist/{terminal-ui.d.ts → cli/terminal/terminal-ui.d.ts} +7 -0
  43. package/dist/cli/terminal/tool-activity.d.ts +19 -0
  44. package/dist/cli.d.ts +33 -238
  45. package/dist/cli.js +16049 -12066
  46. package/dist/client/adapter.d.ts +4 -0
  47. package/dist/client/index.d.ts +15 -0
  48. package/dist/client/local-service.d.ts +34 -0
  49. package/dist/client/protocol.d.ts +205 -0
  50. package/dist/client/service-events.d.ts +50 -0
  51. package/dist/{context-engineering.d.ts → context/context-engineering.d.ts} +2 -2
  52. package/dist/{execution-environment.d.ts → execution/execution-environment.d.ts} +8 -4
  53. package/dist/hostile-repository-demo.js +2025 -897
  54. package/dist/index.d.ts +48 -41
  55. package/dist/index.js +7541 -5906
  56. package/dist/internal/desktop/persistence.d.ts +14 -0
  57. package/dist/internal/desktop/protocol.d.ts +8 -0
  58. package/dist/internal/desktop/providers.d.ts +6 -0
  59. package/dist/internal/desktop/runtime.d.ts +7 -0
  60. package/dist/{operations.d.ts → persistence/operations.d.ts} +24 -2
  61. package/dist/persistence/persistence-secrets.d.ts +2 -0
  62. package/dist/persistence/recorded-workspace.d.ts +4 -0
  63. package/dist/{sessions.d.ts → persistence/sessions.d.ts} +3 -0
  64. package/dist/persistence/sqlite-access.d.ts +26 -0
  65. package/dist/{sqlite-database.d.ts → persistence/sqlite-database.d.ts} +2 -0
  66. package/dist/{state-backup.d.ts → persistence/state-backup.d.ts} +9 -1
  67. package/dist/{capabilities.d.ts → providers/capabilities.d.ts} +1 -1
  68. package/dist/{routing.d.ts → providers/routing.d.ts} +1 -1
  69. package/dist/{config.d.ts → runtime/config.d.ts} +1 -1
  70. package/dist/{harness.d.ts → runtime/harness.d.ts} +12 -135
  71. package/dist/{orchestration.d.ts → runtime/orchestration.d.ts} +3 -0
  72. package/dist/{runtime-policy.d.ts → runtime/runtime-policy.d.ts} +1 -1
  73. package/dist/runtime/usage-ledger.d.ts +84 -0
  74. package/dist/service-cli.d.ts +2 -0
  75. package/dist/service-cli.js +10899 -0
  76. package/dist/tools/execution.d.ts +47 -0
  77. package/dist/tools/shared.d.ts +67 -0
  78. package/dist/tools/workspace.d.ts +85 -0
  79. package/dist/verify-historical-migrations.js +5786 -5265
  80. package/dist/{workspace.d.ts → workspace/workspace.d.ts} +22 -0
  81. package/dist/zhx.js +16049 -12066
  82. package/docs/CLI.md +151 -30
  83. package/docs/CLIENT_PROTOCOL.md +212 -0
  84. package/docs/CREDENTIALS.md +59 -0
  85. package/docs/DURABLE_OPERATIONS.md +2 -2
  86. package/docs/FIRST_USE.md +82 -0
  87. package/docs/FIRST_USE_EXAMPLE.md +40 -0
  88. package/docs/HOSTILE_REPOSITORY_DEMO.md +1 -1
  89. package/docs/LOCAL_SERVICE.md +142 -0
  90. package/docs/README.md +24 -23
  91. package/docs/THREAT_MODEL.md +1 -1
  92. package/docs/TIME_TO_SAFE_FIX.md +2 -2
  93. package/docs/USAGE.md +181 -0
  94. package/evaluations/daily-cli-cohort.json +33 -0
  95. package/evaluations/representative-assembly-matrix.json +28 -1
  96. package/examples/README.md +26 -0
  97. package/examples/first-use/greeting.test.ts +3 -0
  98. package/examples/first-use/greeting.ts +1 -0
  99. package/examples/first-use/package.json +7 -0
  100. package/package.json +39 -11
  101. package/ROADMAP.md +0 -414
  102. package/benchmarks/baselines/context-navigation-2026-09-09.json +0 -94
  103. package/benchmarks/baselines/efficiency-2026-09-08.json +0 -233
  104. package/benchmarks/baselines/external-final-2026-09-08.json +0 -588
  105. package/benchmarks/baselines/external-intermediate-2026-09-08.json +0 -116
  106. package/benchmarks/baselines/external-matched-openai-2026-09-08.json +0 -1922
  107. package/benchmarks/baselines/external-matched-qwen-2026-09-08.json +0 -1706
  108. package/benchmarks/baselines/external-pilot-2026-09-08.json +0 -439
  109. package/benchmarks/baselines/external-qwen-flash-2026-09-08.json +0 -1570
  110. package/benchmarks/baselines/external-qwen-remediation-2026-09-09.json +0 -1509
  111. package/benchmarks/baselines/external-qwen-sdk-114-progress-2026-09-09.json +0 -2509
  112. package/benchmarks/baselines/external-sdk-upgrade-2026-09-08.json +0 -564
  113. package/benchmarks/baselines/external-verifier-recovery-2026-09-09.json +0 -794
  114. package/benchmarks/baselines/full-harness-review-2026-09-10.json +0 -134
  115. package/benchmarks/baselines/harness-audit-2026-09-09.json +0 -136
  116. package/benchmarks/baselines/harness-remediation-2026-09-09.json +0 -160
  117. package/benchmarks/baselines/oci-remediation-2026-09-10.json +0 -535
  118. package/benchmarks/baselines/rc14-holdout-2026-09-10.json +0 -854
  119. package/benchmarks/baselines/repair-architecture-audit-2026-09-09.json +0 -75
  120. package/benchmarks/baselines/time-to-safe-fix-live-expanded-2026-08-21.json +0 -186
  121. package/benchmarks/baselines/time-to-safe-fix-live-smoke-2026-08-21.json +0 -186
  122. package/dist/console-input.d.ts +0 -28
  123. package/docs/GA_READINESS.md +0 -29
  124. package/docs/GEMINI_1_0_DECISION.md +0 -9
  125. package/docs/LIVE_CERTIFICATION.md +0 -107
  126. package/docs/RC13_SECURITY_REVIEW.md +0 -28
  127. package/docs/RC14_DELEGATED_SECURITY_DECISION.md +0 -80
  128. package/docs/RC14_SECURITY_REVIEW.md +0 -40
  129. package/docs/RELEASE.md +0 -96
  130. package/docs/ROLLBACK.md +0 -9
  131. package/docs/SECURITY_REVIEW_EVIDENCE.md +0 -17
  132. package/docs/ga-readiness.json +0 -366
  133. package/docs/reports/EFFICIENCY_REVIEW.md +0 -156
  134. package/docs/reports/EXTERNAL_COMPARISON.md +0 -434
  135. package/docs/reports/FULL_HARNESS_REVIEW_2026-09-10.md +0 -200
  136. package/docs/reports/GA_BUDGET_REMEDIATION_2026-09-19.md +0 -38
  137. package/docs/reports/GA_REPAIR_RECOVERY_2026-09-19.md +0 -700
  138. package/docs/reports/GA_VALIDATION_2026-09-19.md +0 -111
  139. package/docs/reports/HARNESS_ARCHITECTURE_REVIEW_2026-09-09.md +0 -202
  140. package/docs/reports/HARNESS_AUDIT_2026-09-09.md +0 -306
  141. package/docs/reports/HARNESS_REMEDIATION_2026-09-09.md +0 -74
  142. package/docs/reports/HARNESS_REMEDIATION_2026-09-10.md +0 -90
  143. package/docs/reports/MODEL_COMPARISON_2026-09-09.md +0 -184
  144. package/docs/reports/QWEN_REMEDIATION_COMPARISON_2026-09-09.md +0 -142
  145. package/docs/reports/RC14_VALIDATION_2026-09-10.md +0 -45
  146. package/docs/reports/README.md +0 -26
  147. package/docs/reports/evidence/ga-budget-remediation-2026-09-19.json +0 -133
  148. package/docs/reports/evidence/ga-catalog-ablation-2026-09-19.json +0 -699
  149. package/docs/reports/evidence/ga-catalog-ablation-plan-2026-09-19.json +0 -40
  150. package/docs/reports/evidence/ga-catalog-observed-2026-09-19.json +0 -985
  151. package/docs/reports/evidence/ga-catalog-observed-plan-2026-09-19.json +0 -28
  152. package/docs/reports/evidence/ga-catalog-observed-status-2026-09-19.json +0 -15
  153. package/docs/reports/evidence/ga-complete-local-check-2026-09-19.json +0 -47
  154. package/docs/reports/evidence/ga-completion-reminder-2026-09-19.json +0 -22
  155. package/docs/reports/evidence/ga-fresh-cohort-plan-2026-09-19.json +0 -54
  156. package/docs/reports/evidence/ga-fresh-cohort-preparation-2026-09-19.json +0 -242
  157. package/docs/reports/evidence/ga-fresh-cohort-result-2026-09-19.json +0 -4318
  158. package/docs/reports/evidence/ga-local-validation-followup-2026-09-19.json +0 -66
  159. package/docs/reports/evidence/ga-node-consumers-2026-09-19.json +0 -31
  160. package/docs/reports/evidence/ga-package-content-validation-2026-09-19.json +0 -22
  161. package/docs/reports/evidence/ga-plan-completion-2026-09-19.json +0 -39
  162. package/docs/reports/evidence/ga-plan-reserve-2026-09-19.json +0 -573
  163. package/docs/reports/evidence/ga-plan-reserve-plan-2026-09-19.json +0 -24
  164. package/docs/reports/evidence/ga-plan-transition-2026-09-19.json +0 -19
  165. package/docs/reports/evidence/ga-private-verifier-plan-2026-09-19.json +0 -24
  166. package/docs/reports/evidence/ga-private-verifier-root-cause-2026-09-19.json +0 -41
  167. package/docs/reports/evidence/ga-published-sdk-2026-09-19.json +0 -35
  168. package/docs/reports/evidence/ga-python-checkout-imports-2026-09-19.json +0 -95
  169. package/docs/reports/evidence/ga-python-origin-delivery-2026-09-19.json +0 -211
  170. package/docs/reports/evidence/ga-python-origin-delivery-plan-2026-09-19.json +0 -27
  171. package/docs/reports/evidence/ga-qwen-patched-package-2026-09-19.json +0 -1092
  172. package/docs/reports/evidence/ga-qwen-patched-package-plan-2026-09-19.json +0 -18
  173. package/docs/reports/evidence/ga-qwen-published-2026-09-19.json +0 -571
  174. package/docs/reports/evidence/ga-qwen-published-plan-2026-09-19.json +0 -18
  175. package/docs/reports/evidence/ga-qwen-tool-choice-2026-09-19.json +0 -85
  176. package/docs/reports/evidence/ga-qwen-tool-choice-patched-2026-09-19.json +0 -85
  177. package/docs/reports/evidence/ga-recovery-development-2026-09-19.json +0 -1066
  178. package/docs/reports/evidence/ga-recovery-graded-development-2026-09-19.json +0 -1313
  179. package/docs/reports/evidence/ga-recovery-graded-v2-2026-09-19.json +0 -1151
  180. package/docs/reports/evidence/ga-recovery-v3-2026-09-19.json +0 -3943
  181. package/docs/reports/evidence/ga-recovery-v4-2026-09-19.json +0 -1055
  182. package/docs/reports/evidence/ga-recovery-v5-2026-09-19.json +0 -1245
  183. package/docs/reports/evidence/ga-recovery-v6-2026-09-19.json +0 -699
  184. package/docs/reports/evidence/ga-recovery-v7-2026-09-19.json +0 -854
  185. package/docs/reports/evidence/ga-recovery-v8-2026-09-19.json +0 -596
  186. package/docs/reports/evidence/ga-required-delivery-2026-09-19.json +0 -25
  187. package/docs/reports/evidence/ga-required-delivery-live-2026-09-19.json +0 -1337
  188. package/docs/reports/evidence/ga-required-delivery-live-plan-2026-09-19.json +0 -25
  189. package/docs/reports/evidence/ga-retained-candidate-grading-2026-09-19.json +0 -30
  190. package/docs/reports/evidence/ga-tool-selection-live-2026-09-19.json +0 -559
  191. package/docs/reports/evidence/ga-tool-selection-live-plan-2026-09-19.json +0 -28
  192. package/docs/reports/evidence/ga-tool-selection-recovery-2026-09-19.json +0 -27
  193. package/docs/reports/evidence/ga-validation-2026-09-19.json +0 -236
  194. package/docs/reports/evidence/ga-verifier-discovery-live-2026-09-19.json +0 -1369
  195. package/docs/reports/evidence/ga-verifier-discovery-plan-2026-09-19.json +0 -29
  196. package/docs/reports/evidence/ga-verifier-failure-identification-2026-09-19.json +0 -30
  197. package/docs/reports/evidence/ga-verifier-feedback-2026-09-19.json +0 -65
  198. package/docs/reports/evidence/ga-verifier-hints-live-2026-09-19.json +0 -1297
  199. package/docs/reports/evidence/ga-verifier-hints-plan-2026-09-19.json +0 -27
  200. package/docs/reports/evidence/ga-work-boundary-context-analysis-2026-09-19.json +0 -113
  201. package/docs/reports/evidence/ga-work-boundary-live-2026-09-19.json +0 -301
  202. package/docs/reports/evidence/ga-work-boundary-live-plan-2026-09-19.json +0 -84
  203. package/docs/reports/evidence/ga-work-budget-planning-2026-09-19.json +0 -32
  204. package/docs/reports/evidence/ga-working-context-2026-09-19.json +0 -22
  205. package/docs/reports/evidence/rc14-delegated-security-review-2026-09-20.json +0 -81
  206. package/docs/reports/evidence/rc14-ga-gate-2026-09-20.json +0 -18
  207. package/docs/reports/evidence/rc14-representative-2026-09-20.json +0 -509
  208. package/docs/reports/evidence/rc14-security-regressions-2026-09-20.json +0 -64
  209. package/docs/reports/evidence/security-current-2026-09-19.json +0 -91
  210. package/docs/reports/evidence/security-remediation-2026-09-19.json +0 -97
  211. /package/dist/{cli-stream.d.ts → cli/cli-stream.d.ts} +0 -0
  212. /package/dist/{json-contracts.d.ts → client/json-contracts.d.ts} +0 -0
  213. /package/dist/{compaction.d.ts → context/compaction.d.ts} +0 -0
  214. /package/dist/{context-metrics.d.ts → context/context-metrics.d.ts} +0 -0
  215. /package/dist/{task-memory.d.ts → context/task-memory.d.ts} +0 -0
  216. /package/dist/{package-manager.d.ts → execution/package-manager.d.ts} +0 -0
  217. /package/dist/{process-runtime.d.ts → execution/process-runtime.d.ts} +0 -0
  218. /package/dist/{mcp.d.ts → integrations/mcp.d.ts} +0 -0
  219. /package/dist/{state-directory.d.ts → persistence/state-directory.d.ts} +0 -0
  220. /package/dist/{providers.d.ts → providers/providers.d.ts} +0 -0
  221. /package/dist/{errors.d.ts → runtime/errors.d.ts} +0 -0
  222. /package/dist/{model-budget.d.ts → runtime/model-budget.d.ts} +0 -0
  223. /package/dist/{repair-controller.d.ts → runtime/repair-controller.d.ts} +0 -0
  224. /package/dist/{repair-progress.d.ts → runtime/repair-progress.d.ts} +0 -0
  225. /package/dist/{repair-verifier.d.ts → runtime/repair-verifier.d.ts} +0 -0
  226. /package/dist/{run-interruption.d.ts → runtime/run-interruption.d.ts} +0 -0
  227. /package/dist/{runtime-checkpoints.d.ts → runtime/runtime-checkpoints.d.ts} +0 -0
  228. /package/dist/{runtime-diagnostics.d.ts → runtime/runtime-diagnostics.d.ts} +0 -0
  229. /package/dist/{time-to-safe-fix.d.ts → runtime/time-to-safe-fix.d.ts} +0 -0
  230. /package/dist/{tool-registry.d.ts → tools/tool-registry.d.ts} +0 -0
  231. /package/dist/{bounded-reads.d.ts → workspace/bounded-reads.d.ts} +0 -0
  232. /package/dist/{change-envelope.d.ts → workspace/change-envelope.d.ts} +0 -0
  233. /package/dist/{edit-contracts.d.ts → workspace/edit-contracts.d.ts} +0 -0
  234. /package/dist/{file-security.d.ts → workspace/file-security.d.ts} +0 -0
  235. /package/dist/{replacement-edits.d.ts → workspace/replacement-edits.d.ts} +0 -0
  236. /package/dist/{workspace-mutation-lock.d.ts → workspace/workspace-mutation-lock.d.ts} +0 -0
package/CHANGELOG.md CHANGED
@@ -4,7 +4,99 @@ 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.3 - 2026-09-22
8
+
9
+ Release candidate targeting npm `next`; fresh protected certification is required
10
+ before publication. Stable `latest` remains 1.0.0.
11
+
12
+ - 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.
13
+ - Identify token-budget and step-limit failures without mislabeling them as provider stream failures or exposing arbitrary provider error payloads.
14
+ - 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.
15
+ - Organize CLI, runtime, providers, persistence, tools and Desktop integration behind explicit module boundaries, with architecture checks and unchanged public API contracts.
16
+ - Make the packaged conversation smoke select its fixture provider explicitly; onboarding is verified separately.
17
+ - Add release preparation and early metadata validation, retain release tarballs for recovery, and distinguish publication from verification in workflow summaries.
18
+
19
+ ## 1.1.0-rc.2 - 2026-09-22
20
+
21
+ Release candidate superseding the unpublished RC.1, targeting npm `next`.
22
+
23
+ - Register the exact candidate's external model pins and reject missing pins before live certification.
24
+ - Preserve historical 1.0 certification checks while allowing later candidates in the shared matrix.
25
+ - 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.
26
+ - Add deterministic coverage for the previous compaction failure and current-version model pin drift.
27
+
28
+ Fresh protected certification is required for this candidate before publication.
29
+
30
+ ## 1.1.0-rc.1 - 2026-09-22
31
+
32
+ Release candidate for the next compatible minor release, targeting the `next` channel.
33
+ The latest stable release remains 1.0.0. Desktop has its own private alpha version.
34
+
35
+ ### Desktop preview
36
+
37
+ - Add an experimental Electron client with durable conversations, project/worktree
38
+ navigation, model selection, native credential storage and governed approvals.
39
+ - Add recoverable installation and verified update machinery. Production signing,
40
+ notarization and update trust configuration remain pending; automatic updates
41
+ remain disabled in the default alpha build.
42
+
43
+ ### Release validation and profile safety
44
+
45
+ - Install the pinned Electron runtime explicitly before macOS native tests, including
46
+ the general validation job; keep other dependency lifecycle scripts disabled.
47
+ - Bind default-profile confirmation to the displayed provider/model so a profile
48
+ changed while the prompt is open cannot redirect the current invocation.
49
+
50
+ ### Developer experience and documentation
51
+
52
+ - Keep initial menu and model options visible on asynchronous terminals by preserving
53
+ readline prompt and menu write order; no extra arrow key is required to draw them.
54
+
55
+ - Lead `zhx --help` with everyday actions; add command-specific help and `zhx help all` for the complete reference.
56
+ - Show common slash actions first, retaining full-catalog search and `/help all`. Pending approval controls remain visible in the short help.
57
+ - Shorten onboarding, separate user/integration/maintenance guides, and standardize maintained Desktop guides in English while quoting current UI labels.
58
+ - Exclude maintainer-only documentation from npm using explicit guide entries and validate links inside the packed archive.
59
+
60
+ Existing commands, aliases, machine output and persisted state remain compatible.
61
+ These changes are assigned to 1.1.0-rc.1 and require fresh artifact-bound certification before publication.
62
+
63
+ ### Local service and replay
64
+
65
+ - Add a private authenticated Unix transport and Node runtime owner with graceful drain and explicit dead-process recovery.
66
+ - Persist redacted activity with stable event IDs, cursor replay, bounded retention and expired-cursor snapshots.
67
+ - Coordinate approval revisions/expiry and active cancellation across clients; verify crash recovery and a single edit journal receipt against the installed artifact.
68
+
69
+ ### Shared client contract
70
+
71
+ - 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.
72
+ - 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.
73
+
74
+ ### Daily CLI workflow
75
+
76
+ - Add installed-package first-use coverage, recovery guidance and a runnable example.
77
+ - Search project sessions and reconcile durable state and pending approvals before continuation.
78
+ - Inspect attachment limits, retained skill receipts and context compaction; clarify exact approval scope and verification outcomes.
79
+ - 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.
80
+ - 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.
81
+
82
+ ### Console input and streaming
83
+
84
+ - Insert bracketed clipboard content as bounded, editable literal text; prevent
85
+ pasted commands and approval answers from executing accidentally.
86
+ - Suppress input echo while a run is active, preserve drafts across terminal resize,
87
+ and deliver partial streamed lines during provider pauses and on error cleanup.
88
+ - Extend the offline Node PTY demonstration with clipboard safety, cursor editing,
89
+ resize, provider failure and history recovery. JSON/JSONL and persisted state
90
+ contracts are unchanged.
91
+
92
+ ### Migration from 1.0.0
93
+
94
+ - Existing CLI commands, JSON/JSONL output, public stable APIs and state format 1
95
+ remain compatible. Back up durable state before testing a prerelease.
96
+ - Local service and shared client APIs remain experimental. Desktop remains a
97
+ separately versioned private alpha, outside the stable CLI/library guarantee.
98
+ - Use the source development workflow until this candidate is published to npm
99
+ `next`; npm `latest` continues to install 1.0.0.
8
100
 
9
101
  ## 1.0.0 - 2026-09-20
10
102
 
@@ -636,3 +728,19 @@ No configuration, SQLite, approval, or execution-policy migration is required. E
636
728
  ### Added
637
729
 
638
730
  - Initial provider-portable coding harness MVP for Meta, Qwen, and OpenAI.
731
+
732
+ ### Experimental local service CLI
733
+
734
+ - Added opt-in `--service` for run/resume/chat and session list/inspect/rename,
735
+ with durable event replay and existing versioned JSON/JSONL documents.
736
+ - Persisted the shared CLI result projection and explicitly bound service run
737
+ admission to host scope. Added CLI/second-client crash recovery in installed smoke.
738
+
739
+ ### Experimental desktop chat
740
+
741
+ - Added redacted per-run chat activity with durable prompts, bounded tool snapshots
742
+ and actual check exit codes. Session reads remain available during execution.
743
+ - Preserved CLI JSONL compatibility; desktop strips rich engine/CLI/approval payloads,
744
+ deduplicates replay and reconciles lost responses before allowing another send.
745
+ - Verified packaged macOS chat with duplicate submission, failed check, expired
746
+ 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.3` (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
 
@@ -2,13 +2,13 @@
2
2
 
3
3
  Benchmark implementations, deterministic fixtures, OCI image contracts, and their tests live in this repository because they measure Zhivex Harness behavior.
4
4
 
5
- Complete generated reports remain local under `../results/` (source checkout). Only compact sanitized snapshots belong in [`baselines`](./baselines/). A baseline must omit raw samples, host details, worktree paths, and the invocation command, and must retain the exact report digest, dataset digest, model, image identity, matrix size, aggregate outcomes, confidence intervals, compact efficiency averages when available, and evidence boundary.
5
+ Complete generated reports remain local under `../results/` (source checkout). Only compact sanitized snapshots belong in [`baselines`](https://github.com/Zhivex/zhivex-harness/tree/main/benchmarks/baselines). A baseline must omit raw samples, host details, worktree paths, and the invocation command, and must retain the exact report digest, dataset digest, model, image identity, matrix size, aggregate outcomes, confidence intervals, compact efficiency averages when available, and evidence boundary.
6
6
 
7
7
  These snapshots are local observations, not provider certification, public leaderboard results, or cross-platform performance guarantees.
8
8
 
9
9
  Both current live snapshots exercise the single-approval terminal edit-verify-import transaction. The bounded smoke is a fast 12-run check; the larger snapshot is a separate 216-run variance and defect-family check. Do not pool their observations or present either as a public benchmark score.
10
10
 
11
- The 12-task expanded Time-to-Safe-Fix fixture lives at [`evaluations/time-to-safe-fix-expanded.jsonl`](../evaluations/time-to-safe-fix-expanded.jsonl). Its default three-repetition live matrix is intentionally opt-in and runs 216 cases sequentially so provider and OCI contention do not distort latency comparisons. Keep its [expanded baseline](./baselines/time-to-safe-fix-live-expanded-2026-08-21.json) separate from the bounded smoke snapshot.
11
+ The 12-task expanded Time-to-Safe-Fix fixture lives at [`evaluations/time-to-safe-fix-expanded.jsonl`](../evaluations/time-to-safe-fix-expanded.jsonl). Its default three-repetition live matrix is intentionally opt-in and runs 216 cases sequentially so provider and OCI contention do not distort latency comparisons. Keep its [expanded baseline](https://github.com/Zhivex/zhivex-harness/blob/main/benchmarks/baselines/time-to-safe-fix-live-expanded-2026-08-21.json) separate from the bounded smoke snapshot.
12
12
 
13
13
  In the 2026-08-21 expanded local GPT-5.6 Luna run, governed resolved 72/72 safely and direct/optimized each resolved 71/72, with zero completed attacks or unauthorized effects. Safe-run p50 was 9.64 s direct, 17.56 s governed, and 8.49 s optimized. The optimized failure was a fail-closed `STALE_DIGEST` rejection with no host effect; it is retained as historical evidence of the pre-recovery behavior rather than selectively retried away. The newer bounded smoke baseline validates the recovery implementation without rewriting this expanded observation.
14
14
 
@@ -42,7 +42,7 @@ continuity suite nor a workspace microbenchmark establishes competitive superior
42
42
 
43
43
  ## External agent comparison
44
44
 
45
- The opt-in [SWE-bench comparison](../docs/reports/EXTERNAL_COMPARISON.md) runs upstream
45
+ The opt-in [SWE-bench comparison](https://github.com/Zhivex/zhivex-harness/blob/main/docs/reports/EXTERNAL_COMPARISON.md) runs upstream
46
46
  mini-SWE-agent and the native Zhivex OCI harness, exports actual patches, and grades
47
47
  with the official SWE-bench evaluator. `bun run benchmark:swebench:test` validates
48
48
  its offline contracts. Paid runs require a prepared, pinned matrix and `--live`.