Skip to content

feat(ios): use AssemblyAI-owned identifiers and allow API keys in every build - #226

Merged
he-james merged 2 commits into
mainfrom
ios/org-owned-identifiers
Oct 14, 2026
Merged

he-james merged 2 commits into
mainfrom
ios/org-owned-identifiers

Conversation

@he-james

@he-james he-james commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

What & why

Gets the iPhone app ready for TestFlight.

  • AssemblyAI-owned identifiers. Bundle ids move from the dev.alex placeholders to com.assemblyai.blurt.ios (plus .keyboard, .core, .tests, .probe), the App Group to group.com.assemblyai.blurt.ios, and the term-pack type to com.assemblyai.blurt.terms. The Mac app keeps dev.alex.*: changing it would orphan Sparkle updates and its granted Accessibility permission.
  • API keys in every build. Sign in with AssemblyAI doesn't exist yet, so TestFlight builds had no way to add a key. The setup card and Settings now offer Paste your key and Get a free key in all builds, as the Mac app does.

How it was tested

  • scripts/ios-check.sh: 131/131 tests pass, BlurtiOSCore line coverage 96.75%, swiftlint analyze and periphery clean.

  • Built and launched in the simulator as com.assemblyai.blurt.ios.

  • scripts/check.sh fails only the engine coverage gate (87.64% vs the 88% floor); a clean main fails 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

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>
@he-james
he-james marked this pull request as ready for review October 2, 2026 22:40
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>
@he-james
he-james enabled auto-merge (squash) October 14, 2026 20:17
@he-james
he-james merged commit 3efe72c into main Oct 14, 2026
13 checks passed
@he-james
he-james deleted the ios/org-owned-identifiers branch October 14, 2026 20:37
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