Skip to content

feat!: leave server configuration to the web client - #14

Merged
cheetahbyte merged 1 commit into
mainfrom
feat/web-only-server-settings
Nov 10, 2026
Merged

cheetahbyte merged 1 commit into
mainfrom
feat/web-only-server-settings

Conversation

@cheetahbyte

Copy link
Copy Markdown
Contributor

Summary

The Android app no longer configures the server. Every page that set up the server or the account is removed. Links that led to those pages now open the matching page of the web client's Settings (<server origin>/settings/<page>).

Removed routes: Users, Coding, Providers, JudgeModel, VisionModel, WebSearch,
  Credentials, Logins, PasswordManagers, Integrations, MessageGateways,
  MessageGateway(id), EventRelay
Kept: chats, group chats, bot editor, Memory, Skills, Tasks, Activity, Avatars,
  answering credential and login requests in chat, sign-in and sign-up, theme,
  notifications
  • What went with the pages: the model state, API calls and tests that only those pages used. MCP sign-in lived only on Integrations, so the ${applicationId}:/oauth/callback intent filter and its handling in MainActivity are gone.
  • Links:
    • New webSettingsURL(baseURL, page) and openWebSettings(...) build and open the web Settings links.
    • These now open the web: the failed-reply "Provider Settings…", "Connect a password manager…" in request forms, and the bot editor's web search, integrations and credentials links.
  • Settings: a new Server settings row, shown when signed in, opens /settings.
  • Moved code: sign-up helpers move to GeneralSettings.kt; ChoiceField/CopyField move to ui/Fields.kt; the request dialogs move to ui/SecretForms.kt.

Why

The web client is now the only client that configures the server, so the native apps stop duplicating those pages.

Evidence

  • ./gradlew test, ./gradlew lintDebug and ./gradlew assembleDebug pass.
  • python3 scripts/contract.py check matches, and python3 -m unittest discover -s scripts -p 'test_*.py' passes.
  • webSettingsURL has no test of its own. The links were not tried on a device.

Risk & Rollback

Reversibility: Reversible

Blast Radius: The Android app only. No server or contract change.

  • Breaking: creating or editing saved credentials and logins without a bot request behind them is gone, and so is MCP sign-in. Use the web client for both.

Remove every page that configures the server or the account: Users,
Coding, Providers, Judge model, Vision model, Web search, Credentials,
Logins, Password managers, Integrations, Message gateways, and Event
relay, with their routes, palette entries, model state, API calls, and
tests. Answering a bot's credential or login request in its chat stays.
MCP sign-in went with Integrations, so the OAuth callback intent filter
is gone.

Links that led to the removed pages open the matching web Settings page,
and Settings gains a Server settings row that opens the web's settings.

BREAKING CHANGE: the app can no longer change server or account
settings, sign in to MCP servers, or edit saved credentials and logins;
use the web client.
@cheetahbyte
cheetahbyte merged commit be6fc41 into main Nov 10, 2026
2 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