Repository navigation
Fix the three nightly/main reds: nfr roster row, live-read doc relink, compile-clean non-exhaustive match — and locate the compile-clean refusal - #6604
Merged
Conversation
…rge_cli_applied_knob_count one-special-variant dispatch (#6598 x #6586 stale-base interaction made main compile-red); floor compile-clean refusal now prints located hard diagnostics (it previously printed ok=false with zero located errors — this patch is what found the non-exhaustive match); nfr lens-precision note (field-scrutinee matches are lens-invisible, no roster row) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
briansrls
force-pushed
the
session/sleek-deer-172-mainred-nfr-orphan
branch
from
July 14, 2026 15:41
c64be18 to
4e0a1b4
Compare
Contributor
Author
|
Both REQUEST_CHANGES addressed by the force-pushed head 4e0a1b4: the flagged WIP commits were checkpointer auto-pushes of in-progress diagnostic scaffolding (the temp roster instrumentation, including the |
6 tasks
…2-mainred-nfr-orphan
…pattern_eq — coordination: silent-eagle-662's resolved audit, supersedes #6614) + dedupe the replace-all's second roster insertion Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
briansrls
force-pushed
the
session/sleek-deer-172-mainred-nfr-orphan
branch
from
July 14, 2026 15:51
90d9ba1 to
f5b54f8
Compare
briansrls
added a commit
that referenced
this pull request
Jul 14, 2026
The prior merge commit (19bc6f8) was auto-committed with raw <<<<<<</=======/>>>>>>> conflict markers still in cli_run.rs instead of a resolved file. Resolve to main's #6604 wording (functionally identical fix, now the single copy since #6604 already landed the diagnostic-printing + non-exhaustive-match fix upstream). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
6 tasks
This was referenced Jul 14, 2026
gunbai-bot Bot
pushed a commit
that referenced
this pull request
Jul 14, 2026
…ous kind-path check Two independent floor reds, both blocking the queue, fixed together per operator request (single PR): 1. Batch-1 compile-clean (non-exhaustive match): #6587 added the Srv3InstallDiagnosticObserve and OsInstallActuatorToolchainEnsure HostEffect variants but did not update converge_cli_applied_knob_count (dag/gunbc/fleet_converge_cli.dag). Its explicit-arm match (no wildcard — #6604's fail-closed design) correctly rejected them at compile-clean. Add both arms => fallback, consistent with all non-ConvergePlan siblings; the match now covers all 18 HostEffect variants. (SetHostnameCas already landed on main via #6625.) 2. Batch-2 roster witness (ci_floor_optin_roster_witnesses): witness_entry_kind_path_agree demanded ExecutionWitnessKind entries live under src/v2/test/claim/execution/, colliding with the operator's 5s-rule (>5s witnesses live under long/), where the Gate-1 keystones correctly live. The check is vacuous (DESIGN §5 second-representation): scheduling partitions by w.kind (entry_kind_is_execution), discovery is dir-gated, and witness_kind_wins_over_path already pins kind as authoritative. Delete the cluster (execution_corpus_scope_prefix + the two agreement fns) and its two live consumers (witness_live_roster_kind_path_agree, witness_projected_ci_entries_kind_stamped). Verified by execution: whole-tree compile-clean 0 diagnostics; ci_floor_optin_roster_witnesses, commit_workflow_span_kind_witnesses, commit_workflow_witnesses all green. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
briansrls
added a commit
that referenced
this pull request
Jul 14, 2026
…ous kind-path check (#6633) Two independent floor reds, both blocking the queue, fixed together per operator request (single PR): 1. Batch-1 compile-clean (non-exhaustive match): #6587 added the Srv3InstallDiagnosticObserve and OsInstallActuatorToolchainEnsure HostEffect variants but did not update converge_cli_applied_knob_count (dag/gunbc/fleet_converge_cli.dag). Its explicit-arm match (no wildcard — #6604's fail-closed design) correctly rejected them at compile-clean. Add both arms => fallback, consistent with all non-ConvergePlan siblings; the match now covers all 18 HostEffect variants. (SetHostnameCas already landed on main via #6625.) 2. Batch-2 roster witness (ci_floor_optin_roster_witnesses): witness_entry_kind_path_agree demanded ExecutionWitnessKind entries live under src/v2/test/claim/execution/, colliding with the operator's 5s-rule (>5s witnesses live under long/), where the Gate-1 keystones correctly live. The check is vacuous (DESIGN §5 second-representation): scheduling partitions by w.kind (entry_kind_is_execution), discovery is dir-gated, and witness_kind_wins_over_path already pins kind as authoritative. Delete the cluster (execution_corpus_scope_prefix + the two agreement fns) and its two live consumers (witness_live_roster_kind_path_agree, witness_projected_ci_entries_kind_stamped). Verified by execution: whole-tree compile-clean 0 diagnostics; ci_floor_optin_roster_witnesses, commit_workflow_span_kind_witnesses, commit_workflow_witnesses all green. Co-authored-by: Brian Searls <briansearls1@gmail.com> Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
briansrls
added a commit
that referenced
this pull request
Jul 14, 2026
…: ubuntu_install_media_fetch.dag (21 RawLines) + ubuntu_seeded_install_media_remaster.dag (39 RawLines) stop emitting shell ENTIRELY — replace ShellProgram/serialize_bash with in-process typed reconcile: observe(path) → Observation (#6596) * WIP: Shell→dag B1 (operator-signed 2026-07-14: in-process typed reconcile): u * WIP: Shell→dag B1 (operator-signed 2026-07-14: in-process typed reconcile): u * WIP: Shell→dag B1 (operator-signed 2026-07-14: in-process typed reconcile): u * Sha256Verify interface shape + §3 hash-split note + FLAG B1 SIGNED Splits sha256 verification into a DESIGN §3 shape (Sha256Verify(path, expected_digest) -> Sha256VerifyVerdict, cited to the SHA-256 algorithm authority) realized by sha256sum_verify_via_shell, ONE shell-CLI transport handler — a future native/library digest realization slots in as another handler, not a rewrite. install_media_hash_matches now calls the shape instead of assembling the sha256sum checksum-file transport detail itself. Adds a one-line §3 convergence note distinguishing this cryptographic SHA-256 digest check from std.content_hash's internal fnv1a64 structural fingerprint, so the two are not later wrongly unified. Marks census FLAG B1 (docs/plans/shell-to-dag-residual-census-and-arc-completion.md) SIGNED: the ISO fetch/remaster sites are a typed target, not a permanent ShellPayloadRequired bootstrap roster entry, and records both files as landed/dissolved. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * WIP: Shell→dag B1 (operator-signed 2026-07-14: in-process typed reconcile): u * Fix CI: split real-shell-effect witnesses out of hermetic discovery srv3_install_media_fetch_witness_test.dag / srv3_seeded_install_media_witness_test.dag gained real shell.Mktemp.Dir/Filesystem.Write/shell.Remove.RecursiveForce witnesses in the shell->dag B1 rewrite. CI's default Hermetic discovery corpus swept them in (the affected-set flip) and refused with "no mock_response for operation Dir" since shell.dag's non-Exec operations have no mock_response block. Move the four real-execution test fns into dedicated srv3_install_media_fetch_real_execution_witness_test.dag / srv3_seeded_install_media_real_execution_witness_test.dag files, excluded from hermetic discovery and re-enrolled as declared Wet entries in gunbc.ci_layer_roots.bin_witness_wet_entries (the precedented lane for real-effect witnesses the hermetic envelope refuses by construction). The parent files' pure classification witnesses keep full hermetic per-PR discovery. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * WIP: Shell→dag B1 (operator-signed 2026-07-14: in-process typed reconcile): u * Fix review findings: typed refusals for move/verify-infra failures, drop predicate dissolution Addresses cursor/composer-2.5 REQUEST_CHANGES on PR #6596 (DESIGN §5/§6): - install_media_fetch_try_mirror no longer silently returns none on a post-verify shell.Move.File failure (previously mislabeled downstream as "all mirrors unreachable"); it now short-circuits the mirror fold with a typed MoveFailureRefusal/VerifyInfraFailureRefusal reason. - observe_install_media_fetch and install_media_fetch_reconcile now match Sha256VerifyVerdict's InfraFailure variant directly instead of going through the install_media_hash_matches Bool predicate, so a genuine digest mismatch stays distinguishable from mktemp/checksum-write infrastructure failure. - install_media_hash_matches is retained only as a test-fixture convenience (no longer used in the production reconcile path). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * WIP: Shell→dag B1 (operator-signed 2026-07-14: in-process typed reconcile): u * WIP: Shell→dag B1 (operator-signed 2026-07-14: in-process typed reconcile): u * WIP: Shell→dag B1 (operator-signed 2026-07-14: in-process typed reconcile): u * Fix stale script-resolution assertions + address cursor review finding on install_media_hash_matches - srv3_host_effect_apply_witness_test.dag: Srv3InstallMediaFetch/Srv3SeededInstallMediaRemaster now route through TypedReconcileOnHost (host_effect_realize.dag) and srv3_host_effect_script_for correctly returns Absent for them; update the mechanical-variants and sibling-resolve witnesses accordingly, add witness_typed_reconcile_effects_script_for_absent as the routing-fact witness. - ubuntu_install_media_fetch.dag: delete install_media_hash_matches (Bool-collapsing predicate dissolution flagged by cursor review on PR #6596); its two wet witnesses now assert on observe_install_media_fetch's Sha256VerifyVerdict-derived outcome directly. - srv3_seeded_install_media_real_execution_witness_test.dag: import srv3_seeded_install_media_artifact directly from its defining module instead of transitively through gunbc.srv3_seeded_install_media (fixes an undefined-variable diagnostic surfaced by a full --target dag compile). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * WIP: Shell→dag B1 (operator-signed 2026-07-14: in-process typed reconcile): u * Fix roster-size baseline arithmetic (cursor review, PR #6596) medium_structure_exception_roster_size_baseline was set to 56 after removing 3 entries from a 62-entry roster (62-3=59, not 56) - an arithmetic slip that would have gone red on the ratchet witness. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * Fix conflict markers left by auto-committed merge of origin/main The prior merge commit (19bc6f8) was auto-committed with raw <<<<<<</=======/>>>>>>> conflict markers still in cli_run.rs instead of a resolved file. Resolve to main's #6604 wording (functionally identical fix, now the single copy since #6604 already landed the diagnostic-printing + non-exhaustive-match fix upstream). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * WIP: Shell→dag B1 (operator-signed 2026-07-14: in-process typed reconcile): u * Fail-closed TypedReconcileOnHost on non-LocalShell transport (cursor review, PR #6596) realize_srv3_typed_reconcile ran the in-process fetch/remaster reconcile regardless of transport, so a caller passing SshShell/EmitArtifactThenThinRun silently executed locally (an IsFile observation against the executor's own host) instead of refusing - a fail-open, unlike the sibling ConvergeOnHost path which already refuses SshShell. Threaded transport through and refuse fail-closed on anything but LocalShell, matching the operator-signed B1 LocalShell intent. Added witness_srv3_typed_reconcile_ssh_transport_refuses_typed as a discriminating red control: confirmed it fails (silent IsFile mock-miss) against the pre-fix code and passes against the fix. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * WIP: Shell→dag B1 (operator-signed 2026-07-14: in-process typed reconcile): u * Fix compile break: escape literal braces in remaster refusal-shape doc The doc string embedded literal InfraFailure{reason} syntax, which the .dag string interpolator reads as an interpolation of an undefined variable reason, breaking compile-clean. Escape the braces, and wire the new doc-content witness into the aggregate scaffolds_dissolved test so it actually runs. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * Fix conflict markers left by auto-committed merge of origin/main The merge of origin/main (b3b05f0) was auto-committed with 3 of 5 conflict-marker blocks in host_effect_realize.dag still unresolved (TypedReconcileOnHost vs HostnameOnHost cell arms). Both sides add independent, non-conflicting match arms/cells; keep both. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * Discard unused mirror-fold terminal value (nit, cursor review PR #6596) Present { value: v } bound v but never used it (acc is returned as-is once a terminal outcome is reached); use _ per convention. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> * WIP: Shell→dag B1 (operator-signed 2026-07-14: in-process typed reconcile): u * Fix duplicate/mis-nested match arms left by merge conflict resolution in resolve_host_effect_cell The prior merge-conflict resolution left a duplicated tail of match arms (Srv3InstallReconcileObserve..SetHostnameCas) sitting outside the closing brace of the exhaustive `match effect {...}` inside the HostOs/Absent arm, so they were parsed as extra arms of the outer `match srv3_host_effect_script_for(...)` (a String? match) instead — producing "variant X not found in type String" across 13 HostEffect variants and breaking dag_compile_clean_gate_passes in CI. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> --------- Co-authored-by: Brian Searls <briansrls@gunb.ai> Co-authored-by: Claude Sonnet 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What — main-red repair, three reds + one observability fix (scope grew as the reds were pulled; each documented below)
non_fold_residue_clean_holds(nightly red 1) — the shell→dag slices landedorch_emit_let_stepwith a top-level_ =>onExpr(one special-cased variant, uniform spelling path for the rest). Dated roster row per the established backfill pattern; burns down with the orchestration-emit fold migration. Masking receipt Remove LLM response caching module #9 (corpus-read witness predict-skipped on the landing PR).doc_graph_has_no_orphan_docs(nightly red 2) —live-read-witness-classification-design.mdhas only non-bind:inline.dagmentions → zero doc-graph roots. The original fix lost a merge race (Post-sweep cleanups: re-home spice pair under test/claim/ (first EX-row relocation dissolution); fix runner roster paths; link orphaned design docs #6564 squash-merged 5h before the fix commit reached its branch). Re-landed: linked fromaffected-set-precompute-pruning.md.dag_compile_clean_gate_passes(found when this PR's own CI ran) — main is compile-red: Shell→dag: wire the gunbc converge CLI receiver — stage0 Subcommand gains converge --host <h>, dispatching to the landed converge_apply/ConvergePlan in-process interpreter (#6572) with typed receipts on the byte-locked receipt grammar; green by EXECUTION on a fixture host + discriminating RED (unkno #6598 enumeratedHostEffect's then-3 variants inconverge_cli_applied_knob_count; Shell→dag P5a: the 7 MECHANICAL srv3 tail files → typed observe/effect rows on host_effect_apply (their dissolution triggers already name this destination; receipt echoes → typed receipts); do NOT delete gunbc.shell_bash_runner.shell_exec_via_bash yet (P5b owns that deletion once no caller remains); #6586 grew the type to 15 on an independent base — green alone, red together (the stale-base interaction class the HELD merge-freshness gate exists for). Fix: the fn asks one question (ConvergePlan knob count, else fallback) → one-special-variant dispatch, not 14 cloned arms. The nfr lens scans param-scrutinee matches only, so this field-scrutinee site is lens-invisible — recorded as a lens-precision note in the roster comment, deliberately no row (a row would be stale; verified by execution).floor_compile_clean_emit_okreturned a bare bool; CI printedreceipt ok=falsewith zero located errors. It now calls the existingeprint_compile_clean_hard_diagnosticshelper (§5: a refusal is typed AND located). Receipt: this patch is what found red 3 — before it, the non-exhaustive-match diagnosis was log archaeology. The earlier checkpointer-pushed WIP commits (temp roster instrumentation, since removed) are squashed away; the surviving diff is the two-line diagnostics call + the empty-emit disclosure.Verification (by execution, this tree)
non_fold_residue_clean_holds→ PASS (zero unrostered, zero stale — the temp instrumentation that proved it is not in the diff)doc_graph_has_no_orphan_docs→ PASS both treesclaim_executorfloor batch 1 →compile-clean receipt ok=true, PASSdag_compile_clean_gate_passesregen_stage0 --verify→regen_divergence_count=0With this, main returns to zero known corpus reds; the next nightly is the clean M1-confirmation candidate.
🤖 Generated with Claude Code