Implements SPEC-A1a-foundation-spool.md WP-0b section (run shotdeck-20260830, rev 2). Foundation package — merges FIRST; WP-1/WP-5a branch after it.
What changed: Core/Support/AtomicFile.swift (tmp+fsync+rename+parent-dir-fsync, writeJSON sortedKeys/iso8601), Core/Support/Log.swift (os.Logger, subsystem ai.flowmaster.shotdeck), Core/Support/FolderSettings.swift (UserDefaults outbox/watch overrides, existence-checked fallback, AppSupportPaths factory), two test files, plus the coordinator-ruled one-line fix of the stale ⌥⇧1 string in ShotdeckError.swift.
Gates: builder ran swift build + swift test (builder claim); independent agy verification running against TEST-WP-0b before merge. Spec review REVIEW-GLM-A1a pending (concurrent lane).
Implements SPEC-A1a-foundation-spool.md WP-0b section (run shotdeck-20260830, rev 2). Foundation package — merges FIRST; WP-1/WP-5a branch after it.
What changed: `Core/Support/AtomicFile.swift` (tmp+fsync+rename+parent-dir-fsync, writeJSON sortedKeys/iso8601), `Core/Support/Log.swift` (os.Logger, subsystem ai.flowmaster.shotdeck), `Core/Support/FolderSettings.swift` (UserDefaults outbox/watch overrides, existence-checked fallback, AppSupportPaths factory), two test files, plus the coordinator-ruled one-line fix of the stale ⌥⇧1 string in `ShotdeckError.swift`.
Gates: builder ran swift build + swift test (builder claim); independent agy verification running against TEST-WP-0b before merge. Spec review REVIEW-GLM-A1a pending (concurrent lane).
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Implements SPEC-A1a-foundation-spool.md WP-0b section (run shotdeck-20260830, rev 2). Foundation package — merges FIRST; WP-1/WP-5a branch after it.
What changed:
Core/Support/AtomicFile.swift(tmp+fsync+rename+parent-dir-fsync, writeJSON sortedKeys/iso8601),Core/Support/Log.swift(os.Logger, subsystem ai.flowmaster.shotdeck),Core/Support/FolderSettings.swift(UserDefaults outbox/watch overrides, existence-checked fallback, AppSupportPaths factory), two test files, plus the coordinator-ruled one-line fix of the stale ⌥⇧1 string inShotdeckError.swift.Gates: builder ran swift build + swift test (builder claim); independent agy verification running against TEST-WP-0b before merge. Spec review REVIEW-GLM-A1a pending (concurrent lane).
🤖 Generated with Claude Code