81217381882debf66acff13acd26b04aabd277f6
realOneDriveSyncRoot was a hardcoded /Users/benjaminhippler/... literal. Now resolved via OneDriveLocator.syncRoots().first at runtime (MMD-named root still preferred, matching production); when no OneDrive sync root exists at all, prints "ONEDRIVE-SELFTEST SKIP no OneDrive sync root" and exits non-zero — never a false PASS. Adds two sub-steps to the same phase, both required by the BLOCKER fix's review: (1) rapid transport toggling (chooseTransport(.airDrop) immediately followed by chooseTransport(.oneDrive)) must still end with the watcher watching the OneDrive folder — proves the generation-guarded reconcile in SettingsView.swift really lets the last choice win. (2) relaunch simulation — OneDrive still persisted from sub-step 1, a FRESH model built via the exact same AppDelegate.makeLaunchModel() function real launch uses (now internal + an appSupportRoot override for this purpose, temp-rooted so this never touches the real ~/Library/Application Support/Shotdeck), bootstrapped, then a PDF marked up in place — the relaunched watcher must report it. This is the exact BLOCKER scenario the review flagged, proven end to end. Factored the ink-annotation and unmarked-PDF-writing code into addInkMark(to:)/writeUnmarkedRedlinePDF(to:) so both new sub-steps and the original markup check share it. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_012ZiTXPbPCSjzPVsfoweAbp
Redline
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/Redline.app
Description
macOS menu-bar app: hotkey region capture into a review PDF with PASS/FAIL boxes, AirDrop send, annotation-return tracking
962 KiB
Languages
Swift
95.2%
Shell
4.8%