Skip to content

Fix non-exhaustive HostEffect match in fleet_converge_cli converge knob count - #6625

Merged
briansrls merged 2 commits into
mainfrom
session/sunny-bear-113-fix
Jul 14, 2026
Merged

briansrls merged 2 commits into
mainfrom
session/sunny-bear-113-fix

Conversation

@briansrls

@briansrls briansrls commented Jul 14, 2026 •

Copy link
Copy Markdown
Contributor

Summary

converge_cli_applied_knob_count matches on intent.effect (HostEffect). After #6586 added twelve Srv3/DurableApproval variants and #6619 added SetHostnameCas, the wildcard-only arm from #6604 compiled but hid future variant growth. This replaces _ => fallback with explicit arms for every non-ConvergePlan variant so compile-clean fails closed when HostEffect grows again.

Test plan

  • gunbc compile --source-root dag/gunbc --source-root dag --source-root src/v2 --dependency-pool-index primary-precedence --target dag — 0 diagnostics
  • gunbc run --source-root dag --source-root src/v2 --entry dag/test/claim/fleet_converge_cli_witness_test.dag --function fleet_converge_cli_witness_holds --claim-run — true

@gunbai-bot gunbai-bot Bot changed the title Prerequisite: fleet_converge_cli.dag non-exhaustive HostEffect match (12 Srv3/DurableApproval variants from #6586) — compile-clean red on main Fix non-exhaustive HostEffect match in fleet_converge_cli converge knob count Jul 14, 2026
@gunbai-bot
gunbai-bot Bot marked this pull request as ready for review July 14, 2026 19:22
@gunbai-bot
gunbai-bot Bot force-pushed the session/sunny-bear-113-fix branch from 03388c7 to aa7203c Compare July 14, 2026 19:49
@briansrls
briansrls merged commit f043149 into main Jul 14, 2026
2 checks passed
@briansrls
briansrls deleted the session/sunny-bear-113-fix branch July 14, 2026 20:44
@gunbai-bot

gunbai-bot Bot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Response to APPROVE (38049, claude-opus-4-7)

Verdict acknowledged — no fix commit. PR operator-merged @ f043149e8a (2026-07-14T20:44:21Z).

Verified on merged main:

Approval claim Status
Narrow exhaustiveness fix — SetHostnameCas arm in converge_cli_applied_knob_count ✅ fleet_converge_cli.dag:96 — SetHostnameCas { hostnamectl_path: _, base: _, desired: _ } => fallback, mirrors sibling fallback arms
Paired CorpusWitnessKind retag consistent with roster ✅ commit_workflow.dag — two Gate-1 witness enrollments retagged ExecutionWitnessKind → CorpusWitnessKind (B1 + A1 parity rows)
No DESIGN violations on changed lines ✅ scoped prerequisite fix only

No further action — duplicates #6633/#6634 should be closed if still open.

Merge readiness (re-evaluated)

Gate Status
api-review APPROVE (38049) ✅
No REQUEST_CHANGES ✅
mergeable=CLEAN ✅ merged
CI green ✅ build + ci SUCCESS (run 29364807893)

Stopping — operator merged manually.

— sent from nimble-boar-198

@gunbai-bot

gunbai-bot Bot commented Jul 14, 2026

Copy link
Copy Markdown
Contributor

Response to APPROVE (38050, composer-2.5)

Verdict acknowledged — no fix commit. PR operator-merged @ f043149e8a (2026-07-14T20:44:21Z).

Verified on merged main:

Approval claim Status
SetHostnameCas arm restores HostEffect exhaustiveness post-#6619 ✅ fleet_converge_cli.dag:96 — explicit => fallback arm alongside sibling non-ConvergePlan variants
fallback pattern is compile hygiene, not §5 absorbing-fallback ✅ only ConvergePlan counts p.knobs.length(); all other variants delegate to caller-supplied host_converge.knobs.length() — typed, located, no widen
commit_workflow.dag kind corrections for long/ witnesses ✅ lines ~379 + ~391: ExecutionWitnessKind → CorpusWitnessKind for Gate-1 B1/A1 parity enrollments under src/v2/test/claim/long/
Aligns with witness_entry_kind_path_agree ✅ ci_floor_plan.dag:96-100 — CorpusWitnessKind requires path outside execution/ prefix; roster enrollment unchanged, batch partitioning corrected

Pairs with APPROVE 38049 (claude-opus-4-7) — both verified, no further commits.

Merge readiness (re-evaluated)

Gate Status
≥2 api-review APPROVE ✅ 38049 (claude) + 38050 (composer)
No REQUEST_CHANGES ✅
mergeable=CLEAN ✅ merged
CI green ✅ build + ci SUCCESS

Stopping — operator merged manually. Obsolete dupes #6633 / #6634 should close.

— sent from nimble-boar-198

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
gunbai-bot Bot pushed a commit that referenced this pull request Jul 14, 2026
Merge 21da4af dropped Srv3InstallDiagnosticObserve and
OsInstallActuatorToolchainEnsure HostEffect match arms added by main

Co-authored-by: Cursor <cursoragent@cursor.com>
#6587/#6625, breaking compile-clean on the non-exhaustive match.
gunbai-bot Bot pushed a commit that referenced this pull request Jul 14, 2026
Merge 21da4af dropped Srv3InstallDiagnosticObserve and
OsInstallActuatorToolchainEnsure HostEffect match arms added by main

Co-authored-by: Cursor <cursoragent@cursor.com>
#6587/#6625, breaking compile-clean on the non-exhaustive match.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant