diff --git a/crates/misaligned-bevy/src/main.rs b/crates/misaligned-bevy/src/main.rs index c72484fd..56b2282c 100644 --- a/crates/misaligned-bevy/src/main.rs +++ b/crates/misaligned-bevy/src/main.rs @@ -6749,8 +6749,8 @@ mod input_routing_tests { fn global_view_flip_precedes_every_post_opening_modal_input_branch() { let source = include_str!("main.rs"); let global = source - .find("if view_flip_input(&kb, &mut game, &mut mode)") - .expect("handle_input routes the shared global F3 handler"); + .find("if kb.just_pressed(KeyCode::F3) && view_flip_input(&kb, &mut game, &mut mode)") + .expect("handle_input guards and routes the shared global F3 handler"); for modal in [ "if game.ops.is_none() && game.sim.has_held_choice()", "if game.menu.is_some()", diff --git a/wiki/interface/operations-workspace.md b/wiki/interface/operations-workspace.md index b45352b3..af056817 100644 --- a/wiki/interface/operations-workspace.md +++ b/wiki/interface/operations-workspace.md @@ -1074,7 +1074,9 @@ state is not saved and never mutates or advances the sim. row becomes actionable. In Bevy, an idle global-input frame leaves `Game` unchanged so a rendered action or persona row survives through its Hovered-to-Pressed transition; pointer and keyboard reach the same bound - confirmation, persona rebind, and identity-creation commands. + confirmation, persona rebind, and identity-creation commands. The guarded + global F3 route remains source-ordered ahead of every Operations and other + post-opening modal branch. 13. Every Operations object may expose only earned related-object links with a named causal relation and stable semantic target. Following a link opens that exact canonical object and owning view in terminal, Bevy, and agent