Skip to content

Add shared Settings, menu and About code with a surfaces command - #26

Merged
AdamXweb merged 3 commits into
mainfrom
claude/mac-surfaces
Oct 6, 2026
Merged

AdamXweb merged 3 commits into
mainfrom
claude/mac-surfaces

Conversation

@adamXbot

@adamXbot adamXbot commented Oct 4, 2026

Copy link
Copy Markdown
Collaborator

Settings, the app menu and About are being moved onto one shared implementation. This brings that code into the repository and keeps it in step; it does not change any screen yet.

  • privacycommand/Sources/privacycommand/MacSurfaces: ten Swift files (Settings scaffold, About window, app and Help menu commands, popover header and footer, launch-at-login row, gated destructive buttons, Updates pane). The folder is added to the app target as a synchronized group, so files that later join or leave the copy need no project edit. All types are prefixed Surface, so nothing collides with existing code.
  • just surfaces refreshes the copy from the shared source when it is available on the machine, and otherwise verifies the committed files against .project/mac-surfaces.lock.json.
  • The privacycommand scheme runs the same step as a pre-action before each build. Xcode does not fail a build when a pre-action fails, so just check also verifies the copy and fails if it was edited here.
  • The minimum system version moves from macOS 13 to macOS 14, in the Xcode project, Package.swift, Info.plist and the README. The shared code uses APIs that start at 14.

Validation: just surfaces runs cleanly; the app builds unsigned with the new files compiled in, including the Sparkle conformance; just check passes.

Moving the app's own Settings and About onto these types is a separate change.

🤖 Generated with Claude Code

Vendor the shared macOS surface sources under
privacycommand/Sources/privacycommand/MacSurfaces with a lock of their
hashes, and compile the folder into the app as a synchronized group.
`just surfaces` refreshes the copy, a scheme pre-action runs the same step
before each build, and `just check` verifies the copy against its lock.

The shared code needs macOS 14, so the minimum moves from macOS 13 to 14.
Nothing in the app uses the new types yet.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Comment thread .project/mac_surfaces.py Fixed
Comment thread .project/mac_surfaces.py Fixed
Comment thread .project/mac_surfaces.py Fixed
CI and TestFlight or release builds now only verify the committed copy,
so a publication build never changes its own sources.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Comment thread .project/mac_surfaces.py Fixed
Version 8 tidies the vendored copy tool, .project/mac_surfaces.py, which
the code quality review flagged: sync no longer returns check()'s
always-None result, and the git lookup no longer ends in a bare
except/pass. Behaviour is unchanged. The copy also moves from version 3
to the current Swift sources (the in-app manual and Keyboard Shortcuts
windows among them), which the adoption PR stacked on this one already
builds against.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@AdamXweb
AdamXweb merged commit 469f819 into main Oct 6, 2026
7 checks passed
@AdamXweb
AdamXweb deleted the claude/mac-surfaces branch October 6, 2026 13:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants