ci: establish four-target pinned daemon compatibility - #65
Conversation
Preserve advisory coverage and source/overlay guards. Require explicit ready immutable metadata and every companion target; keep the old pin unready until accepted downstream main is selected. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: Val Alexander <val@opencoven.ai>
|
The new four-target profile now has actual candidate execution, not just runner mocks: clean Threads The final receipt has Independent bounded review found no high-confidence introduced bug or substantive coverage omission. The old manifest still deliberately fails the new hosted job until normal downstream landing and fresh accepted-main pin selection. No required rule or stable pin changed. |
|
Engineering normal landing is complete. Select immutable daemon 226bfcc89ff6cad4bc9cc9618dad6fea970ecf58, tree db70ae955bc71bdf444889e5ffbe1723708f5203. Committed manifest and lock both pin core 0021fd2 (v0.2.0). OpenCoven/coven#1045, OpenCoven/coven#1044, OpenCoven/coven#1046 and OpenCoven/coven#1049 all landed normally under strict current-base PR protection; no bypass or integration-branch shortcut. Final CI 34784497791 passed attempt1. Actual native test merge64b6a9377061a3bd4e2f5534a5a5fdb1492f8eea has the identical accepted-main tree. All86 feature +7 default-profile manifests/JUnit were authenticated and inspected: exact native source/core pair, complete and passed, no local override. Artifacts10325664968 digest33027d0935b629c12b241cbb4d292513fcdb42e4a707da50e9bbcffa56d6a99c and10326311769 digestfc61494a451f6d1c523e6d400234a85dbce4a46640d4f1627de0e83785f2d755. Parent fresh current-Threads four-target wrapper/overlay proof is still required; manifests carry their documented generic single-target reproducer, not wrapper argv. Do not infer the current-Threads override from native Git-core receipts. Root886 actual deployed/unprovable history remains unresolved. Native uncertainty OpenCoven/coven#1047, OpenCoven/coven#1050 and OpenCoven/coven#1051 and the corpus attempt1 failure remain retained; green later runs are not causal repairs or a reliability-period claim. Final detailed landing dossier follows. |
Select protected-main 226bfcc8 and its committed core 0021fd2 after normal component landings. Require all four daemon targets; actual current-checkout acceptance still runs before activation. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Signed-off-by: Val Alexander <val@opencoven.ai>
There was a problem hiding this comment.
🟡 Changes recommended
Actionable findings remain in manifest validation, refusal receipts, and rollout documentation.
Get a fresh assessment by requesting another Copilot review.
Pull request overview
Establishes a pinned four-target daemon compatibility lane with provenance validation, workflow automation, and supporting documentation.
Changes:
- Adds compatibility manifest and dependency-pin validation.
- Extends execution and receipts for four targets.
- Adds workflow, tests, and Python/TOML prerequisite documentation.
File summaries
| File | Summary |
|---|---|
scripts/tests/daemon-compatibility.test.mjs |
Tests manifest and workflow validation. |
scripts/tests/daemon-canary.test.mjs |
Tests compatibility execution and drift handling. |
scripts/run-daemon-canary.mjs |
Runs suites and records provenance receipts. |
scripts/daemon-compatibility.mjs |
Validates compatibility metadata and dependency pins. |
scripts/agent-bootstrap.sh |
Checks the Python TOML prerequisite. |
e2e/compatibility.toml |
Records accepted revisions and targets. |
docs/testing/e2e-contract.md |
Documents the compatibility contract. |
CONTRIBUTING.md |
Documents prerequisites. |
.github/workflows/daemon-compatibility.yml |
Defines the pinned compatibility workflow. |
Review details
Suppressed comments (3)
e2e/compatibility.toml:18
- This manifest now marks the reviewed pin
ready, butdocs/strategy.md:148-155still says the old SHA remainsharness-requiredand that the dedicated pull-request lane is only to be proposed. That current delivery document contradicts this manifest and the new workflow; update it or explicitly mark the old text historical so the repository does not advertise the stale rollout state.
status = "ready"
scripts/daemon-compatibility.mjs:40
- Only
refis optional-chained here. If the manifest omits[downstream.coven.canary], evaluatingcoven.canary.schedulethrows a rawCannot read properties of undefinederror instead of the intended contract-specific rejection, making malformed compatibility metadata needlessly opaque.
if (coven.canary?.ref !== "main" || coven.canary.schedule !== "nightly" ||
coven.canary.blocking !== false) {
scripts/daemon-compatibility.mjs:28
- The first access is guarded with
coven?.repository, butcoven.packageandcoven.threads_dependency_manifestare not. A manifest without[downstream.coven]therefore emits a JavaScript property-access error rather thanunsupported compatibility manifest contract; guard the remaining fields consistently so malformed manifests get the documented rejection.
if (manifest.schema_version !== "opencoven.threads-compatibility/v1alpha1" ||
coven?.repository !== "OpenCoven/coven" || coven.package !== "coven-cli" ||
coven.threads_dependency_manifest !== "crates/coven-cli/Cargo.toml") {
- Files reviewed: 9/9 changed files
- Comments generated: 1
- Review effort level: Lite
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
| const suite = env.COVEN_THREADS_DAEMON_SUITE ?? "advisory"; | ||
| if (suite !== "advisory" && suite !== "compatibility") { | ||
| throw new Error("unknown daemon suite"); | ||
| } | ||
| if (suite === "compatibility" && !/^[0-9a-f]{40}$/.test(env.COVEN_REF ?? "")) { | ||
| throw new Error("compatibility requires an immutable full Coven commit SHA"); | ||
| } | ||
| const targets = suite === "compatibility" ? compatibilityTargets : ["threads_e2e"]; | ||
| const args = argsForTargets(targets); | ||
| Object.assign(receipt, { suite, test_targets: targets, command: ["cargo", ...args] }); |
Objective and current status
Establish the required four-target current-Threads daemon lane for #64 and
#31, including the remaining compatibility obligation in OpenCoven/coven#885.
Tracks
threads-bp5.7.Ready for normal protected landing: fresh accepted-main compatibility and
complete artifact inspection pass. OpenCoven/coven#1045, OpenCoven/coven#1044, OpenCoven/coven#1046, and
OpenCoven/coven#1049 have now normally landed. The selected daemon is
226bfcc89ff6cad4bc9cc9618dad6fea970ecf58, with committed core0021fd2662d0b82328371ee3a6957d645f776fda.This is an accepted main revision, not the earlier integration candidate.
The first draft retained
harness-requiredand the new hosted job correctlyrejected it before checkout (run
34777258225). That failure remains part ofthe rollout record; no fallback to mutable
mainwas used.Implemented surfaces
fix: fail closed on advisory Cargo overlay provenance drift #56 and fix: reject source drift in daemon observations #62. Preserve the default single-target advisory observer.
compatibilityexecution selectingthreads_e2e,threads_identity_invariants,threads_protected_intake, andthreads_terminal_recoveryin one locked clock-feature command.selected source/metadata target and retain the suite/command in the receipt.
mode. Reject malformed/duplicate TOML, unready or mutable pins, missing
companions, contract drift, and a mismatched committed daemon dependency.
Pinned daemon compatibilityworkflow withimmutable actions, unique attempt artifacts, no path filtering, no skipped
failures, and no scheduled mutable-main mode.
required-check activation, root acceptance, and human decisions.
Evidence
Nine new runner requirements failed against the old single-target behavior.
Fourteen manifest/workflow requirements failed before those surfaces existed.
The focused existing Node runner now passes 132 tests, including all prior
provenance regressions plus required-profile companion failure and post-test
source/config/lock/final-target drift.
Command:
The 132 tooling regressions pass again at selected-pin head
a1545cf.The original
f306e5cprofile also ran against real candidatee4c5b6fb:103 E2E, 44 identity, 38 protected, and 33 terminal tests passed in the exact
four-target command. All 111 E2E manifests/JUnit records were independently
inspected; companion execution is recorded in the wrapper argv and Cargo logs,
not misrepresented as 111 additional companion manifests.
Candidate results are not transferred to accepted main. Fresh Linux
required run 34786471550
passed on attempt 1: 104 / 44 / 38 / 33 actual target tests.
The actual PR merge execution is
56cd22ba3c0caba5c25051cad6ed324104edf676; its treecb2402ee004f0483bb570f5c989b905012864c59equals reviewed heada1545cf.Every one of 112 unique E2E manifest/JUnit pairs records that exact Threads
source, accepted daemon
226bfcc8, clean Threads and active local override.Companion execution is evidenced by the actual four-target wrapper and logs.
All eight identity packets, 42 actual census reports / 51 distinct typed
histories, and the 13 specifically required ordered normative closes were
independently inspected. These are synthetic histories, not deployed inventory.
Authenticated artifact
10326542438has SHA25617ffa42f5298ebf056e65f8d8a0d291b8f9c56883395131b2b339196eefe375c.The six normal core CI jobs also pass in
34786471616.Native accepted-main CI
34784497791separately passed on attempt 1 againstcommitted Git core; it is not relabelled as an override result.
No protected rule has changed yet.
Contracts and impact
Consulted the adopted governance/ownership guides, agent manifest, E2E contract,
compatibility manifest, existing observer/checkers/tests, contribution guide,
and the four-root source/evidence dossiers from OpenCoven/coven#1044,
OpenCoven/coven#1045, OpenCoven/coven#1046, and OpenCoven/coven#1049.
R4 CI/evidence change, not a runtime or audit-schema change. Synthetic fixtures
only; no new audit store, identity model, credential profile, migration,
deployment, or human acceptance. No third-party parser package is installed;
Python's existing standard-library TOML parser avoids an incomplete custom
parser. Bootstrap explicitly checks this prerequisite.
Rollout and rollback
The downstream contributions, accepted-main pin selection, new job, and raw
artifact acceptance are complete. After normal landing, add only this context to existing strict
protection, preserving all five previous contexts and other safeguards.
The scheduled latest-main observer stays advisory. Required compatibility
does not resolve missing deployed audit history or unprovable application in
OpenCoven/coven#886, establish live Cave acceptance, or erase the Windows
outlier tracked in OpenCoven/coven#1047.
Rollback must keep core checks and fail-closed behavior. If the new check
proves operationally unsuitable, record the exact failure and deliberately
reconcile its pin/workflow/rule; do not silently replace it with mutable main,
skip the failing target, or discard first-attempt evidence.