Skip to content

Simpler sidebar: optional features in Settings, one Passwords screen - #259

Merged
danielehrhardt merged 5 commits into
mainfrom
feat/simpler-sidebar
Oct 28, 2026
Merged

danielehrhardt merged 5 commits into
mainfrom
feat/simpler-sidebar

Conversation

@danielehrhardt

Copy link
Copy Markdown
Contributor

What changed

Optional features move into Settings. Artifacts, Integrations, Messaging and Android phones no longer have sidebar entries. Each one now lives in Settings → Features and has its own on/off switch with one sentence on what it does. When a feature is on, its full page renders inside the section (the same approach Files took in #251). When it is off, the section shows a short empty state with three points and a Turn on button. The section list marks features that are off with a quiet "Off" label.

  • Old URLs redirect into Settings and keep their query: /artifacts, /integrations?tab=…, /messaging?connection=…, /android.
  • /artifacts/:id and /android/:id still work while their feature is on, and redirect to the Settings section while it is off.
  • API keys (Anthropic, Z.ai, OpenAI, ElevenLabs, CAPTCHA, browser-use) were a tab of Integrations. They power Godmode itself, so they now have their own section, Settings → API keys, which stays available whatever the switches say. /integrations?tab=api-keys redirects there.
  • Pending messaging requests show as a count on the Messaging entry in Settings and as a dot on the sidebar's Settings button, which then opens Messaging directly.
  • The command palette lists these features only while they are on, and points at their Settings sections. Settings search always finds them, so you can still find where to turn one on.
  • The agent form hides "Tools & integrations" while integrations are off, the same way it already hid Android phones.

One Passwords screen. Logins, 2FA codes and Passkeys share one screen. It has a single title, a tab for each with its count, and the current tab's own actions on the right (Import / Add login, Import codes, passkey status). The tab URLs are still /vault/logins, /vault/2fa and /vault/passkeys, so deep links keep working, and the sidebar item is active on all three. Cards stay separate.

Sidebar

  • Pro: Chat, Inbox, Tasks, Agents, Automations, Activity, Calls, Plugins, Passwords, Cards, then the Machines section (Browser, Computer, Virtual machines, SSH servers, Runners). The Access section is gone.
  • Easy: Chat, Inbox, Agents, Automations, Task board, Passwords. More holds History, Phone calls, Payment cards, Add-ons, Browser, Computer control, Virtual machines, Servers, Other computers.

Agents and the core

Settings get artifacts.enabled, integrations.enabled and messaging.enabled, and Android reuses the existing android.enabled. All four default to off. While a feature is off:

Feature What agents lose
Artifacts artifact_create/update/get/list and the prompt's Artifacts section. POST /api/artifacts/start answers 409.
Integrations api_tools_list, api_tool_docs and api_tool_request, API tool keys in the run environment and the prompt, custom MCP servers and Composio MCP servers in runs, and API tool keys lent to voice transcription
Messaging All bots stop. They start again when it is switched back on.
Android android_devices_list, android_assign and the phone MCP server (the runner already checked android.enabled)

Automation app triggers (Composio events) are not gated.

Agents may change artifacts.enabled themselves through settings_update, so a dashboard request can switch it on. Integrations, messaging and Android stay with the human. Cloud users may switch artifacts, integrations and messaging. The three new sections replicate across a device group, while Android stays per computer as before.

Existing installs

Migration 105 (FEATURE_SWITCHES_SQL) keeps a feature on where it is already in use:

  • artifacts: any artifact exists
  • integrations: any API tool, MCP server or Composio connection, or a saved Composio key
  • messaging: any bot connection
  • android: any phone ever seen over adb (Android used to be on by default)

A switch that was already saved is never changed. Only a section without the switch gets one. The same SQL also runs after a backup restore, so a backup from before this change comes back with its features on. On a new install the tables are empty, so everything stays off.

How to test

  1. Fresh data dir: everything is off. The sidebar shows the lists above, and Settings → Features shows four "Off" sections.
  2. Turn Artifacts on. The gallery and composer show inside the section, and an agent's tool list now includes artifact_*. Turn it off and they disappear.
  3. Open /vault/2fa and /vault/passkeys directly. Each lands on its tab, and the Passwords sidebar item stays active.
  4. Open /integrations?tab=api-keys (lands on Settings → API keys) and /messaging (lands on Settings → Messaging).
  5. Upgrade an existing data dir that has artifacts, API tools, a bot or a phone. Those features start on.

Checks:

  • pnpm -r typecheck passes.
  • New core tests in test/feature-switches.test.ts cover the defaults, each migration case, idempotence, settings saved before, tool gating and the settings API. There is also a messaging test that the switch stops and restarts the bots.
  • Updated tests: android, api-tools, artifacts, composio, mcp-servers, mcp, messaging, voice, remote-snapshot.

Screenshots

Sidebar, Professional and Easy

Passwords: Logins, 2FA codes (dark), Passkeys

Settings → Features, off

Settings → Features, on (with the messaging request badge)

Off for new installs. Migration 105 keeps a feature on where it is already
in use (artifacts, API tools / MCP servers / Composio, a connected bot, a
phone seen over adb), and also runs after a restore. While a feature is off,
agents don't get its tools: artifact_*, android_devices_list/android_assign,
API tools (MCP tools, env keys, prompt) and custom/Composio MCP servers;
messaging bots stop.
Artifacts, Integrations, Messaging and Android phones live in Settings →
Features with an on/off switch each; their old URLs redirect there. API keys
get their own Settings section. Logins, 2FA codes and passkeys share one
Passwords screen with tabs; the sidebar keeps Passwords and Cards in the main
list and drops the Access section.
@danielehrhardt
danielehrhardt merged commit d0ed59a into main Oct 28, 2026
8 checks passed
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