Repository navigation
os_install_actuator_selection: match on the optional .first() (latent T? == T exposed by #13179) - #13536
Merged
Conversation
… of T? == T (exposed by #13179 EqualityOptionalityMismatch) Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
…al-eq # Conflicts: # dag/gunbc/os_install_actuator_selection.dag
gunbai-bot Bot
pushed a commit
that referenced
this pull request
Oct 8, 2026
…reading onto the typed SystemdRunCommand #13257 typed the enrolment-code verb (enrolment_code_issue_remote_command -> SystemdRunCommandReading, sudo_elevate_words, Ready/Refused arms). Kept that shape whole and added only D2's facts: - enrolment_code_issue_remote_command takes base_url and adds the APPROVAL_BROKER_BASE_URL EnvSet; - enrolment_code_issue_remote takes host + base_url; ssh target is enrolment_code_issue_ssh_target(host); - refuses_off_srv1 replaced by D2's enrolment_code_issue_refuses_off_broker_host (placement-derived); - witness: main's typed the_remote_verb_words_carry_the_release_shape gains the base_url word; D2's placed-host claim replaces the srv1 pin claim. fleet-converge.yml regenerated (generated_artifact_gate main_wet_one) = main + D2 host-neutral step names. Co-Authored-By: Claude Opus 5.5 (1M context) <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.
#13179 (EqualityOptionalityMismatch) made the checker refuse
T? == T. Five sites on main were never migrated and are latent: any floor subject that reachesgunbc.os_install_actuator_selectionrefuses them (they surfaced on #13217's floor).gunbc.os_install_actuator_selection, thesrv3_os_install_actuator_host_selected_because_requirements_and_policytie-break arm:order.first() == operator_host_srv1test.claim.os_install_actuator_selection:os_install_actuator_requirements_dispatch_through_kind_rows(2 sites) andsrv3_actuator_host_selected_because_requirements_and_policy(2 sites)The fix matches on the optional. It does not use
== Present { value: .. }, even though the diagnostic offers that remedy first. Executed,opt == Present { value: X }evaluates false whenoptisPresent { value: X }. The same claim written asmatch opt { Present { value: X } => true _ => false }passes. Per-conjunct probes at thePresentvariant (claim_batch, seed evaluator):zz_a1(kinds.first() == Present { value: BmcNetworkReach }) FAIL;zz_c1(match on the same optional) PASS. The production predicatesrv3_os_install_actuator_host_selected_because_requirements_and_policyalso went false under it. So thePresentremedy would have compiled clean and silently flipped a production decision. That evaluator defect is reported for separate routing; this PR does not touch it.Receipt: executed claims at e35849b
Remote run: claim_batch at a 22 GiB cgroup bind, peak 12.9 GiB.
Mutant: the expected first kind is swapped to
ActuatorToolchainGrant, andos_install_actuator_requirements_dispatch_through_kind_rowsFAILs. A second mutant meant to swap the srv1/srv2 order did not change the file, because its pattern missed, so it discriminates nothing and I am not counting it.🤖 Generated with Claude Code