Files
orca/src/shared/mobile-web-bundle
Kelvin Amoaba abff3a41f5 fix(mobile): serve the phone page after a Linux package update replaces a running Orca (#40863)
* fix(mobile): serve the phone page from a Linux install updated in place

Package managers (pacman, apt, dnf) replace Orca's files while the old
process keeps running. The host cached the manifest for the life of the
process and read assets through Electron's launch-time asar header, so
every read of the replaced files failed with asset_changed until Orca
restarted. Read from app.asar.unpacked and re-read the manifest when
manifest.json changes on disk.

Fixes STA-14385

* fix(mobile): check the page manifest off the main thread, and retry a mismatch

Read and stat the manifest with fs/promises and keep the probed root, so
bundle RPCs add no sync file calls. Keep only passing hash verdicts: a
package install writes files one at a time, so a mismatch may clear.

* fix(mobile): key the page manifest cache on its bytes

Inode, size and mtime can all repeat when ext4 rewrites a same-length
manifest within one clock tick.

* fix(mobile): read a newer in-place install's page manifest

A release written in place may add schema-v1 manifest fields the running
host predates. Read it with a stripping schema so the host serves the
fields it supports instead of reporting no bundle until restart.

* refactor(mobile): derive the installed-manifest reader from the writer's shapes
2026-11-10 21:18:51 +00:00
..