Johannes Merz
1f36636e06
feat: POST /pair endpoint + async bearer token auth
...
- POST /pair: consumes one-time pairingToken, creates named bearer token,
returns { bearerToken, sidecarId } per IC-3
- isAuthenticatedAsync(): checks legacy token + new multi-token store
- isAuthenticated(): extended with Bearer header support for WS upgrade
- Smoke still 12/12 green
2026-05-16 02:46:15 +02:00
Johannes Merz
911d3f7625
feat(T-1.8/1.9): stream integration smoke, operator guide, Phase 1 complete
...
- T-1.8: stream.test.mjs — session CRUD, WS stream attach, send-keys,
marker observation, reconnect+delta replay, thumbnail, delete. 12/12 green.
- T-1.9: docs/reference/OPERATOR.md — full operator guide; README sidecar section.
- Fix: tmux/control.ts -CC → -C (passthrough mode bypassed %output events).
- Fix: tmux/input.ts + snapshot.ts drop hardcoded :0.0 pane (base-index safety).
- SYNC.md + NEXT-STEPS.md: Phase 1 marked done, Phase 2 unblocked.
2026-05-15 11:43:59 +02:00
Johannes Merz
b94b668df6
feat(T-1.5/1.6/1.7): stream+input+snapshot routes, sessions CRUD, commands, side-channel, health endpoint
2026-05-15 11:35:55 +02:00
Johannes Merz
db6be6dcf8
feat(T-1.10): APNs scaffold — JWT provider auth, push primitive, device-token stub
2026-05-15 11:32:05 +02:00
Johannes Merz
f89abd1125
feat(T-1.4): pi adapter — events, commands, autoname
2026-05-15 11:31:36 +02:00
Johannes Merz
6f106d2411
feat(T-1.3): auth tokens, pairing, TLS, CLI (pair/auth list/revoke/name)
2026-05-15 11:30:54 +02:00
Johannes Merz
17c32e7e93
feat(T-1.2): sequence counter + disk ring-buffer writer/reader
2026-05-15 11:29:41 +02:00
Johannes Merz
bd990a07ab
feat(T-1.1): tmux manager, control-mode client, input, snapshot
2026-05-15 11:28:45 +02:00
jay
568931901d
refactor(T-1.0): carve server.ts into server/ sub-modules
...
Create the modular server/ layout from PHASE-1-sidecar.md §Architecture Sketch:
server/types.ts — shared WsClient/WsServer/RemoteServer interfaces
server/upgrade.ts — WS upgrade routing per path (LEGACY /ws)
server/server.ts — HTTP bootstrap, middleware, LEGACY HTML routes
server/routes/ — empty dir, placeholder for T-1.5/T-1.6/T-1.7
The original extensions/remote-control/server.ts is replaced with a
thin re-export shim so that index.ts continues to resolve
'./server.js' without changes.
All LEGACY code paths (manifest.json, icon.svg, /, /ws) are tagged
with // LEGACY: … comments. No behaviour changes. No new endpoints.
Pre-existing biome errors in auth.ts, config.ts, index.ts are
unchanged — NOT introduced by this commit.
2026-05-15 10:57:52 +02:00
jay
94b4dc7a41
fix: reconnect immediately on tab visibility (iOS)
2026-05-14 19:22:46 +02:00
jay
74fc22ddfb
feat: persist auth token across server restarts
...
Token is stored in ~/.pi/remote-control/token (mode 600) on first start
and reused on subsequent starts — saved URLs stay valid indefinitely.
2026-05-14 19:00:31 +02:00
jay
9f8b2cc987
Revert "fix: faster WebSocket reconnect on iOS PWA"
...
This reverts commit c21b6c441c .
2026-05-14 18:59:13 +02:00
jay
c21b6c441c
fix: faster WebSocket reconnect on iOS PWA
...
- connection timeout after 4s (vs OS TCP default ~75s)
- visibilitychange listener: reconnect immediately when app resumes
2026-05-14 18:57:02 +02:00
jay
1b610013c3
feat: bindAddress from config + PWA support
...
- config: read from ~/.pi/remote-control/config.json (zerray-compatible path)
- config: add bindAddress + advertisedBaseUrl fields
- server: listen on host/port from bindAddress (default: 127.0.0.1:random)
- server: /manifest.json + /icon.svg routes (no auth, PWA)
- server: manifest-src 'self' in CSP
- html: apple-mobile-web-app meta tags + manifest/touch-icon links
- index: advertisedBaseUrl as fallback for publicBaseUrl
2026-05-14 18:51:54 +02:00
Yejun Su
cff6aa693c
chore: migrate @mariozechner pi packages to @earendil-works namespace
2026-05-08 18:18:04 +08:00
Yejun Su
82c463ec27
chore(remote-control): add Biome and fix all lint warnings
2026-04-21 14:09:42 +08:00
Yejun Su
06fa1147f3
extensions/pi-remote-control -> extensions/remote-control
2026-04-21 12:51:38 +08:00