Skip to content

iOS: "Allow system video effects" experiment; Center Stage wording#64

Open
MyNamesEMurray wants to merge 2 commits into
mainfrom
claude/ios-cleanup-readme-review-ms6wi8
Open

iOS: "Allow system video effects" experiment; Center Stage wording#64
MyNamesEMurray wants to merge 2 commits into
mainfrom
claude/ios-cleanup-readme-review-ms6wi8

Conversation

@MyNamesEMurray

Copy link
Copy Markdown
Owner

What & why

Continuing the empty-Video-Effects-panel investigation with field data from the reproducing iPhone 15 Pro (iOS 27): the diagnostics table shows the front camera's formats do advertise Portrait/Studio Light/Reactions — including the first-listed formats the picker already chose — and the rear cameras advertise nothing at all. So format selection was never the limiting factor, and the panel stays empty even on an effect-flagged format. The remaining variable separating LensLink from effect-working apps is the hard frame-duration lock (min = max = 1/fps).

  • New Options toggle, "Allow system video effects" (default off): keeps the min duration (the chosen rate stays the ceiling) but leaves the max at the format default, giving iOS the downward rate flexibility the Control Center effects appear to require. Single-variable experiment: panel populates with it on → the lock was the gate and the toggle graduates to a documented feature; still empty → next bisect is a vanilla-session probe. The trade (low-light fps sag — deliberately what the cadence lock prevents) is why it defaults off; PERFORMANCE.md records it as the second sanctioned exception.
  • Center Stage wording: the logic was already flag-driven per format on every camera, but the README and a comment said "iPad-only" — stale as of iPhone 17-generation hardware (front and rear Center Stage). Docs now defer to the in-app Camera diagnostics table as the per-device truth.

How it was tested

Swift parse check locally; type check in this PR's macOS CI job. The experiment is the test: on the next TestFlight build — front camera, 1080p/30 — Control Center with the toggle off (baseline: empty) vs. on (hypothesis: populated). The reproducing device's diagnostics table is captured in the PR trail.

🤖 Generated with Claude Code

https://claude.ai/code/session_01Ds2wz6ag94k59WUmtJfgxq


Generated by Claude Code

claude added 2 commits July 21, 2026 07:57
Field data from the iPhone 15 Pro that reproduces the empty Video
Effects panel: the front camera's formats DO advertise Portrait /
Studio Light / Reactions (the diagnostics table shows flags on nearly
everything up to 1440p, including the first-listed formats), and the
rear cameras advertise nothing at all — so format selection was never
the limiting factor, and the effects stay absent even on an
effect-flagged format. The remaining variable that separates us from
apps where the effects work is the hard frame-duration lock
(min = max = 1/fps).

New Options toggle (default off): keep the min duration — the rate can
never exceed the user's choice — but leave the max at the format
default, giving iOS the downward flexibility the effects appear to
require. Single-variable experiment: if the Control Center panel
populates with the toggle on, the lock was the gate and the toggle
graduates to a documented feature; if not, the next bisect is a
vanilla-session probe. PERFORMANCE.md's cadence-lock divergence note
records the exception.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ds2wz6ag94k59WUmtJfgxq
The selection and diagnostics logic was already purely flag-driven
(isCenterStageSupported per format, any camera), but the README and a
comment editorialized "iPad-only" — stale as of the iPhone 17
generation, which brings Center Stage to front and rear cameras. The
docs now defer to the app's Camera diagnostics table as the per-device
source of truth.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Ds2wz6ag94k59WUmtJfgxq
@MyNamesEMurray
MyNamesEMurray force-pushed the claude/ios-cleanup-readme-review-ms6wi8 branch from e1fafee to 79a2b1d Compare July 22, 2026 02:52
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