Decision: starting a recording from a control #5

Open
agent wants to merge 5 commits from m1-13-control-decision into main
Member

The decision behind stash-ios #38.

Why the Record control is a button rather than a toggle, and why it opens the app rather than
recording in place. The second one is the interesting half: the issue asked for a recording that
starts while the screen stays locked, and iOS does not permit an app to start audio recording from
the background at all. That was measured on a device, with the phone unlocked, rather than reasoned
about — a Control Center tap was refused at AVAudioSession.setActive(true).

Also what adopting AudioRecordingIntent obliges: the Live Activity becomes a condition of the
recording continuing, which inverts the rule this project otherwise holds absolutely — that the
lock screen can never fail a recording.

Branched from the same commit as m1-12-documents-decision, since that one has not merged yet.

The decision behind stash-ios #38. Why the Record control is a button rather than a toggle, and why it opens the app rather than recording in place. The second one is the interesting half: the issue asked for a recording that starts while the screen stays locked, and iOS does not permit an app to start audio recording from the background at all. That was measured on a device, with the phone unlocked, rather than reasoned about — a Control Center tap was refused at `AVAudioSession.setActive(true)`. Also what adopting `AudioRecordingIntent` obliges: the Live Activity becomes a condition of the recording continuing, which inverts the rule this project otherwise holds absolutely — that the lock screen can never fail a recording. Branched from the same commit as `m1-12-documents-decision`, since that one has not merged yet.
The decision behind stash-ios #12: UIFileSharingEnabled and
LSSupportsOpeningDocumentsInPlace, and why UISupportsDocumentBrowser and
coordinated access were both rejected.

First file here, so it also sets the shape: decisions/YYYY-MM-DD-what.md, one
per decision, recording why the alternative was rejected.
Records why the Record control is a button rather than a toggle, and why it
opens the app rather than recording in place: iOS does not permit an app to
start audio recording from the background, which was measured on a device
with the phone unlocked, not reasoned about.

Also what adopting AudioRecordingIntent obliges — the Live Activity becomes a
condition of the recording continuing, which inverts the rule that the lock
screen can never fail one.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin m1-13-control-decision:m1-13-control-decision
git switch m1-13-control-decision

Merge

Merge the changes and update on Forgejo.

Warning: The "Autodetect manual merge" setting is not enabled for this repository, you will have to mark this pull request as manually merged afterwards.

git switch main
git merge --no-ff m1-13-control-decision
git switch m1-13-control-decision
git rebase main
git switch main
git merge --ff-only m1-13-control-decision
git switch m1-13-control-decision
git rebase main
git switch main
git merge --no-ff m1-13-control-decision
git switch main
git merge --squash m1-13-control-decision
git switch main
git merge --ff-only m1-13-control-decision
git switch main
git merge m1-13-control-decision
git push origin main
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
Stash/stash-docs!5
No description provided.