Skip to content

R8a: remove the dead Theme setting (finding #9) - #175

Merged
dovvnloading merged 1 commit into
mainfrom
r8a/remove-dead-theme-setting
Jul 29, 2026
Merged

R8a: remove the dead Theme setting (finding #9)#175
dovvnloading merged 1 commit into
mainfrom
r8a/remove-dead-theme-setting

Conversation

@dovvnloading

Copy link
Copy Markdown
Owner

Problem

Settings' General page had a Theme select (Dark/Muted/Monochromatic) that persisted a real setTheme intent, but nothing in the SPA ever applied the value — no data-theme attribute, no alternate token set, the app rendered identically regardless of selection.

Change

Removed rather than wired up, per product decision: building two real alternate palettes is a design investment (new --gl-surface-* token sets need real color choices), not a mechanical fix, and a persisted preference that provably does nothing is worse than no preference.

Removed end to end:

  • The frontend Theme select and its options (SettingsDialog.tsx).
  • The setTheme intent and its handler (backend/settings.py).
  • get_theme/set_theme on SettingsManager, including the now-pointless in-memory backfill for legacy state files missing the key (graphlink_licensing.py).
  • The theme field from the app-settings wire contract, with the generated TS/JSON artifacts regenerated (contracts/graphlink_app_settings_payload.py).
  • The now-stale "Appearance" Help entry that described this exact control (help-data/sections.ts).

Test plan

Layer Result
npx tsc --noEmit clean
npx vitest run (full suite) 868/868 passed
python -m pytest -q (full suite) 1040/1040 passed
npm run check:schema 11/11 generated artifact sets up to date
npm run lint / npm run build clean

Live-verified against a running instance: Settings > General now opens directly to "Show Token Counter Overlay" with no Theme control, and the Notification-types checkboxes still round-trip correctly.

Settings' General page had a Theme select (Dark/Muted/Monochromatic) that
persisted a real setTheme intent, but nothing in the SPA ever applied the
value: no data-theme attribute, no alternate --gl-surface-* token set, the
app rendered identically regardless of selection. Per user decision,
removed rather than wired up - building two real alternate palettes is a
design investment, not a bug fix, and a persisted preference that provably
does nothing is worse than no preference.

Removed end to end: the frontend select and its options, the setTheme
intent and its handler, get_theme/set_theme on SettingsManager (including
the now-pointless in-memory backfill for legacy state files missing the
key), the theme field from the app-settings wire contract (regenerated),
and the now-stale "Appearance" Help entry that described this exact
control.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@dovvnloading
dovvnloading merged commit 585d747 into main Jul 29, 2026
2 checks passed
@dovvnloading
dovvnloading deleted the r8a/remove-dead-theme-setting branch July 29, 2026 10:22
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