diff options
| author | Tianren Dong <tianrendong.dtr@gmail.com> | 2026-05-16 12:36:56 -0400 |
|---|---|---|
| committer | Tianren Dong <tianrendong.dtr@gmail.com> | 2026-05-16 12:36:56 -0400 |
| commit | d9f2d027bda8cd2e2c42fa54a843c477fa18db05 (patch) | |
| tree | 50e879f4b2b80df38e7f6362b6fb2dc0b7d7985d /package.json | |
| parent | ad78b41140f9040094295a28c5ab6482483efa4f (diff) | |
0.16.1: idempotent /chrome onboard + automatic stale-owner takeover
User pain: machines stuck in broken state after pi-chrome upgrades because an old
pi-chrome process kept holding :17318 and /chrome onboard trusted confirm() clicks
without verifying anything. Both fixed.
Idempotent /chrome onboard recovery flow:
- Always resets Pi-side pairing state first (kills half-paired ghosts).
- Step 1 covers both first-install AND v0.15->v0.16 reload (extension service worker
must reload to gain the /pair logic).
- Actively verifies progress at each step rather than trusting clicks:
- polls bridge.status().connected (15s window) to confirm the extension polls /next,
- polls bridge.bridgeAuth.paired to confirm the /pair handshake completed,
- round-trips a real tab.version command to confirm the signed-envelope path works.
- /chrome install is now an alias of /chrome onboard.
Automatic stale-owner takeover at bridge.start():
- /status now includes bridgeVersion.
- On EADDRINUSE, probe /status with 1s timeout. If unresponsive OR major.minor
mismatches, locate the owner PID via lsof and kill it (SIGTERM -> SIGKILL),
then re-bind. Same-version owners are joined as clients (multi-Pi sharing).
- Eliminates the 'stale Pi session holding bridge' class of bugs that broke
upgrades from 0.15.x.
/chrome status / doctor / onboard no longer hang:
- New probeExtension() short-circuits before bridge.send when the bridge can't
round-trip (unpaired, or extension hasn't polled recently). Returns immediately
with an actionable message instead of waiting 5-35s.
Diffstat (limited to 'package.json')
| -rw-r--r-- | package.json | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/package.json b/package.json index fe49e5b..656f341 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "pi-chrome", - "version": "0.16.0", + "version": "0.16.1", "scripts": { "version": "node scripts/sync-manifest-version.js", "prepublishOnly": "node scripts/sync-manifest-version.js" |
