Repository navigation
feat(ios): use AssemblyAI-owned identifiers and allow API keys in every build - #226
Merged
Merged
Conversation
Gets the iPhone app ready for TestFlight. - Bundle ids move from the dev.alex placeholders to com.assemblyai.blurt.ios (app, .keyboard, .core, .tests, .probe), the App Group to group.com.assemblyai.blurt.ios, and the term-pack type to com.assemblyai.blurt.terms. The Darwin notification names, log subsystem, queue labels and scripts follow. The Mac app keeps its dev.alex ids: changing them would orphan Sparkle updates and its granted Accessibility permission. - API-key entry is no longer debug-only. Sign in with AssemblyAI doesn't exist yet, so a TestFlight build had no way to add a key. The setup card and Settings now offer "Paste your key" and "Get a free key" in every build, as the Mac app does. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
nbisht-aai
approved these changes
Oct 14, 2026
App Review 5.1.2(i) requires clearly disclosing where personal data goes, third-party AI included, and getting explicit permission first. The listening window now won't open until the user agrees, in a sheet that names AssemblyAI, lists what is sent (the voice while dictating, the text before the cursor, recent dictations, key terms with contact names) and links the privacy policy. Every path to the microphone goes through startListening(), so one gate covers the button, the keyboard's blurt://start and in-app dictation. Consent is versioned (AIConsent): sending something new means a new version, and everyone is asked again. Settings' About section links the privacy policy too. The debug -BlurtStartListening flag grants consent, since scripted runs can't tap through the sheet. Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
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.
What & why
Gets the iPhone app ready for TestFlight.
dev.alexplaceholders tocom.assemblyai.blurt.ios(plus.keyboard,.core,.tests,.probe), the App Group togroup.com.assemblyai.blurt.ios, and the term-pack type tocom.assemblyai.blurt.terms. The Mac app keepsdev.alex.*: changing it would orphan Sparkle updates and its granted Accessibility permission.How it was tested
scripts/ios-check.sh: 131/131 tests pass,BlurtiOSCoreline coverage 96.75%, swiftlint analyze and periphery clean.Built and launched in the simulator as
com.assemblyai.blurt.ios.scripts/check.shfails only the engine coverage gate (87.64% vs the 88% floor); a cleanmainfails it identically. This PR doesn't touch the engine.I read AGENTS.md and this doesn't reintroduce anything deliberately removed
Docs updated (iOS README, DESIGN.md)
🤖 Generated with Claude Code