Skip to content

fix(desktop): declare no non-exempt encryption in Info.plist - #642

Open
JakubAnderwald wants to merge 1 commit into
mainfrom
fix/desktop-export-compliance
Open

JakubAnderwald wants to merge 1 commit into
mainfrom
fix/desktop-export-compliance

Conversation

@JakubAnderwald

@JakubAnderwald JakubAnderwald commented Sep 18, 2026

Copy link
Copy Markdown
Owner

Why

macOS TestFlight build 56 for #623 was uploaded and VALID, but no tester could see it. App Store Connect had it at Missing Compliance (usesNonExemptEncryption: null), so neither internal group got it.

Until now, fastlane answered the export-compliance question only after upload_to_testflight's processing wait. Build 56's lane hung inside that wait (the #641 incident), so compliance was never set. #641 now skips that wait, which would have left every future macOS build uncompliant.

Change

  • apps/desktop/macos/Drafto-macOS/Info.plist: ITSAppUsesNonExemptEncryption = false. Mobile already declares the same in apps/mobile/app.config.ts. The app only uses OS-provided HTTPS, which is exempt.
  • A test asserts the key is present, so removing it fails CI.

Build 56 itself was fixed by hand: compliance set to false via the App Store Connect API, and it's now In Beta Testing in Family and External users.

Tests

scripts suite 1692/1692, plutil -lint OK, pnpm lint and pnpm typecheck green.

Takes effect on the next desktop build from the primary-checkout fossil after this merges (source only, no reinstall).

Parity: desktop-only (the mobile equivalent already exists).

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Compliance

    • Declared that the macOS app uses only exempt encryption, supporting export compliance requirements.
  • Tests

    • Added automated verification to ensure the app’s export compliance declaration remains correctly configured.

Without ITSAppUsesNonExemptEncryption every macOS upload lands in App Store
Connect as "Missing Compliance" and no TestFlight group can see it. fastlane
used to set compliance after its processing wait, which the desktop lane now
skips (#641). Build 56 for #623 was valid but invisible because of this.
Mobile already declares the same in app.config.ts.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@vercel

vercel Bot commented Sep 18, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
drafto Ready Ready Preview Sep 18, 2026 8:10pm UTC

@coderabbitai

coderabbitai Bot commented Sep 18, 2026

Copy link
Copy Markdown

Review Change StackReview Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Advanced

Run ID: 670e26c2-8266-4e18-aa08-7a7fbfb84b51

📥 Commits

Reviewing files that changed from the base of the PR and between d2b0957 and 3a0077f.

📒 Files selected for processing (2)
  • apps/desktop/macos/Drafto-macOS/Info.plist
  • scripts/__tests__/post-release-notes-select.test.mjs

Included review availability: Your plan provides up to 1 included review per hour; 0 remain after this review.


📝 Walkthrough

Walkthrough

The macOS app declares exempt encryption use in its Info.plist. A test verifies that the declaration remains present and set to <false/>.

Changes

Desktop export compliance

Layer / File(s) Summary
Compliance declaration and validation
apps/desktop/macos/Drafto-macOS/Info.plist, scripts/__tests__/post-release-notes-select.test.mjs
The plist adds ITSAppUsesNonExemptEncryption with a value of <false/>. The test reads the plist and verifies this value.

Priority: ➖ Normal

Estimated code review effort: 1 (Trivial) | ~5 minutes

Change: Bug fix

Merge Risk: ⚪ Minimal · up to 3a007

The macOS app metadata declares exempt encryption use, and the release path preserves that declaration for both build configurations.

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Title check ✅ Passed The title clearly and concisely describes the main change: declaring that the macOS app uses no non-exempt encryption.
Description check ✅ Passed The description explains the problem, motivation, implementation, test coverage, and deployment impact. It uses "Why," "Change," and "Tests" instead of the template headings and omits the checklist, b…
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff. Analyzed 0 functions across 1…
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Commit to this branch
  • Create a new PR
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

This branch was successfully deployed

1 active deployment
Preview 3a0077f9 Deployed Sep 18, 2026 by vercel[bot]
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.

1 participant