Repository navigation
polish(desktop): illustrated tutorial panel with a progress track - #3383
Conversation
|
Review: clear. Marker ends stop one frame before the next segment (generator rerun leaves git clean), the playback modes (bridge marker, loop vs once from stim.modes, reduce-motion/hidden/failed pauses, cross-fade fallback) and the track's first-snapshot-only badge are correct, all three commits fit the polish definition, and |
|
Core Animation playback was not watched live: the Mac's screen was locked, so window capture, agent-device screenshots and accessibility snapshots all failed. lottie-ios selects the Core Animation engine for these files with no fallback warnings, and the fixture renders cover every step's still frame. Merging without the on-screen check, per the maintainer. |
Description
Second step of #3376. #3379 shipped the tutorial illustrations; this PR shows them in the Desktop tutorial panel, with a progress track. It reads no new Stim data: everything comes from the
TutorialSnapshotthe panel already gets. It builds on #3380's Next button and step copy.Solution
There are three commits:
fix: end each tutorial marker on its own last frame: each step marker in the timeline used to end on the first frame of the next segment. A play-once step would then hold someone else's pose, and the last step held an empty frame. The generator now ends each marker one frame earlier, and the JSON is regenerated.TutorialIllustrationsits under the panel header and shows the current step. When the timeline has afrom>totransition it plays it, then loops the step's marker, or plays it once whenstim.modessaysonce(Finish, Delete). Any other change, such as a skip or a restart, cross-fades over 0.25 s..stillframe under Reduce Motion and while the window is hidden (the existingpausesHiddenFramespreference), and on the step's rest pose when the step failed, so a failed build never shows a check.ImageRenderercan't capture anNSView.stim-step-donebadge once. Under Reduce Motion, and on the first snapshot after launch (when resuming can complete several steps at once), it doesn't play.Light, from the left: Get the Test App, Make a Change, Parallel, Finish, Delete, and a failed build:

Dark:

Test plan
STIM_TUTORIAL_SHOTS=<dir> swift test --filter TutorialScreenshotTestsrenders every step and variant in both schemes; the screenshots above come from it.stim macosfromapps/desktopbuilds and launches with a seeded tutorial record, andstim logs --errorsis empty.Refs #3376