Skip to content

v0.26.0

Choose a tag to compare

@github-actions github-actions released this 01 Jul 16:53
· 1731 commits to main since this release

Added

  • Time Travel for Remote_Source nodes. Extracted Consumer's time-travel transport into a shared Time_Travel trait (seek/step/pause/play, the frames+cursor read surface, snapshot/line-mode, and the six console verbs) and wired it into Remote_Source_Node, so the topology console's Time Travel panel renders for remote sources: SEEK_FRAME reconnects the SSE pull from the frame's offset and PAUSE/PLAY stop/resume it. STEP is a documented no-op for a push-driven source (nothing to single-step). Consumer was refactored onto the same trait with no behavior change. The offsetlog checkpoint/commit machinery both nodes had duplicated — the OFFSETLOG_SEGMENT_SIZE/OFFSETLOG_NUM_SEGMENTS geometry, the checkpoint_seg/checkpoint_off/last_checkpoint bookkeeping, and the near-identical frame writer (write_checkpoint_frame vs commit_position) — is now normalized into a single Time_Travel::commit_checkpoint_frame() primitive, with each node contributing only its own frame fields via a checkpoint_frame_extra() hook (Consumer: name/target/…/cache; Remote_Source: _ts/dlq). The per-tick throttle and the advance-guard are likewise shared (checkpoint_due() / cursor_moved_since_checkpoint()), which also fixes an idle Remote_Source re-committing the same {seg,off} every interval — with segment_size=1 that had spammed a duplicate keyframe per interval and cluttered the Time Travel ruler.

Fixed

  • RemoteLink's dashboard counter now aggregates from its SseIn child instead of showing the pass-through link's own zero — matching how bytesRead/largestMsgSent already delegate. counter moved behind a get/set accessor (a pass-through link's own increment is a no-op), and dumpNode now surfaces getter-backed accessors under their public names.