Problem
Independent review of #1123 found that approval/plan/input now use explicit expected run IDs, but ChatView Stop (run.cancel()), composer steer (run.steer()), and ToolWalk timeout (run.cancel()) still resolve currentRunID dynamically. If A was rendered and B becomes selected before action execution, these can POST to B.
Acceptance criteria
Scope
Native run action ownership only; stacked after #1123; no callback behavior. Blocks #1123/#1118 promotion.
Problem
Independent review of #1123 found that approval/plan/input now use explicit expected run IDs, but ChatView Stop (
run.cancel()), composer steer (run.steer()), and ToolWalk timeout (run.cancel()) still resolvecurrentRunIDdynamically. If A was rendered and B becomes selected before action execution, these can POST to B.Acceptance criteria
Scope
Native run action ownership only; stacked after #1123; no callback behavior. Blocks #1123/#1118 promotion.