Skip to content

Six fixes from a tester's support report, and build 460 - #674

Merged
straff2002 merged 2 commits into
mainfrom
fix/support-report-findings
Oct 6, 2026
Merged

straff2002 merged 2 commits into
mainfrom
fix/support-report-findings

Conversation

@straff2002

Copy link
Copy Markdown
Owner

Why

A tester's support report from 2026-10-05 showed a first session going wrong in three places, and the report itself could not answer two questions we asked of it (which commit, and whether the phone runs the published app or a contributor's own build).

What changed

  • The assistant knows the app it runs in. Asked "how can I change your voice", the model sent the wearer to the iPhone's Settings, the glasses' own app and Siri. The system prompt now carries a short guide to where the assistant's settings live (Direct mode and Gemini Live). Category names come from SettingsCatalog, so the guide cannot name a screen the hub does not draw.
  • A cloud voice that gives out is said. When ElevenLabs is out of credit or refuses the key, replies fell back to the built-in voice with no explanation. The wearer is now told once per episode, appended to an ordinary reply (never to an alert), and once per session on screen, with where to change it. The episode ends when the cloud voice speaks again or the key or voice changes.
  • A photo survives a session that died while parked. A stream whose device session had stopped was reused, failed at once, and the rebuild that followed got a single try with no wait. A stopped session is now dropped before reuse, and the rebuild gets the same retry with backoff as a first start.
  • The app's own links are logged as what they are. The scene delegate handed every URL to the glasses SDK and logged it as that SDK's callback, so a photo asked for from a widget read as Meta AI calling back. Its own routes are now named, with the action when it is one of a fixed few (never a persona or quick-action id).
  • Speech recognition falls back to a language's home region. An English phone in a region with no English recogniser was given the first English variant in the alphabet; it now gets en-US (pt → pt-BR, and so on, from the system's likely-subtags table).
  • The support report says which copy of the app wrote it. Version, build, source commit, install channel (App Store / TestFlight / development build) and bundle id on the third line; the phone's language list beside the app's locale; no empty glasses name.
  • Build 460.

The commit stamp

Scripts/generate-xcodeproj.sh exports AVENKIN_SOURCE_COMMIT (Xcode Cloud's CI_COMMIT, otherwise git rev-parse HEAD); the spec passes it to the app target and Info.plist carries it as AvenkinSourceCommit. It is stamped at generation rather than by a build phase because script sandboxing keeps a phase out of .git. A cloud build is exact; a local build reports the commit at the last regeneration, and the report words it that way.

Verification

  • Full unit suite on the iPhone 17 Pro simulator: 9,434 tests, 1 failure, in LocalizationCatalogGuardTests. That failure is local only: the working copy's string catalog held about 400 newly extracted English strings from an earlier build (not part of this PR), which puts Russian under its coverage floor. Against the committed catalog Russian is at 99.8%.
  • SpeechLocaleResolverTests re-run after the last change: 10 passed.
  • Release build for the simulator: succeeded. The phone was paired but not plugged in, so no on-device Release run.
  • Scripts/check-privacy-logging.sh: pass. Secret scan over the PR range: no leaks.

Not verified

  • The camera changes cannot be exercised without glasses. They are covered by a compile and the existing lifecycle tests only; the next device run is the real check.
  • Install-channel detection has only been observed on the simulator. TestFlight and App Store values come from the unit-tested rule, not from a device.
  • The four new spoken and on-screen strings are English only until the next catalog sync.

🤖 Generated with Claude Code

straff2002 and others added 2 commits October 6, 2026 14:41
… settings, a lost cloud voice is said, and a photo survives a stale session

A support report from 2026-10-05 showed a first session going wrong in three places, and could
not answer two questions about itself.

The assistant knows the app it runs in. Asked how to change its voice, the model sent the wearer
to the iPhone's Settings, the glasses' own app and Siri, none of which hold the setting. The
system prompt now carries a short guide to where the assistant's settings live, in Direct mode
and Gemini Live, with category names taken from the settings catalog so it cannot name a screen
the hub does not draw.

A cloud voice that gives out is said. When ElevenLabs is out of credit or refuses the key, replies
fell back to the built-in voice with no explanation. The wearer is now told once per episode,
after an ordinary reply (never an alert), and once per session on screen, with where to change it.

A photo survives a session that died while parked. A stream whose session had stopped was reused,
failed at once, and the rebuild that followed got one try with no wait. A stopped session is now
dropped before reuse, and the rebuild gets the same retry with backoff as a first start.

The app's own links are logged as what they are. The scene delegate handed every URL to the
glasses SDK and logged it as that SDK's callback, so a photo asked for from a widget read as Meta
AI calling back. Its own routes are now named, with the action when it is one of a fixed few.

Speech recognition falls back to a language's home region. An English phone in a region with no
English recogniser was given the first English variant in the alphabet; it now gets en-US.

The report says which copy of the app wrote it: version, build, source commit, install channel
and bundle id at the top, the phone's language list beside the app's locale, and no empty
glasses name. The commit is stamped when the project is generated, since script sandboxing keeps
a build phase out of .git.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@straff2002
straff2002 merged commit f40c46e into main Oct 6, 2026
8 checks passed
@straff2002
straff2002 deleted the fix/support-report-findings branch October 6, 2026 02:14
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