@zhivex-ai/harness 1.2.0-rc.8 → 1.2.0

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 (62) hide show
  1. package/CHANGELOG.md +43 -0
  2. package/README.md +7 -7
  3. package/contracts/public-api.json +5 -0
  4. package/contracts/stable-api-signatures.json +28 -28
  5. package/dist/acp-cli.js +1096 -609
  6. package/dist/cli/arguments.d.ts +2 -0
  7. package/dist/cli/cli-credentials.d.ts +1 -1
  8. package/dist/cli/cli-options.d.ts +1 -1
  9. package/dist/cli/cli-profiles.d.ts +15 -0
  10. package/dist/cli/cli-stream.d.ts +3 -3
  11. package/dist/cli/console/console-commands.d.ts +3 -3
  12. package/dist/cli/console/console-input.d.ts +22 -3
  13. package/dist/cli/console/console-navigation.d.ts +3 -0
  14. package/dist/cli/console/console-presentation.d.ts +8 -2
  15. package/dist/cli/console/console-reasoning.d.ts +3 -0
  16. package/dist/cli/presentation.d.ts +3 -0
  17. package/dist/cli/run-document.d.ts +4 -4
  18. package/dist/cli/terminal/activity-history.d.ts +15 -0
  19. package/dist/cli/terminal/tool-activity.d.ts +11 -1
  20. package/dist/{cli-7nj89dq0.js → cli-3jmy4h5h.js} +385 -217
  21. package/dist/{cli-entry-t3bay5k5.js → cli-entry-427869g9.js} +287 -180
  22. package/dist/{cli-entry-0mhbpe8j.js → cli-entry-b1mfvmxe.js} +2 -1
  23. package/dist/{cli-entry-hkxakkng.js → cli-entry-c2f58zj2.js} +998 -210
  24. package/dist/cli.js +2 -2
  25. package/dist/client/json-contracts.d.ts +20 -0
  26. package/dist/{config-w1npe8mp.js → config-1k9t4jhh.js} +1 -1
  27. package/dist/context/compaction.d.ts +1 -1
  28. package/dist/context/semantic-compaction.d.ts +1 -1
  29. package/dist/context/task-memory.d.ts +2 -2
  30. package/dist/hostile-repository-demo.js +950 -509
  31. package/dist/index.js +1803 -1132
  32. package/dist/persistence/operations.d.ts +5 -1
  33. package/dist/persistence/state-backup-stream.d.ts +4 -0
  34. package/dist/providers/meta-replay.d.ts +1 -1
  35. package/dist/providers/qwen-context.d.ts +2 -0
  36. package/dist/providers/qwen-hosted-policy.d.ts +5 -0
  37. package/dist/providers/reasoning.d.ts +18 -0
  38. package/dist/runtime/config.d.ts +3 -0
  39. package/dist/runtime/error-diagnostics.d.ts +2 -0
  40. package/dist/runtime/harness.d.ts +1 -1
  41. package/dist/runtime/model-edit-references.d.ts +4 -2
  42. package/dist/runtime/progress-monitor.d.ts +6 -2
  43. package/dist/runtime/runtime-policy.d.ts +5 -4
  44. package/dist/runtime/time-to-safe-fix.d.ts +6 -1
  45. package/dist/service-cli.js +1112 -639
  46. package/dist/{service-client-cli-s3ee2hrj.js → service-client-cli-yx56n0hc.js} +66 -8
  47. package/dist/tools/dependency-read.d.ts +51 -4
  48. package/dist/tools/execution.d.ts +8 -8
  49. package/dist/tools/workspace.d.ts +27 -16
  50. package/dist/verify-historical-migrations.js +1122 -638
  51. package/dist/workspace/file-security.d.ts +6 -0
  52. package/dist/zhx.js +2 -2
  53. package/docs/CLI.md +75 -23
  54. package/docs/CONTEXT_ENGINEERING.md +25 -5
  55. package/docs/DURABLE_OPERATIONS.md +8 -0
  56. package/docs/EXTENSIBILITY.md +1 -1
  57. package/docs/FIRST_USE.md +6 -6
  58. package/docs/MODEL_CATALOG.md +28 -1
  59. package/evaluations/representative-assembly-matrix.json +55 -1
  60. package/evaluations/representative-repositories-v2.jsonl +7 -0
  61. package/examples/README.md +4 -4
  62. package/package.json +7 -7
