Skip to content

P2p client#2

Open
mempko wants to merge 4 commits into
mainfrom
p2p-client
Open

P2p client#2
mempko wants to merge 4 commits into
mainfrom
p2p-client

Conversation

@mempko
Copy link
Copy Markdown
Owner

@mempko mempko commented May 12, 2026

P2P client so people don't need to host their own client/server pair to get access away from their computer.

mempko and others added 4 commits May 4, 2026 17:58
In-progress work: WebRTC peer transport, paired desktops, QR pairing flow,
ws/webrtc client transports, RemoteUIAccess Abject, GlobalSettings
remote-access tab.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
- site/nginx.conf: serve client.abject.world as static SPA from
  /var/client.abject.world with SSL, asset caching, and security headers.
- package.json: add etch:p2p script that bakes VITE_DEFAULT_MODE=p2p into
  the production client build.
- BackendUI: track per-client metadata (kind, peerId, name, connectedAt),
  add listFrontendClients / disconnectFrontendClient methods, and emit a
  frontendClientsChanged event on connect/disconnect.
- Worker bridge: send a frontend-client-meta custom message immediately
  before transferring the webrtc-relay MessagePort so the UI worker can
  pair WebRTC metadata with the incoming transport. ui-worker-node keeps
  a per-portName FIFO of pending meta.
- RemoteUIAccess: extend attachHandler signature with { name } and pass
  the AuthorizedClient name through to BackendUI.
- PeerNetwork: new "Frontends" tab listing every connected UI client
  (WebSocket and WebRTC) with Disconnect (all) and Revoke (WebRTC only)
  actions. Auto-refreshes on frontendClientsChanged and clientsChanged.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Pairing a phone is conceptually a peer-network operation, not an
authentication credential. Consolidate all "manage frontends" UX in
PeerNetwork → Frontends: enable toggle, Generate Pairing QR, QR image,
selectable pairing URL, and the existing list of connected clients
with Disconnect / Revoke.

- src/objects/peer-network.ts: new buildPairingSection() rendered at
  the top of the Frontends tab; handlers for the enable checkbox and
  Generate Pairing QR button; widget refs reset in populateTabs and
  hide.
- src/objects/global-settings.ts: strip the Remote Access section from
  the Auth tab (fields, click handlers, buildRemoteAccessSection and
  helpers). The Auth tab now hosts only WS username/password.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant