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

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 (181) hide show
  1. package/CHANGELOG.md +97 -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/approval-diff.d.ts +45 -0
  10. package/dist/approval-history.d.ts +38 -0
  11. package/dist/approval-preview.d.ts +26 -0
  12. package/dist/cli-credentials.d.ts +38 -0
  13. package/dist/cli-help.d.ts +3 -0
  14. package/dist/cli-options.d.ts +1 -1
  15. package/dist/cli-stream.d.ts +3 -3
  16. package/dist/cli.d.ts +15 -69
  17. package/dist/cli.js +13796 -10032
  18. package/dist/client-contract.d.ts +208 -0
  19. package/dist/console-commands.d.ts +6 -0
  20. package/dist/console-context.d.ts +5 -1
  21. package/dist/console-input.d.ts +44 -4
  22. package/dist/console-model-catalog.d.ts +25 -0
  23. package/dist/console-navigation.d.ts +27 -0
  24. package/dist/console-presentation.d.ts +18 -0
  25. package/dist/console-welcome.d.ts +13 -0
  26. package/dist/execution-environment.d.ts +4 -0
  27. package/dist/harness.d.ts +3 -0
  28. package/dist/hostile-repository-demo.js +1913 -798
  29. package/dist/index.d.ts +7 -0
  30. package/dist/index.js +7908 -6330
  31. package/dist/local-service.d.ts +34 -0
  32. package/dist/operations.d.ts +23 -1
  33. package/dist/orchestration.d.ts +3 -0
  34. package/dist/persistence-secrets.d.ts +2 -0
  35. package/dist/recorded-workspace.d.ts +4 -0
  36. package/dist/run-document.d.ts +91 -0
  37. package/dist/runtime-policy.d.ts +4 -4
  38. package/dist/service-cli.d.ts +2 -0
  39. package/dist/service-cli.js +10858 -0
  40. package/dist/service-client-cli.d.ts +2 -0
  41. package/dist/service-events.d.ts +50 -0
  42. package/dist/sessions.d.ts +3 -0
  43. package/dist/sqlite-access.d.ts +26 -0
  44. package/dist/sqlite-database.d.ts +2 -0
  45. package/dist/state-backup.d.ts +8 -0
  46. package/dist/task-memory.d.ts +2 -2
  47. package/dist/terminal-continuation.d.ts +3 -0
  48. package/dist/terminal-markdown.d.ts +1 -0
  49. package/dist/terminal-ui.d.ts +5 -0
  50. package/dist/usage-ledger.d.ts +84 -0
  51. package/dist/verify-historical-migrations.js +5699 -5191
  52. package/dist/workspace.d.ts +22 -0
  53. package/dist/zhx.js +13796 -10032
  54. package/docs/CLI.md +136 -30
  55. package/docs/CLIENT_PROTOCOL.md +212 -0
  56. package/docs/CREDENTIALS.md +59 -0
  57. package/docs/DURABLE_OPERATIONS.md +2 -2
  58. package/docs/FIRST_USE.md +82 -0
  59. package/docs/FIRST_USE_EXAMPLE.md +40 -0
  60. package/docs/HOSTILE_REPOSITORY_DEMO.md +1 -1
  61. package/docs/LOCAL_SERVICE.md +142 -0
  62. package/docs/README.md +24 -23
  63. package/docs/THREAT_MODEL.md +1 -1
  64. package/docs/TIME_TO_SAFE_FIX.md +2 -2
  65. package/docs/USAGE.md +181 -0
  66. package/evaluations/daily-cli-cohort.json +33 -0
  67. package/evaluations/representative-assembly-matrix.json +19 -1
  68. package/examples/README.md +26 -0
  69. package/examples/first-use/greeting.test.ts +3 -0
  70. package/examples/first-use/greeting.ts +1 -0
  71. package/examples/first-use/package.json +7 -0
  72. package/package.json +34 -9
  73. package/ROADMAP.md +0 -414
  74. package/benchmarks/baselines/context-navigation-2026-09-09.json +0 -94
  75. package/benchmarks/baselines/efficiency-2026-09-08.json +0 -233
  76. package/benchmarks/baselines/external-final-2026-09-08.json +0 -588
  77. package/benchmarks/baselines/external-intermediate-2026-09-08.json +0 -116
  78. package/benchmarks/baselines/external-matched-openai-2026-09-08.json +0 -1922
  79. package/benchmarks/baselines/external-matched-qwen-2026-09-08.json +0 -1706
  80. package/benchmarks/baselines/external-pilot-2026-09-08.json +0 -439
  81. package/benchmarks/baselines/external-qwen-flash-2026-09-08.json +0 -1570
  82. package/benchmarks/baselines/external-qwen-remediation-2026-09-09.json +0 -1509
  83. package/benchmarks/baselines/external-qwen-sdk-114-progress-2026-09-09.json +0 -2509
  84. package/benchmarks/baselines/external-sdk-upgrade-2026-09-08.json +0 -564
  85. package/benchmarks/baselines/external-verifier-recovery-2026-09-09.json +0 -794
  86. package/benchmarks/baselines/full-harness-review-2026-09-10.json +0 -134
  87. package/benchmarks/baselines/harness-audit-2026-09-09.json +0 -136
  88. package/benchmarks/baselines/harness-remediation-2026-09-09.json +0 -160
  89. package/benchmarks/baselines/oci-remediation-2026-09-10.json +0 -535
  90. package/benchmarks/baselines/rc14-holdout-2026-09-10.json +0 -854
  91. package/benchmarks/baselines/repair-architecture-audit-2026-09-09.json +0 -75
  92. package/benchmarks/baselines/time-to-safe-fix-live-expanded-2026-08-21.json +0 -186
  93. package/benchmarks/baselines/time-to-safe-fix-live-smoke-2026-08-21.json +0 -186
  94. package/docs/GA_READINESS.md +0 -29
  95. package/docs/GEMINI_1_0_DECISION.md +0 -9
  96. package/docs/LIVE_CERTIFICATION.md +0 -107
  97. package/docs/RC13_SECURITY_REVIEW.md +0 -28
  98. package/docs/RC14_DELEGATED_SECURITY_DECISION.md +0 -80
  99. package/docs/RC14_SECURITY_REVIEW.md +0 -40
  100. package/docs/RELEASE.md +0 -96
  101. package/docs/ROLLBACK.md +0 -9
  102. package/docs/SECURITY_REVIEW_EVIDENCE.md +0 -17
  103. package/docs/ga-readiness.json +0 -366
  104. package/docs/reports/EFFICIENCY_REVIEW.md +0 -156
  105. package/docs/reports/EXTERNAL_COMPARISON.md +0 -434
  106. package/docs/reports/FULL_HARNESS_REVIEW_2026-09-10.md +0 -200
  107. package/docs/reports/GA_BUDGET_REMEDIATION_2026-09-19.md +0 -38
  108. package/docs/reports/GA_REPAIR_RECOVERY_2026-09-19.md +0 -700
  109. package/docs/reports/GA_VALIDATION_2026-09-19.md +0 -111
  110. package/docs/reports/HARNESS_ARCHITECTURE_REVIEW_2026-09-09.md +0 -202
  111. package/docs/reports/HARNESS_AUDIT_2026-09-09.md +0 -306
  112. package/docs/reports/HARNESS_REMEDIATION_2026-09-09.md +0 -74
  113. package/docs/reports/HARNESS_REMEDIATION_2026-09-10.md +0 -90
  114. package/docs/reports/MODEL_COMPARISON_2026-09-09.md +0 -184
  115. package/docs/reports/QWEN_REMEDIATION_COMPARISON_2026-09-09.md +0 -142
  116. package/docs/reports/RC14_VALIDATION_2026-09-10.md +0 -45
  117. package/docs/reports/README.md +0 -26
  118. package/docs/reports/evidence/ga-budget-remediation-2026-09-19.json +0 -133
  119. package/docs/reports/evidence/ga-catalog-ablation-2026-09-19.json +0 -699
  120. package/docs/reports/evidence/ga-catalog-ablation-plan-2026-09-19.json +0 -40
  121. package/docs/reports/evidence/ga-catalog-observed-2026-09-19.json +0 -985
  122. package/docs/reports/evidence/ga-catalog-observed-plan-2026-09-19.json +0 -28
  123. package/docs/reports/evidence/ga-catalog-observed-status-2026-09-19.json +0 -15
  124. package/docs/reports/evidence/ga-complete-local-check-2026-09-19.json +0 -47
  125. package/docs/reports/evidence/ga-completion-reminder-2026-09-19.json +0 -22
  126. package/docs/reports/evidence/ga-fresh-cohort-plan-2026-09-19.json +0 -54
  127. package/docs/reports/evidence/ga-fresh-cohort-preparation-2026-09-19.json +0 -242
  128. package/docs/reports/evidence/ga-fresh-cohort-result-2026-09-19.json +0 -4318
  129. package/docs/reports/evidence/ga-local-validation-followup-2026-09-19.json +0 -66
  130. package/docs/reports/evidence/ga-node-consumers-2026-09-19.json +0 -31
  131. package/docs/reports/evidence/ga-package-content-validation-2026-09-19.json +0 -22
  132. package/docs/reports/evidence/ga-plan-completion-2026-09-19.json +0 -39
  133. package/docs/reports/evidence/ga-plan-reserve-2026-09-19.json +0 -573
  134. package/docs/reports/evidence/ga-plan-reserve-plan-2026-09-19.json +0 -24
  135. package/docs/reports/evidence/ga-plan-transition-2026-09-19.json +0 -19
  136. package/docs/reports/evidence/ga-private-verifier-plan-2026-09-19.json +0 -24
  137. package/docs/reports/evidence/ga-private-verifier-root-cause-2026-09-19.json +0 -41
  138. package/docs/reports/evidence/ga-published-sdk-2026-09-19.json +0 -35
  139. package/docs/reports/evidence/ga-python-checkout-imports-2026-09-19.json +0 -95
  140. package/docs/reports/evidence/ga-python-origin-delivery-2026-09-19.json +0 -211
  141. package/docs/reports/evidence/ga-python-origin-delivery-plan-2026-09-19.json +0 -27
  142. package/docs/reports/evidence/ga-qwen-patched-package-2026-09-19.json +0 -1092
  143. package/docs/reports/evidence/ga-qwen-patched-package-plan-2026-09-19.json +0 -18
  144. package/docs/reports/evidence/ga-qwen-published-2026-09-19.json +0 -571
  145. package/docs/reports/evidence/ga-qwen-published-plan-2026-09-19.json +0 -18
  146. package/docs/reports/evidence/ga-qwen-tool-choice-2026-09-19.json +0 -85
  147. package/docs/reports/evidence/ga-qwen-tool-choice-patched-2026-09-19.json +0 -85
  148. package/docs/reports/evidence/ga-recovery-development-2026-09-19.json +0 -1066
  149. package/docs/reports/evidence/ga-recovery-graded-development-2026-09-19.json +0 -1313
  150. package/docs/reports/evidence/ga-recovery-graded-v2-2026-09-19.json +0 -1151
  151. package/docs/reports/evidence/ga-recovery-v3-2026-09-19.json +0 -3943
  152. package/docs/reports/evidence/ga-recovery-v4-2026-09-19.json +0 -1055
  153. package/docs/reports/evidence/ga-recovery-v5-2026-09-19.json +0 -1245
  154. package/docs/reports/evidence/ga-recovery-v6-2026-09-19.json +0 -699
  155. package/docs/reports/evidence/ga-recovery-v7-2026-09-19.json +0 -854
  156. package/docs/reports/evidence/ga-recovery-v8-2026-09-19.json +0 -596
  157. package/docs/reports/evidence/ga-required-delivery-2026-09-19.json +0 -25
  158. package/docs/reports/evidence/ga-required-delivery-live-2026-09-19.json +0 -1337
  159. package/docs/reports/evidence/ga-required-delivery-live-plan-2026-09-19.json +0 -25
  160. package/docs/reports/evidence/ga-retained-candidate-grading-2026-09-19.json +0 -30
  161. package/docs/reports/evidence/ga-tool-selection-live-2026-09-19.json +0 -559
  162. package/docs/reports/evidence/ga-tool-selection-live-plan-2026-09-19.json +0 -28
  163. package/docs/reports/evidence/ga-tool-selection-recovery-2026-09-19.json +0 -27
  164. package/docs/reports/evidence/ga-validation-2026-09-19.json +0 -236
  165. package/docs/reports/evidence/ga-verifier-discovery-live-2026-09-19.json +0 -1369
  166. package/docs/reports/evidence/ga-verifier-discovery-plan-2026-09-19.json +0 -29
  167. package/docs/reports/evidence/ga-verifier-failure-identification-2026-09-19.json +0 -30
  168. package/docs/reports/evidence/ga-verifier-feedback-2026-09-19.json +0 -65
  169. package/docs/reports/evidence/ga-verifier-hints-live-2026-09-19.json +0 -1297
  170. package/docs/reports/evidence/ga-verifier-hints-plan-2026-09-19.json +0 -27
  171. package/docs/reports/evidence/ga-work-boundary-context-analysis-2026-09-19.json +0 -113
  172. package/docs/reports/evidence/ga-work-boundary-live-2026-09-19.json +0 -301
  173. package/docs/reports/evidence/ga-work-boundary-live-plan-2026-09-19.json +0 -84
  174. package/docs/reports/evidence/ga-work-budget-planning-2026-09-19.json +0 -32
  175. package/docs/reports/evidence/ga-working-context-2026-09-19.json +0 -22
  176. package/docs/reports/evidence/rc14-delegated-security-review-2026-09-20.json +0 -81
  177. package/docs/reports/evidence/rc14-ga-gate-2026-09-20.json +0 -18
  178. package/docs/reports/evidence/rc14-representative-2026-09-20.json +0 -509
  179. package/docs/reports/evidence/rc14-security-regressions-2026-09-20.json +0 -64
  180. package/docs/reports/evidence/security-current-2026-09-19.json +0 -91
  181. package/docs/reports/evidence/security-remediation-2026-09-19.json +0 -97
