The 9.8k-line collaboration runtime was welded to the desktop GUI (WidgetHostNative + winit EventLoopProxy), so the web daemon and future satellite hosts could not run sessions. Split the host coupling behind a CollabHost trait + wake notifier closure, then move the runtime, JWKS fetcher, and tests into the new leaf crate op-collab-host: - CollabHost (CollaborationEditorHost + dirty/id-namespace hooks) with a HeadlessCollabHost for daemon and test use; the WidgetHostNative impl lives behind op-host-native's gl-host feature - async work reaches sync relay/JWKS code through an injected BlockingExecutor (process-global OnceLock) instead of depending on op-host-services, keeping the crate graph acyclic - desktop keeps a thin shim (type alias + wake closure); call sequence and test assertions unchanged, 154 runtime tests moved as-is |
||
|---|---|---|
| .. | ||
| op-acp | ||
| op-ai | ||
| op-ai-skills | ||
| op-auth-bridge | ||
| op-chrome-extension-core | ||
| op-cli | ||
| op-codegen | ||
| op-collab | ||
| op-collab-host | ||
| op-collab-policy-file | ||
| op-collab-relay-client | ||
| op-collab-relay-control-plane | ||
| op-collab-relay-locator-hsm | ||
| op-collab-relay-locator-server | ||
| op-collab-relay-protocol | ||
| op-collab-relay-server | ||
| op-collab-smoke | ||
| op-collab-transport | ||
| op-config-store | ||
| op-design-lint | ||
| op-editor-core | ||
| op-editor-host-core | ||
| op-editor-ui | ||
| op-figma | ||
| op-git | ||
| op-host-desktop | ||
| op-host-native | ||
| op-host-services | ||
| op-host-web | ||
| op-host-web-server | ||
| op-html | ||
| op-i18n | ||
| op-mcp | ||
| op-opmerge | ||
| op-orchestrator | ||
| op-pen-loader | ||
| op-process-io | ||
| op-rpc-transport | ||
| op-smoke | ||
| op-util | ||
| op-web-sdk | ||
| CLAUDE.md | ||