package/CHANGELOG.md CHANGED
@@ -4,6 +4,49 @@ All notable changes to Zhivex Harness are documented in this file.
4
4
 
5
5
  The project follows Semantic Versioning. During `0.x`, minor releases may change user-facing contracts when the change is documented with a migration note. Patch releases remain backwards compatible bug fixes.
6
6
 
7
+ ## 1.2.0 - 2026-09-27
8
+
9
+ - Promote the code validated in 1.2.0-rc.13 to the stable release line, targeting npm `latest` through the protected GitHub Actions workflow.
10
+ - Improve interactive CLI model/reasoning selection, activity reporting, task queues and recovery from rejected edits.
11
+ - Preserve user direction and conversational context across compaction, with incremental SQLite history and bounded active checkpoints using Core 1.26.0 and Agents 1.10.1.
12
+ - Retain governed approvals, isolated patch delivery and restart/backup recovery, including segmented exports for large histories.
13
+ - Keep the Meta, Qwen and OpenAI certification cohort unchanged. Gemini remains provisional and Desktop remains a separate private alpha.
14
+
15
+ ## 1.2.0-rc.13 - 2026-09-26
16
+
17
+ - Store SQLite run history incrementally with published Core 1.26.0 and Agents 1.10.1. Keep the 4 MiB limit on the active checkpoint while retaining steps, tool results and compaction history separately; unchanged history is not rewritten.
18
+ - Export backups above 64 MiB through a bounded, versioned segment stream, preserving legacy JSON imports, checksums and atomic publication.
19
+ - Preserve full history through reopen and portable backup/restore, including legacy inline states. Report state-limit failures with bounded diagnostics and retain the SDK terminal failure checkpoint.
20
+ - Add a 200-read, 99-compaction regression covering more than 11 MB of hydrated history with a checkpoint below 48 KB. Full hydrated loads and disk retention remain proportional to history size.
21
+ - Prepare fresh exact-artifact, live and representative certification for RC13; RC12 publication evidence remains historical.
22
+
23
+ ## 1.2.0-rc.12 - 2026-09-26
24
+
25
+ - Preserve optional edit/retry fields in OpenAI Responses tool schemas; keep runtime validation, read-bound digests and approval checks unchanged.
26
+
27
+ - Strengthen release validation with representative fixtures v2, structural workflow checks and installed-runtime regressions; preserve historical evidence and publication gates.
28
+
29
+ ## 1.2.0-rc.11 - 2026-09-26
30
+
31
+ - Consume Qwen 0.16.2 with Core 1.25.0, retaining typed malformed tool-argument and SSE-event diagnostics through benchmark and release reports without exposing provider payloads or adding automatic retries.
32
+
33
+ ## 1.2.0-rc.10 - 2026-09-26
34
+
35
+ - Scope deterministic test discovery to maintained root and Desktop suites, excluding historical artifacts stored locally.
36
+ - CLI: featured model ordering, Qwen-hosted GLM/DeepSeek/Kimi choices, phase/total timing, committed file receipts, bounded `/activity` history, and literal task queues isolated from approvals.
37
+
38
+ - Add model-to-reasoning selection, `/reasoning` and `--reasoning`, with adapter-declared levels, personal-profile persistence and durable run bindings.
39
+ - Reuse bounded rejected edit candidates after targeted reference recovery, without regenerating file contents or bypassing exact-payload approval.
40
+ - Make Qwen's local compacted conversation authoritative instead of continuing remote response chains; retain reasoning and tool history.
41
+ - Guide scoped implementations toward editing and checking without an unnecessary planning-only turn.
42
+
43
+ ## 1.2.0-rc.9 - 2026-09-26
44
+
45
+ - Keep current user direction prominent across compaction, retain earlier task context, and migrate legacy summaries. Add a durable advisory for prolonged varied exploration without forcing edits or stopping legitimate investigation. Give the model actionable read-call and line-range corrections while preserving original error receipts and approvals.
46
+
47
+ - Allow bounded, read-only dependency source and documentation inspection, with listing and literal search for discovering package-relative files. Remove the separate metadata/type approval flow while retaining filesystem restrictions and mutation approvals.
48
+ - Keep routine exploration out of the conversation until a run or approval boundary; preserve visible edits and check outcomes, and explain known tool failures without dumping private payloads. Keep `/verbose` and machine output available.
49
+
7
50
  ## 1.2.0-rc.8 - 2026-09-26
