Minor Changes
-
#103
85c2e1cThanks @hrhrng! -oma bridgedaemon now serves multiple tenants from a single process.
One daemon is authorized for every workspace the user is a member of;
each spawned ACP child gets the per-tenantoma_*key matching the
session's workspace.oma bridge setuprequests the multi-tenant/exchangeshape and
writes aCredentialsV2file ({v:2, tenants:[…], …}). Old v1
creds files (agentApiKeyat the top level) auto-migrate on next
daemon start — callsGET /agents/runtime/meto pull the tenant
list, falls back to a placeholder workspace if the server is
unreachable so the daemon still runs offline.oma bridge refresh(new) re-syncs the daemon's credentials with
the user's current memberships. Adds keys for new workspaces, soft-
revokes keys for removed ones, thenSIGHUPs the running daemon
so the change takes effect without a restart.SessionManagerlooks up the rightoma_*key per session by the
inboundsession.start'stenant_id. Every outbound message the
daemon sends carriestenant_idso the server can validate it
against the runtime's authorized set.
Backward-compatible: v1 daemons keep working against the new server
shape (server returns the legacy{runtime_id, token, agent_api_key}
when the request doesn't setmulti_tenant: true). The workaround
for multi-tenant — running multipleOMA_PROFILE=…daemons side by
side — still works for separate server environments.
Patch Changes
-
31f7fbfThanks @hrhrng! -oma bridge setupnow exits cleanly after "Done." instead of hanging
for ~5 minutes on idle keep-alive HTTP sockets from the registry CDN
fetch and the runtime-token probe. Daemon was already started by
launchd / systemd / Task Scheduler — only the foreground setup process
itself was waiting on the undici dispatcher to time out its sockets.
Force-exits at end of runSetup, matching how npm / pnpm / gh handle
the same constraint in their CLI commands.Adds an opt-in
OMA_DEBUG_HANDLES=1env var that prints active
handles + requests every 2s — useful for diagnosing future "process
won't exit" regressions without redeploying.