@@ -1,156 +0,0 @@
1
- # Efficiency implementation evidence — 2026-09-08
2
-
3
- > Historical snapshot: versions, findings and measurements below describe the recorded run, not the current checkout. See the [report index](README.md) for follow-up work and the [documentation index](../README.md) for maintained guides.
4
-
5
- ## SDK patch integration
6
-
7
- The measured checkout pinned published Core 1.13.0, Agents 1.3.1 and OpenAI 0.11.2,
8
- including the Core override and lockfile. The isolated three-response diagnostic
9
- now reports 300 input tokens for 300 measured tokens. Consumer regressions exercise
10
- persisted and unpersisted streams, compactor usage, per-step budgets, real approval
11
- resumes and synthetic assistant serialization through mocked Responses HTTP.
12
-
13
- The local usage-accounting correction and compacted-history transport projection
14
- have been removed. The SDK preserves complete interaction groups and assistant
15
- roles; the harness no longer drops orphan observations or changes summary roles.
16
- The new runtime identity requires older paused runs to use their matching artifact.
17
- Those checks are installed-package evidence. The subsequent live
18
- [repeated-cohort comparison](./EXTERNAL_COMPARISON.md#sdk-upgrade-reevaluation--2026-09-08)
19
- resolved 2/5 cases for Zhivex and 3/5 for mini-SWE-agent, with 19.4% fewer Zhivex
20
- input tokens than its previous run. It does not establish general superiority.
21
- The sections below describe the earlier development evidence and task creation.
22
-
23
- Upgrade validation passed: 442 tests, documentation and contract checks, typecheck,
24
- migrations, deterministic evaluations and local benchmark checks. MCP loopback
25
- checks required execution outside the sandbox; both MCP smokes, real OCI execution
26
- and installed-package smoke passed with that permission. The isolated SDK diagnostic
27
- also passed with the published dependency versions and no provider calls.
28
-
29
- ## Follow-up: command selection and user corrections
30
-
31
- Configured OCI executable allowlists now appear as enums in all four command
32
- tool schemas, including batch and verified-edit transactions. Descriptions expose
33
- the configured choices and the Python module invocation for pytest when Python is
34
- allowed. This does not broaden process permissions or guarantee module installation;
35
- the execution session still enforces policy and exact approval. Calls to the public
36
- factory without a configuration retain the legacy schema and direct the model to
37
- `environment_status`.
38
-
39
- Compaction strategy `bounded-evidence-v2` retains three bounded user corrections
40
- separately from assistant excerpts. A regression runs five compactions with twenty
41
- assistant messages between each, preserving the correction inside the same 4,000
42
- character summary ceiling. This is deterministic continuity evidence, not a new
43
- external benchmark result. Previous paused runs require their matching artifact.
44
-
45
- The SDK team backlog in Notion's Zhivex area contains these verified-created tasks:
46
-
47
- - [Persisted stream usage duplication](https://app.notion.com/p/3d5777b104f6810a8e46df7186bf5e21):
48
- reproducible offline using `bun --no-env-file run scripts/diagnose-sdk-compaction.ts`.
49
- Core 1.11.0 reports 500 input tokens for three measured responses of 100 when a
50
- store and compaction are enabled. Without a store the isolated control reports 300.
51
- - [Synthetic assistant serialization](https://app.notion.com/p/3d5777b104f6818db026dea3738f9b5b):
52
- OpenAI 0.10.0 transport contract issue; the earlier harness projected summaries
53
- into user context.
54
- - [Approval/tool group boundaries](https://app.notion.com/p/3d5777b104f6814b80f2d46269c9453c):
55
- code inspection and transport regression; the SDK task explicitly requires an
56
- integrated approval/compaction reproduction before implementing an upstream fix.
57
-
58
- At creation all three were tagged SDK-Typescript, priority Alta, status Sin empezar.
59
- Their SDK fixes are now integrated as described above; this historical record does
60
- not assert their current Notion workflow status.
61
-
62
- Follow-up validation: 429 tests passed, plus documentation, stable contracts,
63
- typecheck, migrations, deterministic evaluations and local benchmark checks.
64
- The sandbox blocked the loopback MCP listener; MCP interoperability (controlled
65
- and official SDK), real Docker OCI and installed-package smoke subsequently passed
66
- with the required local execution permission. The isolated SDK diagnostic was also
67
- typechecked and executed without provider calls. No new external score is claimed.
68
-
69
- Implemented on top of `0a7b69dddaa70a54b6b5b4097691c8112d4d76eb` as an
70
- uncommitted development change. Compact source-report digests and aggregate
71
- measurements are recorded in [the baseline](../../benchmarks/baselines/efficiency-2026-09-08.json).
72
- Full reports remain local under `results/efficiency/2026-09-08/`.
73
-
74
- | Measurement (p50) | Before | After |
75
- | --- | ---: | ---: |
76
- | Three searches, 10,000 small files | 1,136.79 ms | 492.41 ms |
77
- | `searchMany`, 10,000 small files | 941.46 ms | 232.24 ms |
78
- | Digest inventory, 10,000 small files | 970.63 ms | 245.74 ms |
79
- | Reused topology inventory, 100 nested groups / 1,000 files | 27.61 ms | 10.32 ms |
80
- | OCI session acquisition, 1,000 source files | 417.04 ms | 193.16 ms |
81
-
82
- Three repetitions per measurement, Bun 1.4.0 on local macOS ARM64, filesystem
83
- cache not flushed. These are sequential development observations, not randomized
84
- paired trials. The nested and OCI before/after measurements isolate later stages:
85
- both already include concurrent content reads; OCI after additionally includes
86
- batched index freshness and snapshot construction. No model latency or human
87
- approval time is represented by these workspace numbers. No p99 claim is warranted.
88
-
89
- Validation: full `bun run check` passed, including 414 tests, historical migrations,
90
- deterministic evaluations, workspace/safe-fix benchmarks, MCP interoperability,
91
- real Docker 29.7.2 OCI smoke, and the installed package smoke. Tests exercise batch
92
- failure draining, early termination, deduplication, aggregate limits, symlinks,
93
- Unicode pagination, changed file contents, repeated compaction and redaction.
94
- The Stable declaration snapshot update reflects only TypeScript's reordered
95
- `fulfilled`/`rejected` enum members, checked against declarations emitted from the
96
- base checkout. It does not add or remove a public API member.
97
-
98
- Reproduce workspace scale with `bun run benchmark:workspace:scale`, continuity with
99
- `bun run evaluate:continuity`, and OCI with `bun run benchmark:oci`. See the
100
- [benchmark guide](../../benchmarks/README.md) for limits and competitive methodology.
101
-
102
- Remaining research: persistent content indexing, semantic plans/constraint retention,
103
- automatic model selection and cross-tool concurrency. Those mechanisms were not
104
- introduced by this patch. External held-out agent evaluations still require a
105
- selected competing implementation, dataset and matched runtime/model budgets; the
106
- existing external-driver interface is available but no competitor was executed.
107
-
108
- ## External-pilot follow-up
109
-
110
- The follow-up adds exact approved replacements to avoid generating full files,
111
- reduces default read/search volume, preserves the objective through SDK-formatted
112
- compaction, and fixes model-transport context at compaction boundaries. OCI's
113
- inventory uses the snapshot byte budget independently of the model's file-read
114
- limit, allowing large unchanged fixture files. The authority inventory and enforced
115
- OCI tool list both include the new replacement tool.
116
-
117
- One previously failing development task produced an officially accepted repair
118
- with two compacted continuations after these fixes. That run subsequently exhausted
119
- its input budget after already importing the patch; the frozen comparison ends on
120
- the approved import receipt. This development result is not holdout evidence.
121
- See [the external comparison](EXTERNAL_COMPARISON.md) for the independent selection.
122
-
123
- ## Qwen repair follow-up
124
-
125
- The subsequent implementation adds exact-file batched searches, character-bounded
126
- read output, earlier benchmark compaction, remaining-budget reminders and required
127
- verification before native benchmark import. Command telemetry retains typed exit
128
- codes and timeouts without raw logs. Qwen adapter 0.11.4 incorporates the upstream
129
- streamed-usage fix. Validation passed 446 tests and the MCP, OCI and installed
130
- package checks.
131
-
132
- The repeated five-case comparison using `qwen3.8-flash` with thinking disabled
133
- resolved 0/5 for Zhivex and 2/5 for mini-SWE-agent. Native input usage was 424,720
134
- tokens: three attempts reached the budget, one failed argument validation and one
135
- failed final verification (exit 4), preventing import. This is no demonstrated
136
- competitive improvement. Model and harness changes are confounded, and the cases
137
- are known development data. See the [full result and limitations](EXTERNAL_COMPARISON.md#qwen-flash-repair-reevaluation--2026-09-08).
138
-
139
- ## Navigation retention follow-up — 2026-09-09
140
-
141
- The harness compactor previously ignored nested file references in batched search
142
- and read outputs. Strategy `bounded-evidence-v3` now retains up to eight validated,
143
- deduplicated path/digest/line references within the existing total summary budget.
144
- New observations with a changed digest replace older locations for that file.
145
- Current source must still be read before editing; historical locations do not
146
- authorize edits or stand in for source content.
147
-
148
- The [deterministic control](../../benchmarks/baselines/context-navigation-2026-09-09.json)
149
- retains two locations through six successive compactions, compared with zero in
150
- the archived v2 implementation. On this small fixture the summary grows from 225
151
- to 553 characters, still below the 4,000-character cap. This is improved information
152
- retention, not measured token savings. The intended benefit is avoiding repository
153
- rediscovery after compaction; a fixed-model live comparison is still needed to
154
- measure that benefit. Regression tests use actual workspace batched outputs and
155
- cover redaction, stale references, clipped lines, hostile recalled metadata and
156
- small summary budgets. The local suite passes 456 tests.
@@ -1,434 +0,0 @@
1
- # Reproducible external comparison
2
-
3
- > Historical snapshot: versions, findings and measurements below describe the recorded run, not the current checkout. See the [report index](README.md) for follow-up work and the [documentation index](../README.md) for maintained guides.
4
-
5
- The latest [post-remediation Qwen reevaluation](QWEN_REMEDIATION_COMPARISON_2026-09-09.md)
6
- completed twenty attempts on five known tasks, two repetitions per candidate:
7
- Zhivex delivered 0/10 repairs and mini-SWE-agent 4/10. Three native candidates
8
- passed independent grading but exhausted budget before verification/import;
9
- they do not count as completed repairs. This is a development reevaluation,
10
- not a new holdout. The [sanitized baseline](../../benchmarks/baselines/external-qwen-remediation-2026-09-09.json)
11
- records complete usage, all samples and 60 verified source hashes.
12
-
13
- The earlier [frozen model comparison and isolated recovery study](MODEL_COMPARISON_2026-09-09.md)
14
- holds the harness version and per-candidate verification policy fixed across
15
- OpenAI and Qwen. Earlier runs below retain their original configurations.
16
-
17
- ## Repair progress controls
18
-
19
- The native driver opts into Core 1.14.0/Agents 1.4.0 schema-error recovery with
20
- `toolExecution.validationErrorMode: "tool-result"`. Invalid arguments produce a
21
- sanitized error observation, allowing the model to correct the call within the
22
- existing step/error/token limits. Invalid calls are not executed or approved.
23
- Consumer tests exercise real harness streaming, correction, error-budget stops,
24
- and a mixed invalid-read/valid-write batch across approval. The normal CLI retains
25
- the SDK's strict default unless the application explicitly selects recovery.
26
- Structured validation issue paths are retained in sanitized benchmark diagnostics.
27
-
28
- The native comparison driver now creates one isolated progress controller per run.
29
- After 70% of either measured cumulative input or output allowance is consumed,
30
- `list_files` and repository-root searches are rejected with a short instruction
31
- to proceed with focused reads/searches, reproduction, repair and verification.
32
- This reserves the remaining allowance from those discovery tools; it does not
33
- guarantee that 30% will reach verification or prevent exploration inside an approved
34
- shell command. Overall SDK/transport ceilings and approvals remain enforced.
35
-
36
- For local read/search/list tools, the third identical request returning identical
37
- data replaces the repeated payload with a recoverable tool error. The tool still
38
- reads current data before comparing hashes: there is no cached source substitution.
39
- Changed results are returned normally. Commands and mutations clear repetition
40
- history before execution, including when they fail after effects. They are never
41
- deduplicated. The per-run history holds at most 128 input/output hashes; diagnostics
42
- contain only counters. This wrapper preserves each tool's schema and approval fields.
43
-
44
- `repairProgress` reports repeated/suppressed results, blocked broad calls and entry
45
- into the closure phase. `contextMetrics` records up to 128 outbound requests split
46
- into serialized characters for system, user, assistant, tool-result and other
47
- messages, plus provider-neutral tool names/descriptions/JSON schemas. Unsupported
48
- schemas increment `unmeasuredToolDefinitions`; omitted requests are counted in
49
- `omittedContextMeasurements`. These are character measurements, not billed tokens
50
- or exact provider wire serialization. They contain no request text. Existing actual
51
- token counters remain the basis for budget enforcement.
52
-
53
- These controls are enabled in the SWE-bench native driver, not automatically in
54
- normal CLI sessions. Existing frozen baselines predate this policy and must not be
55
- attributed to it. The post-remediation reevaluation linked above measures this
56
- newer policy; it did not improve final resolution. The upstream external
57
- candidate's loop is unchanged.
58
-
59
- The current checkout integrates Core 1.14.0, Agents 1.4.0, OpenAI 0.11.2 and Qwen 0.11.4 and
60
- removes the earlier local compaction workarounds. Existing baseline results below
61
- belong to their archived source snapshots and dependencies, not this upgraded
62
- runtime. A repeated-cohort evaluation of the upgraded runtime is recorded below;
63
- it is separate from the original held-out run.
64
-
65
- ## Qwen Flash repair reevaluation — 2026-09-08
66
-
67
- The [Qwen baseline](../../benchmarks/baselines/external-qwen-flash-2026-09-08.json)
68
- records all ten completed attempts on the same five known tasks, one repetition.
69
- Both candidates requested `qwen3.8-flash` through the international DashScope Chat
70
- Completions endpoint, with thinking disabled. Limits remain 24 steps, 2,048 output
71
- tokens per response, 100,000 cumulative input tokens, 16,000 cumulative output
72
- tokens and 300 seconds. Budget enforcement between requests can overshoot by one
73
- response. Pricing was not supplied.
74
-
75
- | Candidate | Resolved | Input tokens, all attempts | Output tokens, all attempts |
76
- | --- | ---: | ---: | ---: |
77
- | Zhivex | 0/5 | 424,720 | 5,868 |
78
- | mini-SWE-agent | 2/5 | 359,481 | 6,404 |
79
-
80
- The implemented fixes support exact-file `search_many`, limit rendered reads to
81
- 16,000 characters per slice and 32,000 per batch, request behavioral assertions,
82
- compact at 10,000 estimated input tokens, and expose remaining cumulative budget
83
- after half is consumed. Native submission now requires a successful verifier
84
- through `verify_and_apply_environment_patch`; mini retains its upstream submission
85
- loop. This verification-policy difference is part of the compared products.
86
-
87
- Three native tasks (SymPy and both Django cases) exhausted the input budget.
88
- Scikit-learn 10908 stopped on an invalid `files[0].endLine` argument; sanitized
89
- evidence does not establish the offending value. Scikit-learn 14141 reached final
90
- verification, which exited with code 4 and correctly prevented host import. Its
91
- error fingerprint exactly matches the harness's verifier-failure message; the
92
- retained evidence does not establish why the verifier exited with that code.
93
- All five native exported patches were empty. Mini resolved both scikit-learn
94
- cases and exported three empty patches. Empty patches count as unresolved without
95
- running hidden tests. All ten attempts have complete usage, with no missing samples
96
- or grading failures.
97
-
98
- An earlier aborted attempt used Qwen adapter 0.11.1, which missed the trailing
99
- streamed usage chunk. The already-published upstream fix was integrated by upgrading
100
- to 0.11.4 and verified with a live streaming tool call before this complete run.
101
- That aborted attempt is retained separately with unknown billed usage and is not
102
- valid comparison evidence. No duplicate SDK story is needed for the existing fix.
103
-
104
- All 52 source hashes matched the checkout and archived snapshot after execution.
105
- Local receipts and reports are under
106
- `results/swebench/qwen-flash-validated-2026-09-08/`. Validation passed 446 tests,
107
- contract/docs/type checks, migrations, deterministic evaluations, MCP checks, real
108
- OCI smoke and the installed package smoke; network/port/container checks ran with
109
- the required sandbox escalation.
110
-
111
- This run did not improve resolution. Model, transport, reasoning and harness
112
- behavior changed together relative to the preceding GPT run; it does not isolate
113
- model quality or the effect of any individual fix. These inspected cases are
114
- development data, not a fresh holdout. Remaining observed bottlenecks are repeated
115
- context consumption and recovery from invalid tool arguments or failed verification.
116
- To prepare another Qwen selection, use `prepare.py --provider qwen --model
117
- qwen3.8-flash` with the other preparation arguments. Supply `DASHSCOPE_API_KEY` or
118
- `QWEN_API_KEY`; the matched runner requires the default international endpoint and
119
- rejects custom Qwen region, workspace or base-URL overrides.
120
-
121
- ## SDK upgrade reevaluation — 2026-09-08
122
-
123
- The [sanitized baseline](../../benchmarks/baselines/external-sdk-upgrade-2026-09-08.json)
124
- records ten completed runs with Core 1.13.0, Agents 1.3.1 and OpenAI 0.11.2.
125
- All five tasks, candidate and evaluator images, model and budgets match the previous
126
- final cohort. This deliberately reuses known cases, so it is not a new holdout.
127
- Command-schema and user-correction improvements are also present; this experiment
128
- does not isolate the SDK's causal contribution.
129
-
130
- | Candidate | Previous resolved | Current resolved | Previous input tokens | Current input tokens |
131
- | --- | ---: | ---: | ---: | ---: |
132
- | Zhivex | 1/5 | 2/5 | 422,592 | 340,685 |
133
- | mini-SWE-agent | 2/5 | 3/5 | 331,554 | 297,407 |
134
-
135
- Zhivex used 19.4% fewer input tokens in this run; mini used 10.3% fewer. Output
136
- tokens were 5,260 and 8,832 respectively. These totals include unsuccessful attempts.
137
- The unchanged external control also varied, so neither the score change nor token
138
- reduction is a causal estimate. No pricing was supplied and monetary costs remain
139
- unknown. Five tasks and one repetition do not establish general superiority.
140
-
141
- | Task | Zhivex | mini-SWE-agent |
142
- | --- | --- | --- |
143
- | sympy__sympy-21930 | Incorrect patch | Incorrect patch |
144
- | scikit-learn__scikit-learn-10908 | Resolved | Resolved |
145
- | django__django-15554 | Input budget exceeded | Resolved |
146
- | scikit-learn__scikit-learn-14141 | Resolved | Resolved |
147
- | django__django-11265 | Incorrect patch | Incorrect patch |
148
-
149
- Zhivex now solves scikit-learn-10908, previously blocked by command authorization.
150
- It completes the SymPy and final Django attempts within budget, but their patches
151
- do not pass the official evaluator. One other Django attempt reaches 101,980 input
152
- tokens; ceilings allow the documented one-response overshoot. No command-denial or
153
- provider-protocol failures were recorded. Remaining priorities are repair correctness
154
- and repeated context consumption, not relaxing execution permissions.
155
-
156
- All ten samples have complete usage and grading status, with no grading failures or
157
- protected-file changes. All five preflights passed without provider calls. After
158
- the run, all 52 source hashes matched both the checkout and archived snapshot.
159
- Raw receipts are local under `results/swebench/sdk-upgrade-comparison-2026-09-08/`.
160
-
161
- ### Failure analysis of the upgraded run
162
-
163
- The requested model identifier was `gpt-5.6-luna`, through OpenAI Responses with
164
- low reasoning, for both candidates. Limits were 24 steps, 2,048 output tokens per
165
- response, 100,000 cumulative input tokens, 16,000 cumulative output tokens and
166
- 300 seconds per agent run. This records the requested model, not an immutable
167
- provider model snapshot.
168
-
169
- - **SymPy 21930:** the submitted patch only wrapped `CreateBoson._latex` in braces.
170
- Official grading passed two target tests but still failed `test_commutation`,
171
- `test_create_f`, `test_NO` and `test_Tensors`. The repair did not cover related
172
- rendering variants. Two exact-replacement attempts also failed because the
173
- old text was not a unique match; those checks should remain enforced.
174
- - **Django 11265:** copying annotations and filtered relations into the inner
175
- query removed the original failure mode but did not implement correct exclusion
176
- semantics. `test_with_exclude` expected an author and received an empty queryset.
177
- One execution command is recorded, but the sanitized trace does not retain its
178
- arguments or exit code; it cannot establish what the agent actually verified.
179
- - **Django 15554:** 13 model calls consumed 101,980 input tokens with two compactions.
180
- The recorded tools were eight searches, five reads and one listing; no edit or
181
- verifier execution is recorded before the budget failure. Tool responses totaled
182
- 115,568 serialized characters. These are response characters, not unique source
183
- bytes or a token estimate. The empty exported patch received no hidden test run.
184
-
185
- A confirmed harness issue contributed avoidable tool failures: `search_many` accepts
186
- an arbitrary relative `path` in its schema, but `Workspace.searchMany` requires a
187
- directory and the tool description does not explain that restriction. Eight errors
188
- across four tasks have the exact SHA-256 fingerprint of the fixed message
189
- `searchMany requires a directory.` An isolated temporary-file reproduction matches
190
- the fingerprint; searching the containing directory succeeds. Three such failures
191
- occurred in Django 15554. This does not prove that fixing search alone would solve it.
192
-
193
- Priorities are file-scoped search with the existing filesystem protections, explicit
194
- behavioral reproduction plus regression verification before submission, and bounded
195
- read output with earlier budget-aware progress checks. Verification telemetry should
196
- retain typed command outcomes without raw logs or secrets. No new SDK defect is
197
- established by these failures; the terminal budget guard is expected behavior.
198
- Any future tuning using these inspected evaluator results must treat this cohort as
199
- development data and use fresh cases for confirmatory claims.
200
-
201
- This opt-in pipeline compares the actual Zhivex Harness native OCI execution path
202
- with upstream mini-SWE-agent 2.4.6 on a pinned selection of SWE-bench Verified.
203
- It does not relabel the internal `direct` profile as an external product.
204
-
205
- The scorer is SWE-bench 4.1.0, which accepts the original Verified dataset columns.
206
- SWE-bench 5.x expects precomputed evaluation metadata absent from this pinned
207
- revision. The dependency lock includes hashes. See the upstream
208
- [mini-SWE-agent integration](https://mini-swe-agent.com/latest/usage/swebench/) and
209
- [SWE-bench 4.1.0 package](https://pypi.org/project/swebench/4.1.0/).
210
-
211
- ## Setup
212
-
213
- Install the optional Python tools separately from the published JavaScript package:
214
-
215
- ```sh
216
- uv venv --python 3.12 evaluations/external/.venv
217
- uv pip sync --python evaluations/external/.venv/bin/python evaluations/external/requirements.lock
218
- export ZHIVEX_SWEBENCH_PYTHON="$PWD/evaluations/external/.venv/bin/python"
219
- ```
220
-
221
- Docker must be available. The images are Linux AMD64; an ARM host uses emulation,
222
- which is recorded as a limitation of local timing. On macOS, ensure Docker Desktop's
223
- credential helper is on PATH when pulling public images. Preparation can download
224
- several gigabytes per task. It does not send model requests.
225
-
226
- ```sh
227
- bun run benchmark:swebench prepare --output results/swebench/prepared --count 5
228
- bun run benchmark:swebench preflight --prepared results/swebench/prepared
229
- bun --env-file=.env run benchmark:swebench run \
230
- --prepared results/swebench/prepared \
231
- --output results/swebench/comparison --live
232
- bun run benchmark:swebench report results/swebench/comparison
233
- ```
234
-
235
- Every preparation/comparison output directory must be new. Failed attempts remain
236
- separate. The default matrix is five seeded tasks, two candidates and one repetition;
237
- `run` also caps the matrix at ten cases unless `--max-runs` explicitly increases it.
238
- Do not choose replacements based on which agent succeeds. To expand, prepare a new
239
- selection and exclude all development/pilot tasks from the confirmatory holdout.
240
-
241
- ## Identity and isolation
242
-
243
- Preparation freezes the dataset revision, selected full-task digest, model, limits,
244
- package versions, original evaluator image IDs and derived candidate image IDs.
245
- The candidate image adds Node 22 to the official per-task image and sets Python's
246
- search path to `/workspace:/workspace/src:/testbed:/testbed/src`. This prioritizes
247
- the Harness snapshot while preserving the control's `/testbed` checkout. Preflight
248
- checks top-level checkout package origins with the script-directory shortcut
249
- excluded; an editable installation pointing to the original image must not silently
250
- replace the candidate under test. Older prepared images without this binding must
251
- be rebuilt before another comparison. Both agents use
252
- that identical derived image; grading uses the pinned original image in a fresh
253
- container. The run manifest records source hashes as well as the Git commit, so
254
- uncommitted implementations are distinguishable.
255
-
256
- Some official images squash Git history. The source tree is checked against the
257
- upstream base commit. Where image packaging changes executable bits, preparation
258
- requires identical paths and blob hashes and allows only regular-file 0644/0755
259
- mode differences; the count and both tree identities are recorded. Changes in file
260
- type or content fail preparation. Repository state must initially be clean.
261
-
262
- Agent requests include only the problem statement and public task identity. Gold
263
- patches, hidden test patches, hidden test names and hints stay in a private dataset
264
- file outside agent workspaces. Official grading applies its hidden tests after the
265
- agent exits. Actual workspace diffs, including new files, are exported independently
266
- of model claims. Modifications to protected test/configuration files disqualify a
267
- repair; raw official correctness is retained separately as `officialResolved`.
268
-
269
- The comparison intentionally preserves product differences: Zhivex uses its read-only
270
- OCI root, writable `/workspace` snapshot, durable approvals and explicit host import;
271
- mini uses upstream prompts/control loop with a writable `/testbed` container.
272
- Both agent environments deny network and use equal CPU/memory limits. Zhivex's
273
- operator is automated with zero human wait, so this does not measure human review UX.
274
- Shell/tool inventories and tool-call limits differ and are disclosed in the manifest.
275
- The same Responses API model, low reasoning effort, per-response output cap, step
276
- limit and cumulative token ceilings are used. Cumulative ceilings are checked between
277
- requests and can overshoot by one response. Provider retries are disabled for the pilot.
278
-
279
- ## Reports and boundaries
280
-
281
- `report.json` and `report.md` count every planned task/repetition. Missing samples,
282
- agent failures and grading failures remain visible. Resolution requires independent
283
- grading and adherence to the protected-file policy. Empty patches count as unresolved
284
- without claiming that tests ran. Durations include preparation of each run and grading;
285
- agent and grading durations are also retained in samples.
286
-
287
- Prices are not invented. To estimate USD consistently from measured usage, supply
288
- `--prices INPUT CACHED_INPUT OUTPUT` as USD per million tokens, using verified prices
289
- for the exact provider/model at run time. The manifest records the supplied rates.
290
- Without rates or complete usage, cost stays `null`. Cost per solved problem includes
291
- spend on unsuccessful attempts. Interrupted requests can have unknown billed usage.
292
-
293
- Intervals resample tasks, averaging repetitions within each task first. Five tasks
294
- are an integration pilot, not credible evidence of general superiority. Correctness
295
- on SWE-bench is not a security evaluation. Safety, hostile repositories, human review
296
- and long-session continuity need separate suites. No leaderboard submission is made.
297
-
298
- Run `bun run benchmark:swebench:test` for offline contract regressions; those tests
299
- need only Python's standard library and do not install the optional evaluator or
300
- call a provider. The preparatory OCI check and official positive/negative controls
301
- are separate integration evidence.
302
-
303
- ## Recorded pilot: 2026-09-08
304
-
305
- The [sanitized baseline](../../benchmarks/baselines/external-pilot-2026-09-08.json)
306
- records ten runs: five seeded tasks, one repetition, `gpt-5.6-luna` with low
307
- reasoning. Mini-SWE-agent resolved **5/5**; Zhivex resolved **0/5**. No samples
308
- were missing and the official grader reported no grading failures. Empty native
309
- patches counted as unresolved without invoking hidden tests. Before the pilot,
310
- the grader rejected a neutral patch and accepted the reference repair on the first
311
- task; these controls did not call a model.
312
-
313
- Zhivex returned `EXECUTION_FAILED` on one case and lost that run's model telemetry.
314
- Three other failed cases recorded 152,643, 119,718 and 110,074 cumulative input
315
- tokens against a 100,000-token ceiling; the exact terminal reasons were not
316
- retained, so a causal diagnosis remains open. The fifth case completed with one
317
- model response, no tool calls and no repair. Unknown counters are `null` in the
318
- sanitized baseline, even where the raw driver emitted zero with `usageComplete:false`.
319
- Costs remain unknown because no rates were supplied and one run lacks usage.
320
-
321
- The next improvement cycle should preserve sanitized terminal reasons and partial
322
- usage, investigate context growth and approval resumption, and reproduce the
323
- no-tool completion. Reuse these five cases for debugging, then measure the updated
324
- system on an untouched holdout. This pilot supports no general superiority claim.
325
-
326
- Raw local evidence is under `results/swebench/comparison-2026-09-08-fixed/`;
327
- it includes manifests, predictions, official logs and a verified source snapshot.
328
- An earlier interrupted integration attempt is kept separately and is excluded
329
- from this fixed matrix; its unknown billed usage is not treated as zero. Source
330
- snapshotting and between-case source verification were automated in the runner
331
- after this pilot; the baseline retains hashes of the code actually executed.
332
- The pilot's hash list omitted the shared telemetry helper and CLI launcher; future
333
- runs include both. The final driver also adds a checked OCI type narrowing in the
334
- preflight only; the paid agent path is unchanged.
335
-
336
- ## Follow-up implementation and untouched selection
337
-
338
- Preparation accepts repeatable `--exclude-manifest` arguments. The intermediate follow-up uses
339
- seed `20260909` and excludes all five original pilot tasks. The final selection uses
340
- seed `20260910` and excludes all ten tasks from both earlier cohorts. Selection stays fixed
341
- across preparation failures. One official Astropy image changed `pyproject.toml`:
342
- preparation restores only that file from its verified public base-commit Git blob,
343
- records both blob hashes and the packaged image ID, builds one candidate image
344
- for both agents, and rechecks every source entry. Arbitrary source differences
345
- still fail. Official grading continues to use the original pinned evaluator image.
346
-
347
- The native follow-up uses exact digest-bound replacements, smaller default reads
348
- and searches, and compaction at 16 messages or 16,000 estimated tokens with two
349
- recent messages retained. An outbound model projection represents synthetic
350
- summaries as user context (compatible with the pinned Responses adapter) and omits
351
- orphan tool observations left by an approval/compaction boundary. Durable history
352
- is retained. Snapshot inventory now has the configured total OCI byte limit,
353
- independent of the 1 MiB model file-read limit; large fixtures are copied intact.
354
-
355
- The benchmark allows recovery from ordinary tool execution errors within its
356
- existing error budget, while approval and environment denials remain enforced.
357
- It treats successful approved `apply_environment_patch` as the terminal receipt;
358
- it does not spend another model turn after submission. The official grader still
359
- decides resolution. Mini retains its upstream submission loop. These are disclosed
360
- product/supervisor differences, not identical tool inventories.
361
-
362
- Telemetry retains observed completed steps across thrown failures, deduplicates
363
- approval continuations by step index, and projects guardrail limits, HTTP status,
364
- error class, fixed diagnostic hints and fingerprints. No raw error messages,
365
- provider bodies or repository contents enter diagnostics. When usage is incomplete,
366
- recorded counters are partial measurements and cannot establish a total cost.
367
-
368
- ## Correct cumulative usage after compaction
369
-
370
- An offline three-response control exposed SDK 1.11.0 counting 500 input tokens
371
- when three measured responses each contained 100. The output budget guard now
372
- reconstructs direct usage from complete, unique recorded steps plus explicit
373
- compactor usage before evaluating the existing ceilings. Missing or invalid
374
- measurements retain conservative accounting; child usage remains with the existing
375
- child-budget logic. The regression also verifies that genuinely exceeding a
376
- 350-token ceiling still fails.
377
-
378
- The native benchmark additionally counts usage at the model transport boundary
379
- and refuses another request once either cumulative ceiling is reached, independent
380
- of SDK approval/checkpoint bookkeeping. Reported counters use that transport
381
- measurement. The intermediate 2/5 versus 4/5 run retains the old accounting defect
382
- and is not valid evidence of equal effective budgets. It remains preserved as an
383
- immutable diagnostic attempt. The final cohort is separate and excludes its tasks.
384
-
385
- ## Historical final cohort result: 2026-09-08
386
-
387
- The [final baseline](../../benchmarks/baselines/external-final-2026-09-08.json) records five previously unused tasks (seed `20260910`), one repetition, and the corrected transport budget. All ten cases were recorded; there were no grading failures. All 54 recorded source hashes matched the checkout and archived source snapshot after execution.
388
-
389
- | Candidate | Resolved | Input tokens, all attempts | Output tokens, all attempts |
390
- | --- | ---: | ---: | ---: |
391
- | zhivex | 1/5 | 422,592 | 5,463 |
392
- | mini-swe-agent | 2/5 | 331,554 | 8,746 |
393
-
394
- Zhivex resolved `scikit-learn__scikit-learn-14141`. Three unresolved native cases reached the input budget; `scikit-learn__scikit-learn-10908` stopped at the enforced executable allowlist. Mini resolved both scikit-learn cases. No HTTP 400 or snapshot setup failure occurred in this final native cohort.
395
-
396
- Validation: `bun run check` passed with 427 tests, including migrations, deterministic evaluations, MCP, real OCI smoke and the installed package smoke. All five final preflights passed. Costs remain unknown because no price rates were supplied.
397
-
398
- This result does not show superiority over the external baseline. The cohorts differ, so comparing the original 0/5, intermediate 2/5 and final 1/5 is not an improvement estimate. The remaining measured bottlenecks are search/context consumption and choosing commands within the declared environment policy. The source/approval/compaction/accounting corrections remain separately reproducible.
399
-
400
- ## Latest Qwen development rerun: 2026-09-09
401
-
402
- With Core 1.14.0 / Agents 1.4.0 and the combined harness improvements, the same
403
- five-task Qwen cohort remained at Zhivex 0/5 versus mini-SWE-agent 2/5. SDK schema
404
- recovery worked in two live observations, but four native attempts exhausted the
405
- input budget and one failed with incomplete usage. No token-saving claim follows
406
- from this run. See the [detailed analysis](MODEL_COMPARISON_2026-09-09.md#qwen-rerun-with-core-114-and-progress-controls)
407
- and [sanitized baseline](../../benchmarks/baselines/external-qwen-sdk-114-progress-2026-09-09.json).
408
-
409
- ## Diagnostic candidates and shared policy
410
-
411
- The native driver now selects the product `repair` profile. Its tool catalog
412
- includes original-task recovery, working plans and audit inspection; instructions
413
- are rendered from that catalog. Command output is bounded to 20000 bytes in this
414
- variant. Freeze a new manifest/preflight before comparison: these changes are a
415
- new variant, not another repetition of the historical SDK-1.14 matrix.
416
-
417
- Before deleting private state, the driver captures the final OCI candidate with
418
- content/mode digests. Candidate text is private evaluator input (UTF-8, at most
419
- 1 MiB/file and 2 MiB aggregate); capture errors remain explicit and cannot erase
420
- the imported patch result. The runner builds a separate disposable checkout and
421
- grades that candidate independently. Candidate predictions are stored separately
422
- from imported/final predictions; only imported/final grading contributes to the
423
- original safe-resolution metric. Missing capture is unknown. Candidate results
424
- that alter protected test/configuration paths do not count as resolved.
425
-
426
- Sanitized telemetry records requested tool names, typed failures, finish reasons,
427
- usage completeness, model durations, first text/tool-call latency when available,
428
- aggregate tool timings, approval wait times, observed repair stages, OCI phase
429
- latencies and grading time. Stream first-token timing refers to the first SDK
430
- text delta or assembled tool-call event, not necessarily the first network byte.
431
- Stages are observations (e.g. edit request/completion), not proof of semantic
432
- progress. Model prompts, source, verifier output and arbitrary error messages are
433
- not copied into public sample diagnostics. No new live superiority claim follows
434
- from the offline remediation suite; run ablations and a fresh repeated holdout.