Repository navigation
fix(steering): one outcome per model switch even if it later becomes ineligible - #331
Conversation
… rejection A model override that was already reported as applied could later be rejected when the switched-to model turned out to be ineligible, emitting a second contradictory Steered event for the same command. reject_model_override now reports whether the override had been announced so the rejection path skips the duplicate event, and a test covers the late-ineligibility case. Auto-committed-on: dragonfly Co-authored-by: Medulla <medulla@tinyhumans.ai>
Tiny Sweeper reviewTiny Sweeper reviewed this change across 6 lane(s) and found 0 active actionable finding(s). Detailed lane evidence and any incomplete work are listed below. State: Ready for maintainer review Review snapshot
Completeness: Complete What changedThe review could not produce a supported behavioral summary; inspect the cited changed surface and lane details below. FeaturesNone identified with supported citations. TestsNo supported feature-to-test mapping was produced. Test execution is not inferred. FindingsNo active actionable findings. Before mergeNone. Agent review detailscritique
security
tests
commits
description
e2e
Evidence and run details
|
|
Warning Review limit reached
This review includes 3 billable files and costs up to $0.75. Or wait 40 minutes for your next included review. View limit detailsLimit details: You’ve used all 2 included reviews currently available. Review configuration: ⚙️ Run configuration
📒 Files selected for processing (3)
Comment |
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
tinysweeper found nothing blocking. Approving.
$0.0065 · 133,067 in / 5,880 out · 14,728 cached (11%) · gpt-5.6-luna, glm-5.3-flash
critique: $0.0025 · 40,696 in / 2,845 out · 4,240 cached (10%) · gpt-5.6-luna
security: $0.0039 · 79,199 in / 1,527 out · 7,416 cached (9%) · gpt-5.6-luna
tests: $0.0000 · 5,003 in / 148 out · 1,536 cached (31%) · glm-5.3-flash
description: $0.0000 · 4,607 in / 116 out · 1,408 cached (31%) · glm-5.3-flash
This follow-up to #325 carries #325's last review fix. That fix was pushed after #325 merged, so it never reached main. It addresses the Codex P2 thread on #325.
Bug: a sticky
SwitchModelcould be reported asSteered { accepted: true }on one turn and then rejected on a later turn. That can happen when a statefulbefore_modelmiddleware adds a capability requirement mid-run. The result was a secondSteeredoutcome for one command.Fix:
SteeringHandle::reject_model_overridenow reports whether the switch was already announced. When it was,apply_steered_model_switchskipsSteered { accepted: false }and still emitsModelOverrideSkipped.Test:
a_switch_that_becomes_ineligible_after_being_reported_keeps_one_outcomeasserts the outcomes are exactly[true].Checks: the
model_switchandsteeringtests pass (64). Clippy (--all-features -D warnings) and fmt are clean.Co-authored-by: Medulla medulla@tinyhumans.ai