Home

mweinbach / agent-coworker

publicmweinbach/agent-coworker
Overview Code History Branches Pull requestsIssuesInsights
main
HomeOverview Code PRsIssues

Gate workspace & A2UI UI behind feature flags

6 months ago

4272843
Authored
mweinbach4/20/2026, 12:52:16 AM
Introduce and respect desktop feature flags for workspace lifecycle, workspace picker, and A2UI across desktop and mobile UIs. Key changes:

- UI: Sidebar, ChatView, onboarding, settings (Backup/Developer/Memory/Workspaces), and other components now hide or limit workspace actions and A2UI surfaces/dock when the corresponding flags are disabled.
- Store/actions: Prevent workspace/thread actions when workspaceLifecycle is disabled and surface an info notification when attempting to add workspaces via UI actions.
- Desktop electron: Propagate packaged-mode to preload via process.env.COWORK_IS_PACKAGED and update preload to read that env for feature resolution. Update remote-access disabled message text.
- Desktop commands: Remove a few convenience helpers and rely on getDesktopFeatureFlags instead.
- Tests: Updated mocks and added tests to cover A2UI hiding, workspace-list limiting, and updated mobile relay remote-access assertions.
- Shared: Improve feature flag descriptions for workspace picker and lifecycle.

These changes ensure consistent feature-flag driven behavior across processes and platforms and add guardrails to avoid exposing workspace/A2UI controls when disabled.

Parentaf80601

24 files changed
  • apps/desktop/electron/ipc/mobileRelay.ts+1−1
  • apps/desktop/electron/main.ts+3−0
  • apps/desktop/electron/preload.ts+1−1
  • apps/desktop/src/app/store.actions/skills.ts+12−0
  • apps/desktop/src/app/store.actions/thread.ts+12−0
  • apps/desktop/src/app/store.actions/workspace.ts+6−0
  • apps/desktop/src/lib/desktopCommands.ts+0−12
  • apps/desktop/src/ui/ChatView.tsx
+34
−2
  • apps/desktop/src/ui/Sidebar.tsx+28−7
  • apps/desktop/src/ui/onboarding/DesktopOnboarding.tsx+3−2
  • apps/desktop/src/ui/settings/pages/BackupPage.tsx+4−1
  • apps/desktop/src/ui/settings/pages/DeveloperPage.tsx+3−1
  • apps/desktop/src/ui/settings/pages/MemoryPage.tsx+3−1
  • apps/desktop/src/ui/settings/pages/WorkspacesPage.tsx+3−3
  • apps/desktop/test/bootstrap-cache.test.ts+7−3
  • apps/desktop/test/chat-view.stability.test.tsx+102−0
  • apps/desktop/test/helpers/mockDesktopCommands.ts+0−1
  • apps/desktop/test/mobile-relay-ipc.test.ts+2−2
  • apps/desktop/test/settings-nav.test.ts+0−1
  • apps/desktop/test/sidebar-ui.test.tsx+60−2
  • apps/mobile/src/app/(app)/thread/[id].tsx+10−1
  • apps/mobile/src/components/thread/thread-feed-item.tsx+5−1
  • src/shared/featureFlags.ts+2−2
  • test/mobile.thread-feed-item.test.tsx+20−0