Files
browser/openspec/changes/fix-env-profile-settings/proposal.md
T
2026-07-11 14:56:10 +08:00

2.2 KiB

Why

Local operators can configure platform/.env, but the platform process currently reads only inherited environment variables. This makes MySQL metadata storage look uninitialized even when the .env file contains the correct PLATFORM_STORAGE_BACKEND=mysql and PLATFORM_MYSQL_DSN settings.

The current personal configuration experience is embedded in the sidebar account popover, which is cramped for profile, theme, and background preferences. Operators need a normal first-party personal settings page that saves profile and theme changes through platform APIs so values are durable in the configured metadata store.

What Changes

  • Load platform environment variables from local .env files before building platform configuration, while preserving explicit process environment overrides.
  • Keep MySQL metadata initialization database-backed and make configured storage selection testable so operators can verify the remote metadata store is actually used.
  • Replace the sidebar profile popover with a dedicated personal settings page for profile, theme palette, background preset, uploaded background, and logout actions.
  • Add the personal settings route to the shell for authenticated users and keep account edits wired to /api/v1/users/current/profile and /api/v1/users/current/theme.
  • Preserve the magical-girl crystal-moonlight visual system by reusing shared shell/page surfaces and theme tokens rather than adding a one-off UI style.

Capabilities

New Capabilities

  • platform-env-bootstrap: Platform startup loads local environment configuration and initializes the configured metadata backend predictably.
  • personal-settings-workspace: Authenticated users manage their own profile and console theme preferences from a full settings page backed by platform APIs.

Modified Capabilities

  • None.

Impact

  • Affects platform/config and platform startup tests for .env loading and storage backend selection.
  • Affects platform_web route definitions, page registry, shell account controls, session usage, API-bound personal settings UI, tests, and shared styling.
  • Does not add billing, cloud host sales, external marketplace behavior, raw AI key exposure, or plugin direct access to platform/run internals.