You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Support installing OpenPalm as a client only — no local stack — and connecting to an assistant running on another computer or container. Also covers the PWA install path (same app, connection-management-only mode).
Plan
Implemented as part of the UI Runtime Modes refactor. See docs/technical/ui-runtime-modes-plan.md for the full design.
Architecture decisions (resolved)
Connection management moves to /connections (new route, no longer under /admin). All modes — host, browser, PWA — can reach it without host admin auth.
ConnectionEntry model replaces the old endpoint model. Adds a kind field (local-opencode | remote-opencode | openpalm-client-api). endpoints.json is not renamed.
pwa-static host mode is the client-only install. The same SvelteKit build; capabilities hide host controls. No local assistant/guardian containers started. UI is the only process.
Connection config: stored in endpoints.json under OP_HOME/config/. Credentials remain file-based secrets (knowledge/secrets/), consistent with the existing secret boundary.
Connection status: surfaced in the /connections UI and in the chat empty state.
Wizard deep-link: after a "set up later" install, landing at /connections/new is the default when no connection is configured.
/api/runtime — public, returns hostMode: 'pwa-static' and connection-scoped capabilities
No host lifecycle, no Docker, no /api/host/*
What a remote assistant exposes for clients to attach to
The Guardian /oc/* ingress (existing). The openpalm-client-api connection kind (preferred for mobile/PWA) routes through Guardian. The remote-opencode kind connects to a raw OpenCode instance directly (dev/advanced only).
Implementation
Phase 2 of the runtime modes plan: routes/connections/, /api/connections/*, internal model rename
Phase 6: PWA manifest + service worker enabling the installable client-only mode
Open questions (resolved)
What does a remote stack expose for a client to attach to? → Guardian /oc/* ingress
Summary
Support installing OpenPalm as a client only — no local stack — and connecting to an assistant running on another computer or container. Also covers the PWA install path (same app, connection-management-only mode).
Plan
Implemented as part of the UI Runtime Modes refactor. See
docs/technical/ui-runtime-modes-plan.mdfor the full design.Architecture decisions (resolved)
/connections(new route, no longer under/admin). All modes — host, browser, PWA — can reach it without host admin auth.ConnectionEntrymodel replaces the old endpoint model. Adds akindfield (local-opencode|remote-opencode|openpalm-client-api).endpoints.jsonis not renamed.pwa-statichost mode is the client-only install. The same SvelteKit build; capabilities hide host controls. No local assistant/guardian containers started. UI is the only process.endpoints.jsonunderOP_HOME/config/. Credentials remain file-based secrets (knowledge/secrets/), consistent with the existing secret boundary./connectionsUI and in the chat empty state./connections/newis the default when no connection is configured.What a client-only install exposes
/connections— add/switch/manage remote assistants/chat— when an active connection is established/api/runtime— public, returnshostMode: 'pwa-static'and connection-scoped capabilities/api/host/*What a remote assistant exposes for clients to attach to
The Guardian
/oc/*ingress (existing). Theopenpalm-client-apiconnection kind (preferred for mobile/PWA) routes through Guardian. Theremote-opencodekind connects to a raw OpenCode instance directly (dev/advanced only).Implementation
routes/connections/,/api/connections/*, internal model renameOpen questions (resolved)
What does a remote stack expose for a client to attach to?→ Guardian/oc/*ingressHow is the remote endpoint authenticated?→ Guardian Basic auth; aligned with Guardian: mTLS adapter auth + keep authn/authz seams generic #435 Bearer seamShould a client-only install skip seeding assistant/guardian compose services?→ Yes.pwa-statichost mode starts no containers.Related
docs/technical/ui-runtime-modes-plan.md— full plan