kua-agentandClaude Fable 5 517a4e4fdc fix: load persisted capture region at launch; REGION-PERSIST selftest phase
Ben-reported: picker opened on every activation. AppModel.init set region = nil and never
read UserDefaults back; saving worked, every launch forgot it. init now loads via
loadPersistedRegion() (decode + isStillValid). Selftest phase 2 writes a known region,
reloads through the same path, asserts the rect, restores the user's stored value.
Coordinator ran it: PICKER-SELFTEST PASS + REGION-PERSIST PASS, 90/90 tests green.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-09-01 22:20:40 +04:00

Shotdeck

A macOS menu-bar app that captures a remembered screen region, builds a one-screenshot-per-page PDF, AirDrops it to an iPad for markup, then watches for the annotated file to come back.

Hotkeys

  • ⌥⇧1 — pick a new region, then capture it.
  • ⌥⇧2 — capture the remembered region instantly (no picker).

Screen Recording permission

On first launch macOS asks once for Screen Recording. Grant it at System Settings > Privacy & Security > Screen Recording. You never have to do this again as long as the app is not re-signed with a different identity.

The grant is bound to the bundle identifier ai.flowmaster.shotdeck plus the code signature. Changing either one forces a fresh prompt.

Build

swift build && swift test
./scripts/build-app.sh          # signed .app for daily use
open .build/Shotdeck.app
S
Description
macOS menu-bar app: hotkey region capture into a review PDF with PASS/FAIL boxes, AirDrop send, annotation-return tracking
Readme
962 KiB
Languages
Swift 95.2%
Shell 4.8%