Skip to content

feat(gui): sidebar settings nav + inline per-engine API keys (26.05.12)#64

Merged
ErikChevalier merged 1 commit into
mainfrom
feat/settings-sidebar-inline-keys
Jun 1, 2026
Merged

feat(gui): sidebar settings nav + inline per-engine API keys (26.05.12)#64
ErikChevalier merged 1 commit into
mainfrom
feat/settings-sidebar-inline-keys

Conversation

@ErikChevalier
Copy link
Copy Markdown
Contributor

Settings dialog redesign, plus the release bump to 26.05.12.

Changes

  • Left-hand navigation column replaces the row of top tabs (QListWidget + QStackedWidget, styled #settingsNav for light/dark).
  • API keys inline on the Search engines page: each key-requiring engine has its password field + Save/Clear directly under its checkbox, grayed out until the engine is checked. The standalone API keys section is removed.
  • Key-requiring engines default to unchecked (Brave / Mojeek API / Kagi). Free engines stay on. is_engine_enabled derives the per-engine default from requires_api_key, so the checkbox state and the in-process engine builder agree.
  • Fix: saving/clearing the Kagi key now updates the right engine's status (it previously updated Mojeek's), since each engine owns its inline field.

Tests

Added: API-engine default-off helper assertions; sidebar-nav-has-no-API-keys-section; inline-key-field-grays-until-engine-checked. Full suite green (ruff + mypy + pytest, 525 tests). Rendered the dialog offscreen to verify layout in dark theme.

Note

Existing profiles that never explicitly toggled a key-requiring engine will see it flip to off under the new default; re-check it (with a key saved) to keep using it.

🤖 Generated with Claude Code

Settings dialog moves from top tabs to a left-hand navigation column, and
the BYO API keys are entered inline on the Search engines page: each
key-requiring engine has its password field + Save/Clear directly under its
checkbox, disabled until the engine is checked. The standalone API keys
section is removed.

Key-requiring engines (Brave / Mojeek API / Kagi) now default to unchecked;
the free engines stay on. is_engine_enabled resolves the per-engine default
from requires_api_key, so both the checkbox state and the in-process engine
builder agree.

Also fixes a latent bug where saving/clearing the Kagi key updated Mojeek's
status label, now that each engine owns its inline field and status.

Bumps version to 26.05.12.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@ErikChevalier ErikChevalier merged commit 4a93261 into main Jun 1, 2026
1 check passed
@ErikChevalier ErikChevalier deleted the feat/settings-sidebar-inline-keys branch June 1, 2026 01:56
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