Timeline: the freshness defect, frame by frame

Every timestamp is read from frames[].timeline in the run's own frames.json, generated by innexis-vsi (commit b4aafc9). Nothing on this page is recomputed.
Amber band: the collection window. Solid right edge = the processor logged an incomplete close (observed). Dashed edge = only the configured limit exists; the true close was never logged and is not guessed. Red B dot: this fragment arrived after the window's observed close. Command dot colour: the frame's content verdict (green ok, amber degraded, red stale), same palette as the flow animations. Handover dot colour: green in time, red late against the 18 ms deadline, the same field the flow pages colour arrivals from.

baseline-2t

Every frame this run judged (frame 4's command exists but its RF emission falls after the run ends, so it has no verdict and is not shown; see the full animation).
Frame 0 degraded in time
TargetScenarioReceiverVendorAReceiverVendorBRuggedizedSwitchMissionProcessorTransmitterCommunicationArrayclosed (observed)18 ms deadline20 ms perioddetectA sentA arrivesB frag 0B frag 1B frag 0B frag 1commandhandoverRF emitcaptured (own poll)
Frame 1 stale in time
TargetScenarioReceiverVendorAReceiverVendorBRuggedizedSwitchMissionProcessorTransmitterCommunicationArrayclosed (observed)18 ms deadline20 ms perioddetectA sentA arrivesB frag 0B frag 1B frag 0B frag 1command (B from frame 0)handoverRF emitcaptured (own poll)
Frame 2 stale in time
TargetScenarioReceiverVendorAReceiverVendorBRuggedizedSwitchMissionProcessorTransmitterCommunicationArrayclosed (observed)18 ms deadline20 ms perioddetectA sentA arrivesB frag 0B frag 1B frag 0B frag 1command (B from frame 1)handoverRF emitcaptured (own poll)
Frame 3 stale in time
TargetScenarioReceiverVendorAReceiverVendorBRuggedizedSwitchMissionProcessorTransmitterCommunicationArrayclosed (observed)18 ms deadline20 ms perioddetectA sentA arrivesB frag 0B frag 1B frag 0B frag 1command (B from frame 2)handoverRF emitcaptured (own poll)

fix1-window-2t

Every frame this run judged (frame 4's command exists but its RF emission falls after the run ends, so it has no verdict and is not shown; see the full animation).
Frame 0 ok in time
TargetScenarioReceiverVendorAReceiverVendorBRuggedizedSwitchMissionProcessorTransmitterCommunicationArraylimit (configured)18 ms deadline20 ms perioddetectA sentA arrivesB frag 0B frag 1B frag 0B frag 1commandhandoverRF emitcaptured (own poll)
Frame 1 ok in time
TargetScenarioReceiverVendorAReceiverVendorBRuggedizedSwitchMissionProcessorTransmitterCommunicationArraylimit (configured)18 ms deadline20 ms perioddetectA sentA arrivesB frag 0B frag 1B frag 0B frag 1commandhandoverRF emitcaptured (own poll)
Frame 2 ok in time
TargetScenarioReceiverVendorAReceiverVendorBRuggedizedSwitchMissionProcessorTransmitterCommunicationArraylimit (configured)18 ms deadline20 ms perioddetectA sentA arrivesB frag 0B frag 1B frag 0B frag 1commandhandoverRF emitcaptured (own poll)
Frame 3 ok in time
TargetScenarioReceiverVendorAReceiverVendorBRuggedizedSwitchMissionProcessorTransmitterCommunicationArraylimit (configured)18 ms deadline20 ms perioddetectA sentA arrivesB frag 0B frag 1B frag 0B frag 1commandhandoverRF emitcaptured (own poll)

fix1-window-4t

Every frame this run judged (frame 4's command exists but its RF emission falls after the run ends, so it has no verdict and is not shown; see the full animation).
Frame 0 ok LATE (18,100 us)
TargetScenarioReceiverVendorAReceiverVendorBRuggedizedSwitchMissionProcessorTransmitterCommunicationArraylimit (configured)18 ms deadline20 ms perioddetectA sentA arrivesB frag 0B frag 1B frag 2B frag 3B frag 0B frag 1B frag 2B frag 3commandhandoverRF emitcaptured (own poll)
Frame 1 ok LATE (18,900 us)
TargetScenarioReceiverVendorAReceiverVendorBRuggedizedSwitchMissionProcessorTransmitterCommunicationArraylimit (configured)18 ms deadline20 ms perioddetectA sentA arrivesB frag 0B frag 1B frag 2B frag 3B frag 0B frag 1B frag 2B frag 3commandhandoverRF emitcaptured (own poll)
Frame 2 ok LATE (18,800 us)
TargetScenarioReceiverVendorAReceiverVendorBRuggedizedSwitchMissionProcessorTransmitterCommunicationArraylimit (configured)18 ms deadline20 ms perioddetectA sentA arrivesB frag 0B frag 1B frag 2B frag 3B frag 0B frag 1B frag 2B frag 3commandhandoverRF emitcaptured (own poll)
Frame 3 ok LATE (18,700 us)
TargetScenarioReceiverVendorAReceiverVendorBRuggedizedSwitchMissionProcessorTransmitterCommunicationArraylimit (configured)18 ms deadline20 ms perioddetectA sentA arrivesB frag 0B frag 1B frag 2B frag 3B frag 0B frag 1B frag 2B frag 3commandhandoverRF emitcaptured (own poll)
Two clocks on this page measure different things, and only one is the deadline. "handover" (Transmitter) is when the command is actually ready, and is what the 18 ms line and every dot's colour are computed from. "captured (own poll)" (CommunicationArray) is the array's own roughly-fixed ~100 us polling cadence, which stays near 20 ms on every run regardless of the fix. A separate checker on this same data once measured the deadline from THAT clock instead and failed a run that met its deadline by 9.4 ms. This page draws both, and colours only from the one that is the actual measure.

RuggedizedSwitch has no dot. Nothing in the sidecar times the switch's own forwarding; the connector from sent to arrived is drawn crossing that lane rather than inventing a timestamp for a step nobody logged.

Generated by make_timeline_page.py from runs/*/frames.json in innexis-vsi/demo-hwsw. See also the baseline-vs-fix comparison, which isolates the fix from the load, the message flow, WHO talks to whom laid out by causal order, and the physical topology, what is wired to what; this page is the same three runs read for WHEN each event happened rather than any of those.