Archived
feat: authorize iOS Hermes accounts and secure session isolation
This commit is contained in:
1 parent
9bdaea2408
commit
bebaf59466
23 files changed
+911
-185
No files matched your search
@@ -4,6 +4,31 @@ Updated 2026-09-19 from repository source, recorded test evidence, and prior deb
|
||||
This is guidance, not a claim that hardware or server checks were rerun today.
|
||||
Read [PROJECT_STATUS.md](PROJECT_STATUS.md) for the current product scope.
|
||||
|
||||
## Authorized accounts and transport — 2026-10-01
|
||||
|
||||
- The latest direct request makes Hermes server-managed; do not restore model
|
||||
selectors or `set_model` from old handoffs. Server account auth is distinct from
|
||||
the previously canceled ChatGPT subscription/device login.
|
||||
- Scope credentials to canonical HTTPS origin, and transcripts to origin + immutable
|
||||
user id. Never import the global legacy transcript into an authenticated account.
|
||||
- Disable bootstrap immediately on logout, invalidate/cancel pending authentication,
|
||||
then disconnect before clearing account UI. New account identity resets drafts and
|
||||
task stores; reject stale room transcription/control callbacks during teardown.
|
||||
- Check generation and cancellation immediately after token fetch and before
|
||||
`room.connect`. Serialize normal mic actions with interruption actions and recheck
|
||||
Type mode after awaits; pending Voice requests cannot enable Type-mode capture.
|
||||
- Private IP does not justify plaintext signaling. Use same-origin URLComponents WSS
|
||||
(IPv6 safe). Exact HTTP certificate pinning does not establish the SDK's separate
|
||||
WSS trust. Installed trusted CA and real hardware qualification may be required;
|
||||
never introduce trust-all or plaintext fallback to bypass it.
|
||||
- A transient `/me` outage is not revocation: retain its Keychain bearer but show
|
||||
no unverified account UI. Only 401/403 clears saved authentication. Authentication
|
||||
URLSession is ephemeral with cookies/cache/credential persistence disabled and
|
||||
redirects rejected to protect password/bearer origin confinement.
|
||||
- Never log data-channel payloads or bootstrap response bodies. Keep release SDK
|
||||
logging at error. Offline auth fixtures use memory tokens, isolated preferences
|
||||
and deterministic no-network bootstrap errors.
|
||||
|
||||
## Preserve behavior across UI changes
|
||||
|
||||
- Observe nested observable objects directly where their data is rendered. Watching
|
||||
|
||||
Reference in new issue
Block a user