Crisis BFT consensus protocol — Go PoC, Python recorder, and CrisisViz: a native macOS scrubbable curriculum visualizer (10 chapters, ~18 minutes at 1×, signed-speed slider with reverse playback).
Find a file
saymrwulf 715039bce2 Master-of-time controls: signed speed slider + chapter scrubber
The viewer is now in full control of time, like a film editor at a jog
wheel. Two new controls in the bottom Glass bar:

  - Speed slider, range −16…0…+16. Pull it left for reverse playback;
    sit at 0 to freeze. Speed change captures localTime at the OLD
    speed before applying the new one, so it doesn't retroactively
    rescale time already elapsed.
  - Chapter scrubber across the top of the bar. Drag to any point in
    the current chapter's continuous timeline (Ch01 ≈ 326 seconds at
    1×). Snaps to the resolved scene + offset under the playhead;
    isPlaying / speed are preserved across a scrub.

SceneEngine internals:

  - `localTime` is now clamped to [0, sceneDuration] so reverse play
    halts cleanly at scene boundaries (the auto-advance task picks up
    and crosses the boundary into the previous scene).
  - `startAutoAdvance` schedules the right side of the boundary based
    on the sign of speed. Crossing forward enters the next scene at
    t=0; crossing backward enters the previous scene at t=duration.
  - `setChapterPosition(_:)` resolves a chapter-global time into a
    (scene, localTime) pair and re-anchors. Used by the scrubber.
  - `currentChapterDuration` exposes the length the slider needs.

GlassControls rewrite:

  - Two-row layout: scrubber on top, transport + speed + dots + nav
    + settings on bottom.
  - The +/- discrete buttons are gone — speed is continuous.
  - Speed label color-codes direction (green forward / orange reverse
    / grey frozen) and shows ❚❚ 0× when stopped.
  - Wraps in a TimelineView so scrubber and label refresh at frame
    rate while paused or playing.

Bundled, harness still 55/55 invariants, 0 audit errors.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-06 22:50:11 +02:00
CrisisViz Master-of-time controls: signed speed slider + chapter scrubber 2026-05-06 22:50:11 +02:00
src/crisis Masterclass redesign: cast lifelines, narrative invariants, video harness 2026-05-06 19:11:36 +02:00
tests Initial implementation of the Crisis protocol (Richter, 2019) 2026-04-23 13:20:30 +02:00
.gitignore Add macOS .app bundle with native Dock icon and activation policy 2026-04-30 20:21:18 +02:00
Crisis.mirco-richter-2019.pdf Initial implementation of the Crisis protocol (Richter, 2019) 2026-04-23 13:20:30 +02:00
crisis_data.json Add JSON export pipeline + event recorder for visualization 2026-04-30 20:06:21 +02:00
pyproject.toml Initial implementation of the Crisis protocol (Richter, 2019) 2026-04-23 13:20:30 +02:00