feat(ui): pause and resume a replay in the viewer shell

Closes #66 (closed).

  • Shell gains pause(), resume(), paused and offer_pause() (a Replay ▸ Pause/Resume menu, space bar).
  • Viz.view offers it when the run has replay_rows; a live run gets no menu.
  • resume() restarts the refresh only for a started shell and keeps the arrangement; start() keeps a pause.
  • Modules that reach into shell._timer (nav-pow-pol-pl _add_pause) can drop their copy once this is released.

Second commit: gate 10 failed on new advisories. The lockfile now has certifi 2026.10.19 (PYSEC-2026-4320) and pillow 13.0.0 (8 CVEs); the recording tests pass on pillow 13.

Merge request reports

Loading
Loading