8
51
 
9
52
  - Include durable child and descendant OCI snapshots in parent completion checks. Report `OCI_CHILD_DELIVERY_PENDING` when a delegated edit has not reached the host; missing descendant state fails closed without requesting an import from the wrong workspace.
package/README.md CHANGED
@@ -11,12 +11,12 @@ implement a change. Conversation context retains decisions, hypotheses and bound
11
11
  diagnostic excerpts across compaction. Edits and command execution keep their
12
12
  own permission checks; a conversational summary never grants approval.
13
13
 
14
- Version `1.2.0-rc.8` is prepared as an unpublished release candidate for npm `next`,
15
- with console, local service and governed delegation improvements. Certification
16
- and publication remain pending. The
17
- [repository release status](https://raw.githubusercontent.com/Zhivex/zhivex-harness/main/release-status.json)
18
- preserves historical stable evidence. The installation commands below target
19
- 1.2.0-rc.8 once published; stable users can install `@zhivex-ai/harness@latest`.
14
+ Version `1.2.0` is prepared for stable publication to npm `latest`, based on
15
+ published RC13 and its successful protected release workflow. It includes incremental
16
+ durable history and bounded active checkpoints for long conversations. Stable
17
+ publication remains pending; the installation commands below target 1.2.0 once
18
+ published. The [repository release status](https://raw.githubusercontent.com/Zhivex/zhivex-harness/main/release-status.json)
19
+ preserves historical stable evidence.
20
20
  Desktop retains its separate private alpha status.
21
21
 
22
22
  ## Quick start
@@ -24,7 +24,7 @@ Desktop retains its separate private alpha status.
24
24
  Requires Node.js 22.13.0 or newer, Git and a provider API key.
25
25
 
26
26
  ```sh
27
- npm install -g @zhivex-ai/harness@1.2.0-rc.8
27
+ npm install -g @zhivex-ai/harness@1.2.0
28
28
  cd /path/to/your/project
29
29
  zhx
30
30
  ```
@@ -947,6 +947,7 @@
947
947
  "allowed": [
948
948
  "--provider",
949
949
  "--model",
950
+ "--reasoning",
950
951
  "--profile",
951
952
  "--update",
952
953
  "--json"
@@ -965,6 +966,7 @@
965
966
  "--usage-limit-usd",
966
967
  "--provider",
967
968
  "--model",
969
+ "--reasoning",
968
970
  "--profile",
969
971
  "--route",
970
972
  "--workspace",
@@ -1068,6 +1070,7 @@
1068
1070
  "--usage-limit-usd",
1069
1071
  "--provider",
1070
1072
  "--model",
1073
+ "--reasoning",
1071
1074
  "--profile",
1072
1075
  "--route",
1073
1076
  "--workspace",
@@ -1108,6 +1111,7 @@
1108
1111
  "--usage-limit-usd",
1109
1112
  "--provider",
1110
1113
  "--model",
1114
+ "--reasoning",
1111
1115
  "--profile",
1112
1116
  "--route",
1113
1117
  "--workspace",
@@ -1216,6 +1220,7 @@
1216
1220
  "allowed": [
1217
1221
  "--provider",
1218
1222
  "--model",
1223
+ "--reasoning",
1219
1224
  "--profile",
1220
1225
  "--workspace",
1221
1226
  "--state-dir",
@@ -25,11 +25,11 @@
25
25
  },
26
26
  {
27
27
  "name": "CLI_OPTION_DEFINITIONS",
28
- "sha256": "sha256:e81ab83efe6632fea8457e220c8fd187a0d6f22f3856a5dfbc236d0760debcdb"
28
+ "sha256": "sha256:cf8d007b1d5fab300a3730716c97fe5da6cbece37886916a48be947c4062c35b"
29
29
  },
30
30
  {
31
31
  "name": "CLI_OPTION_NAMES",
32
- "sha256": "sha256:b147c57222331192c6736d51bc8a24bd1f06bd0322735da0ee2fcbe88bd2559d"
32
+ "sha256": "sha256:56578840a2e0da57962fae8c255272168b2898151e25e2be36d2185202ff4901"
33
33
  },
34
34
  {
35
35
  "name": "DEFAULT_ALLOWED_CHECKS",
@@ -133,7 +133,7 @@
133
133
  },
134
134
  {
135
135
  "name": "cancelHarnessRun",
136
- "sha256": "sha256:c0574a794f7afccd4d16286a6c445b55b2ca64f89b8b61d88429141c5aa177e3"
136
+ "sha256": "sha256:e36da6c24c521dd14d143fa0a71ba0ab2ed45abf71cb0126403c6b03da404e98"
137
137
  },
138
138
  {
139
139
  "name": "canonicalizeChangeEnvelope",
@@ -141,11 +141,11 @@
141
141
  },
142
142
  {
143
143
  "name": "cleanupHarnessRuns",
144
- "sha256": "sha256:e5460d2369e64398e8d7fae6209bd5647791536c73de58d015eab2ccae30d3c5"
144
+ "sha256": "sha256:4a75d154f76a3a98c1e8c17b857db0829df0e29719a4a07ed09482ad96de03b2"
145
145
  },
146
146
  {
147
147
  "name": "cliJsonDocumentSchema",
148
- "sha256": "sha256:8d464b66e470c13b61331f4b8e5547300841ac76b71a4e9ed66d3e1783447b96"
148
+ "sha256": "sha256:ea221418b3ef75dfe99aadfc80f99ab67d88f29a231cf24fdbd12a7b891b6d50"
149
149
  },
150
150
  {
151
151
  "name": "cliJsonLineDocumentSchema",
@@ -165,7 +165,7 @@
165
165
  },
166
166
  {
167
167
  "name": "createHarness",
168
- "sha256": "sha256:587e0ddcd2294c92ef9d1f2d4c4b15d3344183c5bcc34f5ceccf763a17d11f66"
168
+ "sha256": "sha256:d64067ac36a8afb8ebe7875ae9c5c6e01890ffed879a7eeff9c141b6a603588c"
169
169
  },
170
170
  {
171
171
  "name": "createHarnessMcpTools",
@@ -177,7 +177,7 @@
177
177
  },
178
178
  {
179
179
  "name": "createHarnessStateBackup",
180
- "sha256": "sha256:dc912401622813c191270cc3222e634b8d51d648ead021974048c651d1fdca62"
180
+ "sha256": "sha256:6dec078c2691090e6e21b4bac89520d9010924e50088e2075155f3b742ec6102"
181
181
  },
182
182
  {
183
183
  "name": "createHttpMcpClient",
@@ -185,7 +185,7 @@
185
185
  },
186
186
  {
187
187
  "name": "createProviderModel",
188
- "sha256": "sha256:0d6344ffcd775921c45045ff75f55fe913be8e1ced79b782be88a9f793abf623"
188
+ "sha256": "sha256:d3c8e0e05dea6efdf8b58c31fac7b7ab5d263918394866d362107d9859a9b337"
189
189
  },
190
190
  {
191
191
  "name": "digestChangeEnvelopeArtifact",
@@ -193,7 +193,7 @@
193
193
  },
194
194
  {
195
195
  "name": "exportHarnessStateBackup",
196
- "sha256": "sha256:79db384b04677937507ba69f0c36a93bf3ec42e39b6d22d6690b5bba47471711"
196
+ "sha256": "sha256:4a89bf93ebf9b2c0777fe7e5c73faa46962b81c7536f2331992322f580b009af"
197
197
  },
198
198
  {
199
199
  "name": "harnessErrorDocument",
@@ -201,23 +201,23 @@
201
201
  },
202
202
  {
203
203
  "name": "importHarnessStateBackup",
204
- "sha256": "sha256:7449e1eec652b252961ce4965ea0f33926d9f843763aefb0f155d1af0c429a42"
204
+ "sha256": "sha256:740e572d8c1412bd62f2fcd8024e518a2722dd5ea6c554530a04642dcfc5d604"
205
205
  },
206
206
  {
207
207
  "name": "importHarnessStateBackupFile",
208
- "sha256": "sha256:927feae9fb0061fbd04314a2fd2d7cb132eb84d756ef620b51040debb5cbd187"
208
+ "sha256": "sha256:0755dd97e54d1fdfeb7a289f1259a9be38ecaed1eb34d19284b9a03488cd12fb"
209
209
  },
210
210
  {
211
211
  "name": "inspectHarnessRun",
212
- "sha256": "sha256:cf4a8f1c2691b9f3027502ab3cd098a8a1f9768641fd10d9925d217ba2ab3ea9"
212
+ "sha256": "sha256:33e2c8012f4fdadeb18e94b1f922aaa9b085315af2f8521771eb81c416475581"
213
213
  },
214
214
  {
215
215
  "name": "inspectHarnessState",
216
- "sha256": "sha256:d63145751610dc11e7ba8e356cd5a8c88eb27aec607df8c24cc2fb2598e9ffb9"
216
+ "sha256": "sha256:9d07d3239461a9ec411eb5e419370e0d00ab7b381f6eff746d2182a8a3775552"
217
217
  },
218
218
  {
219
219
  "name": "listHarnessRuns",
220
- "sha256": "sha256:2cce91cb548056e3aadb7e8c01182f933cf9644ffb5e0c0c3ffa9589cae24eba"
220
+ "sha256": "sha256:c21a907c98bd48d8d8518b477a0abb5e3d5ae88b9b1cbb888212c6b303b342d4"
221
221
  },
222
222
  {
223
223
  "name": "loadHarnessMcpConfiguration",
@@ -225,7 +225,7 @@
225
225
  },
226
226
  {
227
227
  "name": "migrateHarnessConfigInput",
228
- "sha256": "sha256:58518757b2d9f4b2b37fe31a2b8df84633521b3c39199eaf08a76a7c12e58a46"
228
+ "sha256": "sha256:3757847c7e64d66acd2a25471e2ada13576189e80e7b2bbea2c5e5f9ce9e606e"
229
229
  },
230
230
  {
231
231
  "name": "normalizeHarnessError",
@@ -241,11 +241,11 @@
241
241
  },
242
242
  {
243
243
  "name": "openHarnessPersistence",
244
- "sha256": "sha256:8a97855ed76aa6962be3e8e824ae6e48f56afd923da0f7c102005bfd15e4dafb"
244
+ "sha256": "sha256:88552131f2aeee51101be035fa683944f810b10ff222a4ea42dd3b12cf65ea7e"
245
245
  },
246
246
  {
247
247
  "name": "parseCliJsonDocument",
248
- "sha256": "sha256:c1fe9cb7087af89e0a2c89e7a3941bd028f49b32a9e2f5cba1d5a2dbf1d918e1"
248
+ "sha256": "sha256:a27c7a9b868aa26b0d8c0ec8e7ea661a5e09df5fe0dd830a092a12889ff83b5b"
249
249
  },
250
250
  {
251
251
  "name": "parseCliJsonLineDocument",
@@ -269,11 +269,11 @@
269
269
  },
270
270
  {
271
271
  "name": "resolveHarnessConfig",
272
- "sha256": "sha256:70a73657bcb9df9090ecdd83cd396042be1dda98f90674e55c17a732205743f6"
272
+ "sha256": "sha256:7c93c375258ae204faba275ac31b3b06cc83d81fba3a0ee5327cb9657e726a86"
273
273
  },
274
274
  {
275
275
  "name": "runHarness",
276
- "sha256": "sha256:713a8a62198f1ab9d96b7f071084021895538259b2ef504dcb9dc37a341812d2"
276
+ "sha256": "sha256:b9edc132c711d883d20ae61a4d5b827c89ef7022a37bf57dcf3cef5ff9ee55d2"
277
277
  },
278
278
  {
279
279
  "name": "serializeStreamEvent",
@@ -315,11 +315,11 @@
315
315
  },
316
316
  {
317
317
  "name": "CliInitDocument",
318
- "sha256": "sha256:bf62495ab0698d620b0101576d33b3c7f57dfdabbe09b9c66ce031d9bae5971f"
318
+ "sha256": "sha256:44728b04c9fd867b8b207187a24c968c1c961ca3a17988ef2b7235ea42303ddf"
319
319
  },
320
320
  {
321
321
  "name": "CliJsonDocument",
322
- "sha256": "sha256:07692bcada20b028c985633d764e0c5375a022bfc93f00fc8ecec0caae3fec3a"
322
+ "sha256": "sha256:28227f279b455e6fff3e6cafdb8fa73fb23908fe10e2f4e8ded726ad722a7f37"
323
323
  },
324
324
  {
325
325
  "name": "CliJsonLineDocument",
@@ -331,7 +331,7 @@
331
331
  },
332
332
  {
333
333
  "name": "CliOptionName",
334
- "sha256": "sha256:167d6977a0bbef5d76abb16e8c038bc4951825780b8e7a77b70d66ff982d374c"
334
+ "sha256": "sha256:f70a903733c995154846df610a246cecd1ca751018ddb4e84e89a0206c27f68d"
335
335
  },
336
336
  {
337
337
  "name": "CliReviewGroupDocument",
@@ -375,7 +375,7 @@
375
375
  },
376
376
  {
377
377
  "name": "CreateHarnessOptions",
378
- "sha256": "sha256:99b41e8193618f672bd9cf53b44bdff077d08005bfe88fcbe220c5b0f146307f"
378
+ "sha256": "sha256:390cff6d5ea83dd08bde8cc6965b729a8408e00f93752dea13f95b43ce7d2fe8"
379
379
  },
380
380
  {
381
381
  "name": "HarnessBudget",
@@ -383,15 +383,15 @@
383
383
  },
384
384
  {
385
385
  "name": "HarnessConfig",
386
- "sha256": "sha256:5fec1a887e085b1fab5d0d9b539c3c6a4ae373ef3cc2905580d7eafb590cf725"
386
+ "sha256": "sha256:a5043eec3a71c35d9ac49607aed2408689a8a47694689268de12cdfc195ae6e7"
387
387
  },
388
388
  {
389
389
  "name": "HarnessConfigInput",
390
- "sha256": "sha256:0475b86f699aa0840ea849c336849b65e28e345e1c1c87bb96e4372011810ab2"
390
+ "sha256": "sha256:01093620aed18df40794324345600983230878d197c3a1cf2f01c17aae1c382e"
391
391
  },
392
392
  {
393
393
  "name": "HarnessConfigMigrationResult",
394
- "sha256": "sha256:ec8f1ef997ff8ef59482c90fe3bc23bc8ad4c151e6e4b04ff10104d36331374f"
394
+ "sha256": "sha256:b3b86d52652e9d24b7ab6013de95000976d6058fec5b41e0e604dd3ee31a9bd2"
395
395
  },
396
396
  {
397
397
  "name": "HarnessContextBundle",
@@ -487,8 +487,8 @@
487
487
  },
488
488
  {
489
489
  "name": "ZhivexHarness",
490
- "sha256": "sha256:e244fbf6f5df2c07e247b6df7810fca4e53a92046940c3e327ecd5d5224deee3"
490
+ "sha256": "sha256:fde9c8ee503d75acf6672611dfee6ea32dce09a209dc82df1ba53085ebeea371"
491
491
  }
492
492
  ],
493
- "digest": "sha256:540d453617592b39457b2412085b041193a0336c70e16f9f54d5ef81a264dce3"
493
+ "digest": "sha256:0f2e9df6cd62c3e654853e7a07b41f8daf5358c72ee57e0c19d9f21b60f2fd05"
494
494
  }