Files
orca/src/main/runtime/mobile-pairing-files.ts
T
a6083c47dc Keep mobile pairing data on stable userData path (#6622)
* Keep mobile pairing data on stable userData path

Use the canonical userData path captured before app.setName() when starting the runtime WebSocket server so paired mobile device tokens and E2EE keys survive restarts/updates. Add regression coverage for app-name-driven userData path changes.

Co-Authored-By: Claude <noreply@anthropic.com>

* Migrate mobile pairing files from legacy path

Co-Authored-By: Claude <noreply@anthropic.com>

* Address mobile pairing migration review

Co-Authored-By: Claude <noreply@anthropic.com>

* Document mobile pairing path helpers

Co-Authored-By: Claude <noreply@anthropic.com>

* Explain paired mobile credential migration

Co-Authored-By: Claude <noreply@anthropic.com>

* Harden migrated mobile pairing credentials and tighten tests

Re-assert secure-file permissions after the migration copyFileSync, which
does not carry Windows ACLs, so the copied device tokens and E2EE keypair
keep the current-user-only restriction instead of relying on the runtime's
later lazy re-harden on read.

Import the pairing filename constants from the shared source of truth so a
rename can't silently pass the tests against stale names, and add no-op
regression coverage for the source==target (case-insensitive FS) and
fresh-install (no legacy files) paths.

Co-authored-by: Orca <help@stably.ai>

---------

Co-authored-by: Claude <noreply@anthropic.com>
Co-authored-by: Jinwoo-H <jinwoo0825@gmail.com>
Co-authored-by: Orca <help@stably.ai>
2026-06-28 23:35:16 -07:00

9 lines
319 B
TypeScript

export const DEVICE_REGISTRY_FILENAME = 'orca-devices.json'
export const E2EE_KEYPAIR_FILENAME = 'orca-e2ee-keypair.json'
// Migrate these together so device tokens and E2EE material never split across dirs.
export const MOBILE_PAIRING_USERDATA_FILES = [
DEVICE_REGISTRY_FILENAME,
E2EE_KEYPAIR_FILENAME
] as const