a79a569a7d88cd11f3461a90d0454c1973e73197
30s/600s URLSession timeouts on the update session (was 15s/15s, too tight for a real zip download). Every staged and installed payload is now verified with the Security framework (SecStaticCodeCheckValidityWithErrors, strict + all architectures + nested code) against bundle id ai.flowmaster.shotdeck and an allowed-team set (PWMCBMX5M8, L3N9S54CN3; overridable via REDLINE_ALLOWED_TEAMS for the self-test only) — an unsigned or wrongly-signed update is discarded before checkNow ever offers it, and installStaged re-verifies what actually landed on disk as defense in depth. installStaged is now atomic: ditto into an itemReplacementDirectory, then FileManager.replaceItemAt swaps it into place, keeping exactly one Redline.app.previous rollback copy (older ones are dropped first). Added revertToPrevious(target:) to swap that copy back in (itself reversible — the replaced version becomes the new .previous), and previousVersion(target:) to read its CFBundleShortVersionString. Relaunch is now a detached "wait for this PID to exit, then open -n" shell handoff instead of a synchronous open+terminate, so there is never a moment with two instances running. checkNow(manual:) now says "Redline X is up to date." when the user asked directly, and exposes isCheckingNow/lastCheckedAt for the UI. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
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%