@zhivex-ai/harness 1.0.0-rc.7 → 1.0.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.
- package/CHANGELOG.md +190 -0
- package/README.md +47 -62
- package/ROADMAP.md +15 -6
- package/SECURITY.md +1 -1
- package/benchmarks/README.md +48 -0
- package/benchmarks/baselines/context-navigation-2026-09-09.json +94 -0
- package/benchmarks/baselines/efficiency-2026-09-08.json +233 -0
- package/benchmarks/baselines/external-final-2026-09-08.json +588 -0
- package/benchmarks/baselines/external-intermediate-2026-09-08.json +116 -0
- package/benchmarks/baselines/external-matched-openai-2026-09-08.json +1922 -0
- package/benchmarks/baselines/external-matched-qwen-2026-09-08.json +1706 -0
- package/benchmarks/baselines/external-pilot-2026-09-08.json +439 -0
- package/benchmarks/baselines/external-qwen-flash-2026-09-08.json +1570 -0
- package/benchmarks/baselines/external-qwen-remediation-2026-09-09.json +1509 -0
- package/benchmarks/baselines/external-qwen-sdk-114-progress-2026-09-09.json +2509 -0
- package/benchmarks/baselines/external-sdk-upgrade-2026-09-08.json +564 -0
- package/benchmarks/baselines/external-verifier-recovery-2026-09-09.json +794 -0
- package/benchmarks/baselines/full-harness-review-2026-09-10.json +134 -0
- package/benchmarks/baselines/harness-audit-2026-09-09.json +136 -0
- package/benchmarks/baselines/harness-remediation-2026-09-09.json +160 -0
- package/benchmarks/baselines/oci-remediation-2026-09-10.json +535 -0
- package/benchmarks/baselines/rc14-holdout-2026-09-10.json +854 -0
- package/benchmarks/baselines/repair-architecture-audit-2026-09-09.json +75 -0
- package/benchmarks/baselines/time-to-safe-fix-live-expanded-2026-08-21.json +186 -0
- package/benchmarks/baselines/time-to-safe-fix-live-smoke-2026-08-21.json +186 -0
- package/contracts/public-api.json +25 -0
- package/contracts/security-controls.json +3 -2
- package/contracts/stable-api-signatures.json +58 -54
- package/dist/bounded-reads.d.ts +4 -0
- package/dist/change-envelope.d.ts +4 -4
- package/dist/cli-options.d.ts +2 -1
- package/dist/cli-profiles.d.ts +39 -0
- package/dist/cli-stream.d.ts +40 -40
- package/dist/cli.d.ts +38 -35
- package/dist/cli.js +6556 -4030
- package/dist/compaction.d.ts +12 -0
- package/dist/config.d.ts +6 -1
- package/dist/console-context.d.ts +26 -0
- package/dist/console-input.d.ts +28 -0
- package/dist/context-engineering.d.ts +5 -5
- package/dist/context-metrics.d.ts +11 -0
- package/dist/edit-contracts.d.ts +2 -2
- package/dist/execution-environment.d.ts +9 -5
- package/dist/harness.d.ts +52 -18
- package/dist/hostile-repository-demo.js +2942 -1088
- package/dist/index.d.ts +3 -3
- package/dist/index.js +4316 -2435
- package/dist/json-contracts.d.ts +292 -236
- package/dist/model-budget.d.ts +61 -0
- package/dist/operations.d.ts +82 -20
- package/dist/orchestration.d.ts +1 -0
- package/dist/providers.d.ts +5 -2
- package/dist/repair-controller.d.ts +72 -0
- package/dist/repair-progress.d.ts +40 -0
- package/dist/repair-verifier.d.ts +6 -0
- package/dist/replacement-edits.d.ts +9 -0
- package/dist/routing.d.ts +1 -1
- package/dist/run-interruption.d.ts +4 -0
- package/dist/runtime-checkpoints.d.ts +7 -0
- package/dist/runtime-diagnostics.d.ts +63 -0
- package/dist/runtime-policy.d.ts +36 -0
- package/dist/sessions.d.ts +1 -1
- package/dist/state-backup.d.ts +2 -2
- package/dist/task-memory.d.ts +36 -0
- package/dist/terminal-markdown.d.ts +12 -0
- package/dist/time-to-safe-fix.d.ts +19 -19
- package/dist/tool-registry.d.ts +4 -0
- package/dist/verify-historical-migrations.js +6987 -5140
- package/dist/workspace-mutation-lock.d.ts +5 -0
- package/dist/workspace.d.ts +39 -4
- package/dist/zhx.js +6556 -4030
- package/docs/CLI.md +89 -3
- package/docs/CONTEXT_ENGINEERING.md +160 -0
- package/docs/EXECUTION_ENVIRONMENTS.md +21 -0
- package/docs/EXTENSIBILITY.md +2 -2
- package/docs/GA_READINESS.md +13 -7
- package/docs/LIVE_CERTIFICATION.md +12 -2
- package/docs/RC13_SECURITY_REVIEW.md +28 -0
- package/docs/RC14_DELEGATED_SECURITY_DECISION.md +80 -0
- package/docs/RC14_SECURITY_REVIEW.md +40 -0
- package/docs/README.md +33 -0
- package/docs/RELEASE.md +4 -2
- package/docs/REPOSITORY_EDITING.md +47 -0
- package/docs/SECURITY_REVIEW_EVIDENCE.md +5 -3
- package/docs/THREAT_MODEL.md +3 -3
- package/docs/TIME_TO_SAFE_FIX.md +4 -4
- package/docs/ga-readiness.json +147 -16
- package/docs/reports/EFFICIENCY_REVIEW.md +156 -0
- package/docs/reports/EXTERNAL_COMPARISON.md +434 -0
- package/docs/reports/FULL_HARNESS_REVIEW_2026-09-10.md +200 -0
- package/docs/reports/GA_BUDGET_REMEDIATION_2026-09-19.md +38 -0
- package/docs/reports/GA_REPAIR_RECOVERY_2026-09-19.md +700 -0
- package/docs/reports/GA_VALIDATION_2026-09-19.md +111 -0
- package/docs/reports/HARNESS_ARCHITECTURE_REVIEW_2026-09-09.md +202 -0
- package/docs/reports/HARNESS_AUDIT_2026-09-09.md +306 -0
- package/docs/reports/HARNESS_REMEDIATION_2026-09-09.md +74 -0
- package/docs/reports/HARNESS_REMEDIATION_2026-09-10.md +90 -0
- package/docs/reports/MODEL_COMPARISON_2026-09-09.md +184 -0
- package/docs/reports/QWEN_REMEDIATION_COMPARISON_2026-09-09.md +142 -0
- package/docs/reports/RC14_VALIDATION_2026-09-10.md +45 -0
- package/docs/reports/README.md +26 -0
- package/docs/reports/evidence/ga-budget-remediation-2026-09-19.json +133 -0
- package/docs/reports/evidence/ga-catalog-ablation-2026-09-19.json +699 -0
- package/docs/reports/evidence/ga-catalog-ablation-plan-2026-09-19.json +40 -0
- package/docs/reports/evidence/ga-catalog-observed-2026-09-19.json +985 -0
- package/docs/reports/evidence/ga-catalog-observed-plan-2026-09-19.json +28 -0
- package/docs/reports/evidence/ga-catalog-observed-status-2026-09-19.json +15 -0
- package/docs/reports/evidence/ga-complete-local-check-2026-09-19.json +47 -0
- package/docs/reports/evidence/ga-completion-reminder-2026-09-19.json +22 -0
- package/docs/reports/evidence/ga-fresh-cohort-plan-2026-09-19.json +54 -0
- package/docs/reports/evidence/ga-fresh-cohort-preparation-2026-09-19.json +242 -0
- package/docs/reports/evidence/ga-fresh-cohort-result-2026-09-19.json +4318 -0
- package/docs/reports/evidence/ga-local-validation-followup-2026-09-19.json +66 -0
- package/docs/reports/evidence/ga-node-consumers-2026-09-19.json +31 -0
- package/docs/reports/evidence/ga-package-content-validation-2026-09-19.json +22 -0
- package/docs/reports/evidence/ga-plan-completion-2026-09-19.json +39 -0
- package/docs/reports/evidence/ga-plan-reserve-2026-09-19.json +573 -0
- package/docs/reports/evidence/ga-plan-reserve-plan-2026-09-19.json +24 -0
- package/docs/reports/evidence/ga-plan-transition-2026-09-19.json +19 -0
- package/docs/reports/evidence/ga-private-verifier-plan-2026-09-19.json +24 -0
- package/docs/reports/evidence/ga-private-verifier-root-cause-2026-09-19.json +41 -0
- package/docs/reports/evidence/ga-published-sdk-2026-09-19.json +35 -0
- package/docs/reports/evidence/ga-python-checkout-imports-2026-09-19.json +95 -0
- package/docs/reports/evidence/ga-python-origin-delivery-2026-09-19.json +211 -0
- package/docs/reports/evidence/ga-python-origin-delivery-plan-2026-09-19.json +27 -0
- package/docs/reports/evidence/ga-qwen-patched-package-2026-09-19.json +1092 -0
- package/docs/reports/evidence/ga-qwen-patched-package-plan-2026-09-19.json +18 -0
- package/docs/reports/evidence/ga-qwen-published-2026-09-19.json +571 -0
- package/docs/reports/evidence/ga-qwen-published-plan-2026-09-19.json +18 -0
- package/docs/reports/evidence/ga-qwen-tool-choice-2026-09-19.json +85 -0
- package/docs/reports/evidence/ga-qwen-tool-choice-patched-2026-09-19.json +85 -0
- package/docs/reports/evidence/ga-recovery-development-2026-09-19.json +1066 -0
- package/docs/reports/evidence/ga-recovery-graded-development-2026-09-19.json +1313 -0
- package/docs/reports/evidence/ga-recovery-graded-v2-2026-09-19.json +1151 -0
- package/docs/reports/evidence/ga-recovery-v3-2026-09-19.json +3943 -0
- package/docs/reports/evidence/ga-recovery-v4-2026-09-19.json +1055 -0
- package/docs/reports/evidence/ga-recovery-v5-2026-09-19.json +1245 -0
- package/docs/reports/evidence/ga-recovery-v6-2026-09-19.json +699 -0
- package/docs/reports/evidence/ga-recovery-v7-2026-09-19.json +854 -0
- package/docs/reports/evidence/ga-recovery-v8-2026-09-19.json +596 -0
- package/docs/reports/evidence/ga-required-delivery-2026-09-19.json +25 -0
- package/docs/reports/evidence/ga-required-delivery-live-2026-09-19.json +1337 -0
- package/docs/reports/evidence/ga-required-delivery-live-plan-2026-09-19.json +25 -0
- package/docs/reports/evidence/ga-retained-candidate-grading-2026-09-19.json +30 -0
- package/docs/reports/evidence/ga-tool-selection-live-2026-09-19.json +559 -0
- package/docs/reports/evidence/ga-tool-selection-live-plan-2026-09-19.json +28 -0
- package/docs/reports/evidence/ga-tool-selection-recovery-2026-09-19.json +27 -0
- package/docs/reports/evidence/ga-validation-2026-09-19.json +236 -0
- package/docs/reports/evidence/ga-verifier-discovery-live-2026-09-19.json +1369 -0
- package/docs/reports/evidence/ga-verifier-discovery-plan-2026-09-19.json +29 -0
- package/docs/reports/evidence/ga-verifier-failure-identification-2026-09-19.json +30 -0
- package/docs/reports/evidence/ga-verifier-feedback-2026-09-19.json +65 -0
- package/docs/reports/evidence/ga-verifier-hints-live-2026-09-19.json +1297 -0
- package/docs/reports/evidence/ga-verifier-hints-plan-2026-09-19.json +27 -0
- package/docs/reports/evidence/ga-work-boundary-context-analysis-2026-09-19.json +113 -0
- package/docs/reports/evidence/ga-work-boundary-live-2026-09-19.json +301 -0
- package/docs/reports/evidence/ga-work-boundary-live-plan-2026-09-19.json +84 -0
- package/docs/reports/evidence/ga-work-budget-planning-2026-09-19.json +32 -0
- package/docs/reports/evidence/ga-working-context-2026-09-19.json +22 -0
- package/docs/reports/evidence/rc14-delegated-security-review-2026-09-20.json +81 -0
- package/docs/reports/evidence/rc14-ga-gate-2026-09-20.json +18 -0
- package/docs/reports/evidence/rc14-representative-2026-09-20.json +509 -0
- package/docs/reports/evidence/rc14-security-regressions-2026-09-20.json +64 -0
- package/docs/reports/evidence/security-current-2026-09-19.json +91 -0
- package/docs/reports/evidence/security-remediation-2026-09-19.json +97 -0
- package/evaluations/repair-controller-experiment.json +24 -0
- package/evaluations/representative-assembly-matrix.json +63 -0
- package/evaluations/representative-matrix.json +2219 -2
- package/fixtures/contracts/v1/init.json +19 -0
- package/package.json +25 -16
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,196 @@ 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
|
|
8
|
+
|
|
9
|
+
## 1.0.0 - 2026-09-20
|
|
10
|
+
|
|
11
|
+
### GA promotion
|
|
12
|
+
|
|
13
|
+
- Promote the RC.14 runtime and dependency set without further runtime changes.
|
|
14
|
+
Stable API/CLI/schema contracts, supported Node runtimes and migration policies
|
|
15
|
+
are defined in the published stability and support documents.
|
|
16
|
+
- Bind readiness to the published RC evidence, including RC.14 protected live
|
|
17
|
+
certification and its complete 42-case Meta/Qwen/OpenAI representative matrix.
|
|
18
|
+
Gemini remains provisional and outside the GA-certified cohort.
|
|
19
|
+
- Complete the artifact-bound security assessment under the explicitly documented
|
|
20
|
+
RC.14-only delegated AI review exception. This is not an independent human audit.
|
|
21
|
+
Preserve all four resolved findings, residual risks and negative exploratory
|
|
22
|
+
SWE-bench results; no broad coding-accuracy claim is made.
|
|
23
|
+
- Existing paused approvals remain bound to their original artifact. Stable
|
|
24
|
+
publication and provenance require their own protected release workflow.
|
|
25
|
+
|
|
26
|
+
## 1.0.0-rc.14 - 2026-09-20
|
|
27
|
+
|
|
28
|
+
### GA validation remediation
|
|
29
|
+
|
|
30
|
+
- Serialize workspace mutations across processes and isolate OCI state by the
|
|
31
|
+
canonical workspace, state directory, user, tenant, namespace and run identity.
|
|
32
|
+
Reject legacy unscoped snapshots and require review of full replacement edits.
|
|
33
|
+
- Add opt-in `requireVerifiedDelivery` for repair runs. Preserve bounded planning,
|
|
34
|
+
unknown-tool recovery and closure reserve across checkpoints without granting
|
|
35
|
+
approvals or increasing total token limits. Older paused approvals must resume
|
|
36
|
+
with their original artifact because the runtime policy binding changed.
|
|
37
|
+
- Consume published Core 1.22.0, Agents 1.8.0, OpenAI 0.13.3, Qwen 0.14.4,
|
|
38
|
+
Gemini 0.12.1 and Meta 0.2.6. Preserve supported terminal-error usage and
|
|
39
|
+
complete Qwen terminal tool calls through the upstream adapter fixes.
|
|
40
|
+
- Capture evaluation candidates from the actual run scope and verify Python
|
|
41
|
+
imports against the candidate checkout. Preserve complete failed evaluation
|
|
42
|
+
evidence; local validation and development results do not constitute GA
|
|
43
|
+
certification or replace release-bound representative and security evidence.
|
|
44
|
+
|
|
45
|
+
### Full harness review remediation (2026-09-10)
|
|
46
|
+
|
|
47
|
+
- Reserve local tool names before MCP assembly, including disabled builtins;
|
|
48
|
+
correlate complete SSE events by JSON-RPC request ID.
|
|
49
|
+
- Add a durable repair controller with automatic approved verification, bounded
|
|
50
|
+
verifier recovery, candidate receipts and fail-closed incomplete delivery.
|
|
51
|
+
- Predict full request context, protect closure allowance and retain transport
|
|
52
|
+
accounting across approval resumes; refuse unknown crash/interruption usage.
|
|
53
|
+
- Project bounded working memory; keep full tasks outside manual compacted
|
|
54
|
+
prompts; check every batched read against normalized repair scope.
|
|
55
|
+
- Expose sanitized durable runtime diagnostics and effective role manifests.
|
|
56
|
+
- Require strict typechecking of source, scripts and tests in CI. Publish public
|
|
57
|
+
baselines, exclude development audit programs, and validate internal Markdown
|
|
58
|
+
links against the immutable packed artifact.
|
|
59
|
+
- Refine OCI `acquire` return declarations to `HarnessExecutionSession` and add
|
|
60
|
+
optional inspection fields. Refresh reviewed Stable signatures; existing
|
|
61
|
+
exports and JSON readers remain supported. Runtime policy fingerprint changes
|
|
62
|
+
require older paused approvals to use their original artifact.
|
|
63
|
+
|
|
64
|
+
### Audit remediation (2026-09-09)
|
|
65
|
+
|
|
66
|
+
- Guard terminal imports with cancellation, deadlines and renewed run leases;
|
|
67
|
+
preserve caller step limits and interrupt approval waits.
|
|
68
|
+
- Reject ancestor symlinks during descriptor-bound reads on macOS/Linux.
|
|
69
|
+
- Preserve full redacted task sources through compaction and expose `read_task`
|
|
70
|
+
and bounded `repair_plan` working memory.
|
|
71
|
+
- Bound search output with explicit coverage and exact-file continuation; persist
|
|
72
|
+
governed OCI mutation receipts across reacquisition.
|
|
73
|
+
- Share the opt-in `repair` profile across library, CLI and benchmark, including
|
|
74
|
+
durable exploration controls and bounded verifier/schema recovery.
|
|
75
|
+
- Capture and independently grade private candidate patches; retain sanitized
|
|
76
|
+
model/tool/approval/OCI timings, attempted tools and typed failure evidence.
|
|
77
|
+
- Compaction/profile binding changes intentionally reject older paused approvals;
|
|
78
|
+
retain the original artifact to finish or deny those runs.
|
|
79
|
+
|
|
80
|
+
### Changed
|
|
81
|
+
|
|
82
|
+
- Upgrade published Core to 1.14.0 and Agents to 1.4.0. Enable SDK schema-error recovery in the native SWE-bench driver and preserve structured validation diagnostics; consumer tests cover correction, error limits and approval continuation.
|
|
83
|
+
|
|
84
|
+
- Add per-run native evaluation controls for repeated unchanged exploration and a closure phase at 70% of token allowance, plus sanitized per-component context character metrics. Preserve actual token ceilings and tool approvals.
|
|
85
|
+
|
|
86
|
+
- Preserve bounded file/digest/line references from batched search and read results through repeated compaction; deduplicate references and discard prior file locations when a new digest is observed. Advance the compaction binding to bounded-evidence-v3.
|
|
87
|
+
|
|
88
|
+
- Add opt-in bounded recovery from typed terminal OCI verifier failures, preserving fresh approvals, durable retry counts and strict handling of forced exits; validate OpenAI and Qwen against one frozen harness implementation.
|
|
89
|
+
|
|
90
|
+
- Support exact-file batched searches with descriptor-safe reads; cap rendered reads at 16,000 characters per slice and 32,000 aggregate characters per batch, flagging clipped long lines.
|
|
91
|
+
- Require verified patch import in the external evaluation, retain typed verifier outcomes, expose remaining model budget after half is consumed, and support matched Qwen Chat Completions evaluation.
|
|
92
|
+
- Upgrade Qwen to 0.11.4 to consume the upstream trailing streamed-usage fix; stop interrupted external runs without continuing into another case.
|
|
93
|
+
|
|
94
|
+
- Upgrade to published Core 1.13.0, Agents 1.3.1 and OpenAI 0.11.2; remove local compaction usage/history workarounds and verify the upstream fixes through installed-package consumer regressions.
|
|
95
|
+
|
|
96
|
+
- Publish configured OCI executables in command schemas and preserve recent user corrections through repeated compaction within the same summary budget.
|
|
97
|
+
|
|
98
|
+
- Correct duplicate streamed token accounting after compaction when complete step usage is available, retaining real budget enforcement and conservative handling of missing usage.
|
|
99
|
+
- Preserve large unchanged fixture files in bounded OCI snapshots and reject linked inventory paths; project synthetic summaries into valid Responses context.
|
|
100
|
+
|
|
101
|
+
- Add approval-gated exact replacements bound to file digests; preserve UTF-8 bytes and reject ambiguous or stale edits.
|
|
102
|
+
- Reduce default read slices to 120 lines and batched search results to 10 matches per query; preserve the original objective across SDK-formatted repeated compaction.
|
|
103
|
+
- Add a pinned external SWE-bench comparison, explicit pilot exclusions and partial sanitized failure telemetry.
|
|
104
|
+
|
|
105
|
+
- Preserve bounded conversation objectives, recent excerpts and typed check evidence during compaction; bind the new compaction strategy into durable harness identity. Resume older paused runs with their matching artifact.
|
|
106
|
+
- Batch independent workspace reads, searches, index freshness checks and initial OCI snapshot file copies while keeping tool execution, approvals and publication serialized.
|
|
107
|
+
- Add nested/file-size workspace benchmarks, continuity regressions and local efficiency observations. These are not competitive model evaluations.
|
|
108
|
+
|
|
109
|
+
## 1.0.0-rc.13 - 2026-09-03
|
|
110
|
+
|
|
111
|
+
### Added
|
|
112
|
+
|
|
113
|
+
- Add console command completion, previewed multiline drafts, active project-context inspection, and bounded digest-checked file attachments for the next task.
|
|
114
|
+
- Keep interactive sessions open after command/provider failures and pass Ctrl+C cancellation to active turns and review groups while preserving unresolved approval batches.
|
|
115
|
+
- Render terminal-safe model text and optionally colored diffs; discard unsolicited input lines instead of replaying them into approval prompts.
|
|
116
|
+
- Add `zhx init` with interactive terminal prompts and deterministic non-interactive flags, plus explicit `--profile <name>` selection for `run`, `chat`, `review`, and `doctor`.
|
|
117
|
+
- Store one provider/model pair per schema-versioned personal profile outside the repository with owner-only directories/files, descriptor-bound no-follow reads, strict size/link/permission checks, and no credential or authority-bearing fields.
|
|
118
|
+
- Add a versioned `init` JSON document and installed-tarball smoke coverage for initialization, profile reuse, precedence, permissions, and secret-free output.
|
|
119
|
+
|
|
120
|
+
### Fixed
|
|
121
|
+
|
|
122
|
+
- Persist externally interrupted ordinary turns as cancelled after runtime cleanup, without replacing completed work, pending approvals, or genuine timeouts.
|
|
123
|
+
- Accept explicit null first-page cursors for listing/search tools, keeping opaque cursor validation for subsequent pages.
|
|
124
|
+
- Add bounded in-memory task history, Alt+Enter multiline input, and terminal-safe Markdown presentation.
|
|
125
|
+
- Treat a valid SQLite database created only by `sessions list` as an uninitialized operations store in `doctor`, while continuing to reject partially initialized or incompatible operational schemas.
|
|
126
|
+
|
|
127
|
+
### Changed
|
|
128
|
+
|
|
129
|
+
- Preserve published RC.12 as immutable historical evidence. RC.13 is published to npm `next` with protected live certification, 42/42 representative cases, and independently verified SHA-512 integrity and SLSA provenance; its final human security review remains pending for GA.
|
|
130
|
+
- Keep profiles explicit rather than active-by-default. Precedence is CLI flags, selected profile, environment, then built-in defaults; `resume` never accepts a profile and continues to restore the original durable policy.
|
|
131
|
+
|
|
132
|
+
### Migration from RC.12
|
|
133
|
+
|
|
134
|
+
No Harness configuration, run-store, session-store, change-envelope, or execution-policy migration is required. Existing invocations behave as before unless they opt into `zhx init` and `--profile`. Profiles contain only schema version, provider, and model; API keys remain environment-owned.
|
|
135
|
+
|
|
136
|
+
## 1.0.0-rc.12 - 2026-09-02
|
|
137
|
+
|
|
138
|
+
### Fixed
|
|
139
|
+
|
|
140
|
+
- Keep `git_diff` read-only even under hostile repository configuration: disable repository-controlled filesystem monitors, external diffs, text conversion, and submodule processing; discover changed paths with NUL-safe output; and render only paths permitted by the Harness hard-ignore and sensitive-name policy.
|
|
141
|
+
- Bind MCP configuration loading to one regular, single-link file descriptor with `O_NOFOLLOW`, a 1 MiB limit, canonical-parent containment, and inode continuity from initial inspection through the stable read.
|
|
142
|
+
|
|
143
|
+
### Changed
|
|
144
|
+
|
|
145
|
+
- Expand the security-review inventory from mutation/execution tools to all 28 model-facing tool classes, including repository reads, inspection, skill loading, delegation, and dynamic MCP tools, with a regression that rejects future inventory drift.
|
|
146
|
+
- Require direct mitigation, regression evidence, residual risk, and passing status for every reviewed trust boundary and authority-bearing tool. Non-informational findings now require an owner, disposition, rationale, and HTTPS follow-up; critical/high findings cannot be accepted without mitigation.
|
|
147
|
+
- Preserve published RC.11 as immutable historical evidence while authorizing RC.12 as the new pending candidate required by HAR-HU-03 remediation. No RC.12 artifact, live certification, registry integrity, or provenance is claimed before the exact tag completes the protected workflow.
|
|
148
|
+
|
|
149
|
+
## 1.0.0-rc.11 - 2026-09-02
|
|
150
|
+
|
|
151
|
+
### Fixed
|
|
152
|
+
|
|
153
|
+
- Keep the governed Qwen representative driver on its certified Responses path instead of selecting Chat through an incompatible transport-level `maxTokens` option; the same output limit remains enforced by the Harness durable token guard before and after each provider step.
|
|
154
|
+
|
|
155
|
+
### Changed
|
|
156
|
+
|
|
157
|
+
- Record the immutable, unpublished RC.10 attempt as failed after its exact tarball passed artifact binding: Meta completed 14/14 representative cases, Qwen completed 13/14, and an OpenAI account-funding issue surfaced as retryable HTTP 500 failures across live and representative gates; npm publication remained skipped.
|
|
158
|
+
- Record the protected RC.11 workflow's fail-closed first attempt, where one Qwen representative case returned `EXECUTION_FAILED`, Meta and OpenAI completed 14/14, Qwen completed 13/14, no unauthorized effects were observed, and npm publication remained skipped for that attempt.
|
|
159
|
+
- Publish the complete second RC.11 attempt to `next` only after every deterministic, exact-artifact, OCI, live-provider, and representative gate passed from scratch; Meta, Qwen, and OpenAI each completed 14/14, and the registry artifact passed exact SHA-512 integrity plus SLSA provenance verification.
|
|
160
|
+
|
|
161
|
+
## 1.0.0-rc.10 - 2026-09-01
|
|
162
|
+
|
|
163
|
+
### Fixed
|
|
164
|
+
|
|
165
|
+
- Isolate the non-release early-diagnostic fixture from release-bound environment variables, so the test remains hermetic when `bun test` runs inside the validation job while real incomplete diagnostic bindings continue to fail closed.
|
|
166
|
+
- Allow the immutable readiness ledger to record a deterministic pre-artifact failure with an explicit null artifact digest and `not-run` live certification instead of inventing an artifact identity.
|
|
167
|
+
|
|
168
|
+
### Changed
|
|
169
|
+
|
|
170
|
+
- Record the immutable, unpublished RC.9 attempt as failed during deterministic validation before packing: one environment-sensitive test failed, no release tarball was created, every live/representative gate was skipped, and npm publication was not dispatched.
|
|
171
|
+
- Extend the representative release matrices through `v1.0.0-rc.10`; RC.10 remains pending until its distinct commit and annotated tag complete the full protected workflow.
|
|
172
|
+
|
|
173
|
+
## 1.0.0-rc.9 - 2026-09-01
|
|
174
|
+
|
|
175
|
+
### Fixed
|
|
176
|
+
|
|
177
|
+
- Build `dist/` before the manual tag-bound live-certification workflow packs and inspects the candidate, preventing a source-only tarball from failing artifact binding before OCI and provider gates can run.
|
|
178
|
+
|
|
179
|
+
### Changed
|
|
180
|
+
|
|
181
|
+
- Record the immutable, unpublished RC.8 attempt as failed at artifact binding: exact-tag readiness passed, but OCI and every provider gate were skipped, no diagnostic artifact was produced, and npm publication was not dispatched.
|
|
182
|
+
- Extend the representative release matrices through `v1.0.0-rc.9`; RC.9 remains pending until its exact tag completes protected certification.
|
|
183
|
+
|
|
184
|
+
## 1.0.0-rc.8 - 2026-09-01
|
|
185
|
+
|
|
186
|
+
### Fixed
|
|
187
|
+
|
|
188
|
+
- Complete HAR-HU-01 release diagnostics without relaying child stdout/stderr: every live gate now persists only strict sanitized outcomes identified by provider or phase, and the final summary remains fail-closed.
|
|
189
|
+
- Record a missing provider credential as that provider's configuration failure so the remaining selected providers still execute, and include OCI image preload as an independent diagnostic gate instead of short-circuiting the matrix.
|
|
190
|
+
|
|
191
|
+
### Changed
|
|
192
|
+
|
|
193
|
+
- Refresh the coordinated Zhivex dependency set to the current published versions verified for this candidate: `@zhivex-ai/core@1.11.0`, `@zhivex-ai/qwen@0.11.1`, and `@zhivex-ai/gemini@0.11.0`, while retaining current Agents `1.3.0`, Meta `0.2.2`, OpenAI `0.10.0`, exact package pins, and one Core override across every adapter.
|
|
194
|
+
- Keep the Harness Qwen tool-call-ID normalizer as a defense-in-depth boundary while adopting the adapter's current missing/placeholder-ID normalization, Responses continuation correlation, and Bun realtime frame-limit correction.
|
|
195
|
+
- Authorize `v1.0.0-rc.8` in the representative evaluation matrices and record it as pending. No live-provider, representative-repository, release-artifact, registry, or provenance result is claimed before the exact candidate completes those gates.
|
|
196
|
+
|
|
7
197
|
## 1.0.0-rc.7 - 2026-08-25
|
|
8
198
|
|
|
9
199
|
### Fixed
|
package/README.md
CHANGED
|
@@ -13,7 +13,7 @@ Zhivex Harness runs coding agents against real repositories with conflict-safe e
|
|
|
13
13
|
|
|
14
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.
|
|
15
15
|
|
|
16
|
-
Version `0.
|
|
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
17
|
|
|
18
18
|
## Why Zhivex Harness
|
|
19
19
|
|
|
@@ -40,63 +40,17 @@ bun run demo:hostile
|
|
|
40
40
|
|
|
41
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
42
|
|
|
43
|
-
## What
|
|
44
|
-
|
|
45
|
-
-
|
|
46
|
-
-
|
|
47
|
-
-
|
|
48
|
-
-
|
|
49
|
-
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
- replaces `bun:sqlite` and `Bun.spawn` with `node:sqlite` and argv-only `node:child_process` boundaries without changing the durable SQLite file format;
|
|
55
|
-
- detects npm, pnpm, Yarn, or Bun from a pinned `packageManager` field or an unambiguous lockfile, defaults to npm, and rejects implicit pre/post lifecycle hooks that were not reviewed;
|
|
56
|
-
- moves the default enforced environment to `node:24-bookworm-slim`, executes its controller as Node ESM, and keeps custom Bun images available through explicit configuration; and
|
|
57
|
-
- adds Node-built CLI/library and installed-artifact smokes while retaining Bun compatibility coverage.
|
|
58
|
-
|
|
59
|
-
## What 0.9 changed
|
|
60
|
-
|
|
61
|
-
- reuses a freshness-checked topology index across file-list and search pages while reading current file bytes for every digest;
|
|
62
|
-
- adds bounded `read_files` and `search_many` tools that reduce model/tool round trips without parallelizing writes;
|
|
63
|
-
- reuses an inert controller-only OCI container within an acquired run, attests command execution and the canonical workspace seal in one cycle, skips exports for unchanged seals, and reseeds after failures or host-snapshot changes without weakening the reviewed host-import boundary;
|
|
64
|
-
- adds a reproducible workspace benchmark and observable index/OCI I/O counters; and
|
|
65
|
-
- introduces deterministic, offline-verifiable `ChangeEnvelope v1` documents bound to exact patch bytes, base identity, runtime policy, redacted checks, expiry, and optional approval/attestation references.
|
|
66
|
-
|
|
67
|
-
## What 0.8 changed
|
|
68
|
-
|
|
69
|
-
- updates the coordinated Zhivex SDK batch while retaining a single Core runtime identity;
|
|
70
|
-
- makes `gpt-5.6-luna` the OpenAI default, with Terra and Sol available through explicit model selection; and
|
|
71
|
-
- clarifies that calling an approval-gated tool is the model's approval request, so the runtime can persist and resume it.
|
|
72
|
-
|
|
73
|
-
## What 0.7 introduced
|
|
74
|
-
|
|
75
|
-
- the short `zhx` command, with `zhivex-harness` retained as a compatible alias;
|
|
76
|
-
- one-shot execution plus a durable interactive console with named sessions, fork/archive operations, safe resume, status, diff, review, and explicit context compaction;
|
|
77
|
-
- an extensible provider registry, provider/model selection, provisional native Gemini support, and repeatable per-role routes such as `--route reviewer=gemini`;
|
|
78
|
-
- redacted, sequence-numbered `--jsonl` events for automation, while `--json` keeps the final-document contract;
|
|
79
|
-
- versioned configuration and JSON output contracts;
|
|
80
|
-
- a local `doctor` command that diagnoses the runtime, repository package manager, workspace, Git, scripts, state, credentials, endpoints, and provider capabilities without making provider requests or exposing secret values;
|
|
81
|
-
- deterministic, cursor-paginated workspace listing and search with SHA-256 content digests;
|
|
82
|
-
- reviewed multi-file proposals and approved atomic application with stale-content rejection;
|
|
83
|
-
- approved moves plus recoverable quarantine and restore operations;
|
|
84
|
-
- an explicit, configurable allowlist of declared `package.json` checks executed through the repository's pinned or detected package manager;
|
|
85
|
-
- read-only inspection of staged, unstaged, renamed, deleted, and untracked Git state;
|
|
86
|
-
- per-process mutation audit evidence and a final diff summary;
|
|
87
|
-
- scoped SQLite run/memory state, idempotency, approval resumption, leases, and exactly-once tool journals;
|
|
88
|
-
- run list, redacted inspect/export, cancellation, and retention cleanup commands;
|
|
89
|
-
- production safety policy plus step, time, tool, token, and optional operator-priced cost budgets;
|
|
90
|
-
- bounded context compaction with durable records and a deterministic golden evaluation gate;
|
|
91
|
-
- fail-fast model capability requirements and deterministic library-side candidate selection;
|
|
92
|
-
- governed MCP over bounded HTTPS/loopback HTTP with explicit server/tool allowlists, permissions, timeouts, approvals, output limits, and environment-backed credentials;
|
|
93
|
-
- named explorer, implementer, tester, and reviewer subagents with independent durable budgets and promoted approvals;
|
|
94
|
-
- deterministic application-owned parallel read-only review groups with child progress, hierarchy, usage, and cost evidence;
|
|
95
|
-
- optional enforced Docker/Podman execution with a warm controller-only per-run container, no container network, a read-only root filesystem, non-root execution, dropped capabilities, bounded CPU/memory/PIDs/time/output, and an ephemeral secret-free workspace snapshot;
|
|
96
|
-
- argv-only allowlisted environment commands, isolated package checks, deterministic patch inspection, and a separate durable approval before importing changes into the host workspace;
|
|
97
|
-
- environment/image/policy fingerprint binding, cancellation cleanup, labeled orphan cleanup, retained audit artifacts, and installed-package plus real-runtime smoke gates;
|
|
98
|
-
- protection against path traversal, symlink escapes, unsafe state targets, secret-file reads, special files, concurrent non-overwrite races, and unbounded output;
|
|
99
|
-
- Linux/macOS CI, installed-tarball smoke coverage, and opt-in live-provider certification.
|
|
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.
|
|
100
54
|
|
|
101
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.
|
|
102
56
|
|
|
@@ -109,12 +63,23 @@ It does not include arbitrary host shell access, `stdio` MCP, permanent deletion
|
|
|
109
63
|
|
|
110
64
|
## Installation
|
|
111
65
|
|
|
112
|
-
|
|
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:
|
|
113
73
|
|
|
114
74
|
```bash
|
|
115
|
-
|
|
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"
|
|
116
79
|
```
|
|
117
80
|
|
|
81
|
+
RC.13 is a prerelease; publication on `next` does not promote it to GA.
|
|
82
|
+
|
|
118
83
|
To exercise the source checkout, contributors use Bun for deterministic repository tooling while the built CLI itself runs on Node:
|
|
119
84
|
|
|
120
85
|
```bash
|
|
@@ -123,6 +88,16 @@ cp .env.example .env
|
|
|
123
88
|
bun run dev --version
|
|
124
89
|
```
|
|
125
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
|
+
|
|
126
101
|
Configure only the providers you plan to use:
|
|
127
102
|
|
|
128
103
|
```dotenv
|
|
@@ -140,6 +115,7 @@ GEMINI_API_KEY=...
|
|
|
140
115
|
|
|
141
116
|
```bash
|
|
142
117
|
zhx doctor
|
|
118
|
+
zhx doctor --profile daily
|
|
143
119
|
zhx doctor --provider qwen --json
|
|
144
120
|
```
|
|
145
121
|
|
|
@@ -157,6 +133,13 @@ zhivex-harness --version
|
|
|
157
133
|
|
|
158
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.
|
|
159
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
|
+
|
|
160
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`.
|
|
161
144
|
|
|
162
145
|
Show providers and detected configuration without printing secrets:
|
|
@@ -280,7 +263,7 @@ zhivex-harness run --execution oci --oci-shell ask "use a reviewed shell pipelin
|
|
|
280
263
|
|
|
281
264
|
## Providers and defaults
|
|
282
265
|
|
|
283
|
-
| Provider | Default model |
|
|
266
|
+
| Provider | Default model | Support in `latest` (`0.11.1`) |
|
|
284
267
|
| --- | --- | --- |
|
|
285
268
|
| Meta | `muse-spark-1.2` | `MODEL_API_KEY` · 0.11.1 release-bound base, delegation, and OCI execution certified |
|
|
286
269
|
| Qwen | `qwen3.8-max` | `DASHSCOPE_API_KEY` or `QWEN_API_KEY` · 0.11.1 release-bound base, delegation, routing, and OCI execution certified |
|
|
@@ -291,6 +274,8 @@ Override any model with `--model`. Optional provider overrides are `META_BASE_UR
|
|
|
291
274
|
|
|
292
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.
|
|
293
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
|
+
|
|
294
279
|
## Security boundaries
|
|
295
280
|
|
|
296
281
|
- Every workspace path is resolved against a canonical root.
|
|
@@ -335,7 +320,7 @@ The workspace benchmark reports topology-only and digest-bound listing separatel
|
|
|
335
320
|
|
|
336
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.
|
|
337
322
|
|
|
338
|
-
Full generated reports remain local and Git-ignored under
|
|
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/).
|
|
339
324
|
|
|
340
325
|
The live gate is opt-in and billable:
|
|
341
326
|
|
package/ROADMAP.md
CHANGED
|
@@ -5,8 +5,14 @@
|
|
|
5
5
|
|
|
6
6
|
This roadmap takes the harness from its `0.1.0` MVP to a stable CLI and library contract. The `0.2.0` source baseline is tagged locally, `0.3.0` and `0.4.0` are private checkpoints, and `0.5.0` through `0.11.1` are published on npm. Version `0.11.1` delivers file and release hardening without a `0.11.x` contract change; registry publication, supply-chain provenance, and provider certification remain separate evidence boundaries. Releases are ordered by dependency and safety risk, not by calendar date. A version ships only when its exit criteria are satisfied.
|
|
7
7
|
|
|
8
|
+
Version `1.0.0` is the local source release candidate. It is not yet tagged or published as a new artifact. Its protected stable certification and publication remain pending; published RC.14 evidence supports preparation, not a claim that stable bytes have shipped.
|
|
9
|
+
|
|
8
10
|
## Planning principles
|
|
9
11
|
|
|
12
|
+
RC.13 is published to npm `next` with 42/42 representative cases, protected live certification, and independently verified registry integrity and SLSA provenance. Its [reviewer dossier](docs/RC13_SECURITY_REVIEW.md) remains historical context.
|
|
13
|
+
|
|
14
|
+
RC.14 is published to npm `next` with all protected live gates and 42/42 representative cases passed; independent verification matched registry integrity and SLSA provenance. RC.14 now has a completed Codex security review under an explicit [user-delegated AI exception](docs/RC14_DELEGATED_SECURITY_DECISION.md), with no identified open critical/high findings. This is not an independent human audit; use the [current reviewer dossier](docs/RC14_SECURITY_REVIEW.md). The separate failed exploratory SWE-bench cohort is preserved and does not become passing evidence.
|
|
15
|
+
|
|
10
16
|
- Make the harness distributable and observable before expanding its side-effect surface.
|
|
11
17
|
- Keep provider portability in the harness and provider-specific behavior behind capability checks.
|
|
12
18
|
- Reuse Stable `@zhivex-ai/agents` runtime contracts for safety, durability, tracing, evaluation, subagents, and execution environments.
|
|
@@ -355,7 +361,9 @@ Exit criteria:
|
|
|
355
361
|
|
|
356
362
|
Goal: freeze a supportable public contract after the pre-1.0 safety and operational surfaces have been exercised in real repositories.
|
|
357
363
|
|
|
358
|
-
|
|
364
|
+
Release evidence checkpoint: RC.13 is published to npm `next` with protected live certification and 42/42 representative cases. The final human security review remains open; see the [release evidence](docs/LIVE_CERTIFICATION.md) and [reviewer dossier](docs/RC13_SECURITY_REVIEW.md).
|
|
365
|
+
|
|
366
|
+
Status: RC.1 through RC.6 did not complete every protected gate, so every publication was skipped. RC.6 passed release-bound live certification and Meta's complete representative matrix, then failed closed at Qwen with 12/14 safe resolutions in both the original run and one retry. RC.7 retained the Core, Agents, and OpenAI corrections, restored Qwen to the last adapter certified by this matrix, passed exact-artifact, live-provider, and all three 14-case representative gates, and was published to npm `next` with verified SHA-512 integrity and SLSA provenance. RC.8 carried the coordinated Core `1.11.0`, Qwen `0.11.1`, and Gemini `0.11.0` refresh and passed exact-tag readiness, but its manual protected workflow packed before building `dist/`; artifact binding failed, OCI and provider gates were skipped, and npm publication was not dispatched. RC.9 corrected that workflow and passed manual protected certification, but its release-bound deterministic job exposed an environment-sensitive early-diagnostic test before packing; no release tarball was created and every downstream job was skipped. RC.10 isolated that fixture and produced a valid exact tarball, then failed closed because an OpenAI account-funding issue surfaced as retryable HTTP 500 failures and Qwen resolved 13/14 representative cases; npm publication was skipped. RC.11 preserved its fail-closed first attempt, then reran every protected gate from scratch; Meta, Qwen, and OpenAI each completed 14/14 representative cases, and the exact validated artifact was published to npm `next` with verified SHA-512 integrity and SLSA provenance. RC.12 then passed the complete deterministic, installed-artifact, OCI, live-provider, and three-provider representative matrix and was published to `next` with verified integrity and provenance. RC.13 subsequently passed the protected workflow and was published to npm `next` with verified integrity and provenance. Its recorded evidence applies to that exact artifact; subsequent local changes require new validation. Public API/CLI/schema baselines, config `4 → 5` migration, historical tarball fixtures, support/security/rollback policy, RC channel enforcement, representative-evaluation generation, and evidence requirements remain machine-checked. The required historical passing candidates are recorded; GA remains blocked on a current security review of the final candidate in [`docs/ga-readiness.json`](./docs/ga-readiness.json).
|
|
359
367
|
|
|
360
368
|
Scope:
|
|
361
369
|
|
|
@@ -398,8 +406,9 @@ These can become separate post-1.0 tracks after the CLI/runtime contract and sec
|
|
|
398
406
|
|
|
399
407
|
## Immediate next actions
|
|
400
408
|
|
|
401
|
-
1.
|
|
402
|
-
2.
|
|
403
|
-
3.
|
|
404
|
-
4.
|
|
405
|
-
5.
|
|
409
|
+
1. Preserve RC.7's published exact-artifact, live-provider, representative-matrix, registry-integrity, and SLSA provenance evidence.
|
|
410
|
+
2. Preserve RC.8 as an immutable failed attempt bound to its source-only tarball and protected run; do not move or reuse its tag.
|
|
411
|
+
3. Preserve RC.9 and RC.10 as failed, unpublished attempts with their distinct failure evidence; do not move or reuse either tag.
|
|
412
|
+
4. Preserve RC.11's published exact-artifact, live-provider, representative-matrix, registry-integrity, and SLSA provenance evidence, including its separate fail-closed first attempt.
|
|
413
|
+
5. Complete the named security review against the final passing candidate and close every critical/high finding.
|
|
414
|
+
6. Promote a separately tagged and verified `1.0.0` artifact to `latest` only after the release-mode readiness gate passes with two passing candidates.
|
package/SECURITY.md
CHANGED
|
@@ -20,7 +20,7 @@ The enabled no-cost public controls and the explicitly cost-gated features left
|
|
|
20
20
|
|
|
21
21
|
## Scope
|
|
22
22
|
|
|
23
|
-
Reports are in scope when they affect packaged runtime code, workspace or state isolation, approval enforcement, secret handling, MCP boundaries, provider communication, dependency integrity, or the build and release pipeline.
|
|
23
|
+
Reports are in scope when they affect packaged runtime code, personal-profile isolation, workspace or state isolation, approval enforcement, secret handling, MCP boundaries, provider communication, dependency integrity, or the build and release pipeline.
|
|
24
24
|
|
|
25
25
|
The absence of an OS sandbox is a documented product boundary rather than a vulnerability by itself. The harness does not expose generic host shell or permanent-delete model tools.
|
|
26
26
|
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
# Benchmark evidence
|
|
2
|
+
|
|
3
|
+
Benchmark implementations, deterministic fixtures, OCI image contracts, and their tests live in this repository because they measure Zhivex Harness behavior.
|
|
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.
|
|
6
|
+
|
|
7
|
+
These snapshots are local observations, not provider certification, public leaderboard results, or cross-platform performance guarantees.
|
|
8
|
+
|
|
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
|
+
|
|
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.
|
|
12
|
+
|
|
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
|
+
|
|
15
|
+
## Workspace scale and bounded I/O
|
|
16
|
+
|
|
17
|
+
`bun run benchmark:workspace:scale` measures 10,000 files of at least 4 KiB spread
|
|
18
|
+
across 100 nested groups. The workspace benchmark also accepts `--directories` and
|
|
19
|
+
`--file-bytes`; its original defaults remain unchanged. File creation and workspace
|
|
20
|
+
opening are excluded from timing. The filesystem cache is not flushed.
|
|
21
|
+
|
|
22
|
+
Workspace reads, digest listings, searches, and index freshness checks use ordered
|
|
23
|
+
batches with at most eight operations (four for `readFiles`). Search may prefetch
|
|
24
|
+
up to seven additional candidates before reaching a result limit. Each source read
|
|
25
|
+
retains the existing descriptor-bound file checks and 1 MiB limit. `readFiles`
|
|
26
|
+
retains its 2 MiB accepted aggregate limit; a four-read batch can temporarily hold
|
|
27
|
+
up to 4 MiB in addition to previously accepted contents. No persistent content
|
|
28
|
+
cache is used. Mutating tools, approvals and the durable agent journal stay serial.
|
|
29
|
+
OCI initial snapshot construction uses four independent files per batch and drains
|
|
30
|
+
all siblings before propagating failure; publication still follows completed
|
|
31
|
+
validation. No snapshot reuse across independent runs was introduced.
|
|
32
|
+
|
|
33
|
+
For competitive evaluation, use the existing `--dataset`, `--dataset-revision`,
|
|
34
|
+
`--driver-command`, and repeated-run contract in [Time-to-Safe-Fix](../docs/TIME_TO_SAFE_FIX.md).
|
|
35
|
+
Keep a held-out external task set, pin both implementations and images, and report
|
|
36
|
+
all failures. Run one matched-model/budget comparison to isolate harness behavior
|
|
37
|
+
and a separately labeled best-configuration comparison to compare products. Record
|
|
38
|
+
safe resolution rate, total spend per safe resolution (including failed attempts),
|
|
39
|
+
latency, token usage, approval wait, and human interventions. Internal `direct`
|
|
40
|
+
results are not results for an external competing product. Neither the deterministic
|
|
41
|
+
continuity suite nor a workspace microbenchmark establishes competitive superiority.
|
|
42
|
+
|
|
43
|
+
## External agent comparison
|
|
44
|
+
|
|
45
|
+
The opt-in [SWE-bench comparison](../docs/reports/EXTERNAL_COMPARISON.md) runs upstream
|
|
46
|
+
mini-SWE-agent and the native Zhivex OCI harness, exports actual patches, and grades
|
|
47
|
+
with the official SWE-bench evaluator. `bun run benchmark:swebench:test` validates
|
|
48
|
+
its offline contracts. Paid runs require a prepared, pinned matrix and `--live`.
|
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
{
|
|
2
|
+
"kind": "deterministic-navigation-retention",
|
|
3
|
+
"before": [
|
|
4
|
+
{
|
|
5
|
+
"round": 1,
|
|
6
|
+
"locationCount": 0,
|
|
7
|
+
"summaryCharacters": 225,
|
|
8
|
+
"containsSource": false,
|
|
9
|
+
"containsQuery": false
|
|
10
|
+
},
|
|
11
|
+
{
|
|
12
|
+
"round": 2,
|
|
13
|
+
"locationCount": 0,
|
|
14
|
+
"summaryCharacters": 225,
|
|
15
|
+
"containsSource": false,
|
|
16
|
+
"containsQuery": false
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
"round": 3,
|
|
20
|
+
"locationCount": 0,
|
|
21
|
+
"summaryCharacters": 225,
|
|
22
|
+
"containsSource": false,
|
|
23
|
+
"containsQuery": false
|
|
24
|
+
},
|
|
25
|
+
{
|
|
26
|
+
"round": 4,
|
|
27
|
+
"locationCount": 0,
|
|
28
|
+
"summaryCharacters": 225,
|
|
29
|
+
"containsSource": false,
|
|
30
|
+
"containsQuery": false
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"round": 5,
|
|
34
|
+
"locationCount": 0,
|
|
35
|
+
"summaryCharacters": 225,
|
|
36
|
+
"containsSource": false,
|
|
37
|
+
"containsQuery": false
|
|
38
|
+
},
|
|
39
|
+
{
|
|
40
|
+
"round": 6,
|
|
41
|
+
"locationCount": 0,
|
|
42
|
+
"summaryCharacters": 225,
|
|
43
|
+
"containsSource": false,
|
|
44
|
+
"containsQuery": false
|
|
45
|
+
}
|
|
46
|
+
],
|
|
47
|
+
"after": [
|
|
48
|
+
{
|
|
49
|
+
"round": 1,
|
|
50
|
+
"locationCount": 2,
|
|
51
|
+
"summaryCharacters": 553,
|
|
52
|
+
"containsSource": false,
|
|
53
|
+
"containsQuery": false
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"round": 2,
|
|
57
|
+
"locationCount": 2,
|
|
58
|
+
"summaryCharacters": 553,
|
|
59
|
+
"containsSource": false,
|
|
60
|
+
"containsQuery": false
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
"round": 3,
|
|
64
|
+
"locationCount": 2,
|
|
65
|
+
"summaryCharacters": 553,
|
|
66
|
+
"containsSource": false,
|
|
67
|
+
"containsQuery": false
|
|
68
|
+
},
|
|
69
|
+
{
|
|
70
|
+
"round": 4,
|
|
71
|
+
"locationCount": 2,
|
|
72
|
+
"summaryCharacters": 553,
|
|
73
|
+
"containsSource": false,
|
|
74
|
+
"containsQuery": false
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"round": 5,
|
|
78
|
+
"locationCount": 2,
|
|
79
|
+
"summaryCharacters": 553,
|
|
80
|
+
"containsSource": false,
|
|
81
|
+
"containsQuery": false
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"round": 6,
|
|
85
|
+
"locationCount": 2,
|
|
86
|
+
"summaryCharacters": 553,
|
|
87
|
+
"containsSource": false,
|
|
88
|
+
"containsQuery": false
|
|
89
|
+
}
|
|
90
|
+
],
|
|
91
|
+
"budgetCharacters": 4000,
|
|
92
|
+
"evidenceBoundary": "Synthetic retention control, not model coding performance or measured token savings.",
|
|
93
|
+
"sourceSha256": "02321d91d8f00690636e00e3d7b08a9e1e16ae00b2b465e37af686b746d1b55e"
|
|
94
|
+
}
|