feat(distribution): add Developer ID and App Store build paths#30
Merged
Conversation
Advances Issues #24 and #29 with a local Developer ID notarization path, a sandboxed App Store configuration, privacy manifest, structural CI preflight, persisted Inbox and output access, and distribution documentation.\n\nMoves the process-backed PCC adapter into a research-only package target so the shipping GUI uses public Foundation Models APIs.
Adds every required macOS app-icon rendition, keeps the artwork reproducible from the in-app wizard-hat geometry, and extends the App Store preflight to assert the compiled 512pt @2x rendition.
Implements the App Store content handoff for Issue #29.\n\nAdds:\n- listing, review, privacy, and submission copy\n- genuine opaque screenshots and icon preflight evidence\n- public support and privacy pages\n- explicit owner decisions and release blockers
Implements the local-only Mac App Store provider policy for Issue #29. Adds: - Apple on-device and loopback-only Ollama Store routes - Store-specific UI and runtime enforcement with an archive marker - focused policy coverage and updated privacy and listing evidence
Records build 0.1.0 (2) as validated, uploaded, processed, and selected in App Store Connect. Updates the remaining submission gates to preserve owner control over privacy, pricing, declarations, and App Review submission.
tcballard
added a commit
that referenced
this pull request
Jul 22, 2026
Reconciles the launch pack with merged PR #30 and selected local-only build 0.1.0 (2). Records verified public links, uploaded assets, saved review metadata, the README channel, and the remaining owner-controlled submission gates.
tcballard
added a commit
that referenced
this pull request
Jul 22, 2026
* docs(readme): sharpen local-first front door [issue:#29] Lead with the plain-language filing workflow, the Store build's local-only provider boundary, and a genuine product screenshot. Remove the obsolete above-the-fold warning while retaining detailed distribution caveats in their channel-specific sections. * docs(release): refresh App Store launch evidence [issue:#29] Reconciles the launch pack with merged PR #30 and selected local-only build 0.1.0 (2). Records verified public links, uploaded assets, saved review metadata, the README channel, and the remaining owner-controlled submission gates. * docs(readme): adopt candid builder voice [issue:#29] Rewrites the full README in a direct builder-operator voice while preserving verified behavior, commands, safety boundaries, evaluation evidence, and channel-specific release status. Makes the user workflow scannable, distinguishes the local-only Store build from source distribution, and keeps limitations visible without leading with a warning. * fix(release): stabilize Store policy preflight [issue:#29] Avoid a pipefail false negative when grep exits after finding a policy string and closes the strings pipeline early. Capture binary strings once, then run the forbidden-path and required-policy assertions against the completed output.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Implements the repository groundwork for Issues #24 and #29.
Adds:
Scope
Included
Excluded
Product / Architecture Decisions
User-Facing Contract
CLI
No command syntax changes. The CLI retains the research PCC adapter when explicitly configured.
Human Output
Settings now reports when filed-output access must be repaired. Choosing the folder again renews the persisted grant.
JSON Output
No JSON contract changes.
Exit Codes
0: release/preflight verification completed successfully2: local release version input is missing or invalid3: the required Developer ID identity is unavailableVerification
Ran
swift build --disable-sandboxswift test --disable-sandbox --filter bookmarkStore./script/preflight_app_store.shBUILD_CONFIGURATION=Debug ./script/build_and_run.sh packagebash -n script/preflight_app_store.sh script/release_local.shplutil -lintagainst the new Store configuration filesgit diff --checkCovered
/usr/bin/fmpath from the Store GUI binaryThe full local suite also ran: 68 tests passed and three existing synthetic OCR fixture tests hit the known macOS 27 beta
TextRecognition.CRImageReaderError. The focused new tests and archive preflight pass; GitHub CI on its supported macOS runner is the clean-suite authority.Review Path
Review the package-target boundary first, then Store configuration and entitlements, folder bookmark lifecycle, verification scripts, CI, and distribution documentation.
Notes For Reviewer
Sources/SortingHatApp/Stores/HatStore.swiftandscript/preflight_app_store.shdeserve extra attention. This PR advances both milestones but intentionally does not close them: Issue #24 still requires repository credentials and a real notarized release, while Issue #29 still requires Apple Distribution assets, App Store Connect setup, upload, and installed TestFlight/App Store verification.