50bf9ac74a
The Flow Debugger trace arm was recorded when a traced write was ISSUED, not when the DCL acknowledged it. A write the device rejected (or that timed out) left the arm standing for the whole TraceArmWindowSeconds (30 s), so the next unrelated subscription update on that attribute was stamped with the debugger's execution id and spawned a traced, parented run — the debugger drew a "device echo" of a write that never landed. The write's continuation runs off the actor's dispatcher, so it cannot touch _traceArms directly; it Tells self a new DisarmTrace message instead, handled in a Receive<>. The disarm is keyed on the writer's execution id, so a late failure cannot steal an arm a newer traced write has since taken. Claude-Session: https://claude.ai/code/session_01NcMG6xXdsJbmD2wYAgkK29