Skip to content

feat: settings panel with config status, content width toggle#261

Merged
tomasz-tomczyk merged 15 commits intomainfrom
feat/settings-panel
Apr 13, 2026
Merged

feat: settings panel with config status, content width toggle#261
tomasz-tomczyk merged 15 commits intomainfrom
feat/settings-panel

Conversation

@tomasz-tomczyk
Copy link
Copy Markdown
Owner

@tomasz-tomczyk tomasz-tomczyk commented Apr 13, 2026

Summary

Replaces the ? keyboard shortcuts overlay with a tabbed Settings / Shortcuts / About modal panel, adding configuration status visibility and display preferences.

Settings tab

  • Display preferences: Theme toggle (moved from header) + Content Width toggle (new — Compact/Default/Wide)
  • Configuration status: Cards for Account, Agent Command, AI Integration, Share — each shows configured state or actionable setup guidance with copy-paste commands
  • Update notification: Folded into the panel (replaces the separate update modal)

Shortcuts tab

  • Keyboard shortcuts grouped by category (Navigation, Comments, Review, View)
  • Mode-specific shortcuts shown with inline badges instead of being hidden
  • Fixed-width first column for consistent alignment across groups

About tab

  • Version + update badge
  • Session diagnostics (mode, branch, base, round, files, review file path)
  • Links: Homepage (crit.md), GitHub, Changelog

Backend

  • /api/config extended with auth status, integration detection (current/stale), review file path, and config pass-throughs (no_integration_check, no_update_check)
  • New detectInstalledIntegrations() reports both current and stale integrations (existing function only reported stale)
  • Auth identity (name/email) cached on login for display in settings panel

Header cleanup

  • Theme pill removed (moved into Settings tab)
  • ? button replaced with gear icon
  • Update button now opens Settings tab instead of modal
  • Net result: header is simpler despite adding features

Other details

  • Content width default changes from 840px to 1040px
  • All icon colors use theme-aware CSS variables (works in both light and dark)
  • Dead update modal CSS (~115 lines) and stale shortcut selectors removed
  • Micro-interaction polish: panel entrance animation, sliding tab underline, card hover states, copy button feedback

Test plan

  • Go unit tests pass (go test ./...)
  • 549 E2E tests pass across all 5 Playwright projects
  • New settings-panel.spec.ts (15 tests) and settings-panel.filemode.spec.ts (9 tests)
  • Updated keyboard.spec.ts, theme.spec.ts, and variants for new panel structure
  • Verified both light and dark themes
  • Expert Go and frontend code reviews completed

🤖 Generated with Claude Code

tomasz-tomczyk and others added 15 commits April 13, 2026 15:02
…tcuts/theme-pill styles

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
… review path

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…nt width toggle

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…nd width pills

- Remove colored left-border on config cards, use subtle full-border instead
- Remove heavy bg-tertiary backgrounds on display rows and about session
- Add SVG icons and hover effects to About tab links (Linear-style)
- Fix width pill button sizing with explicit padding
- Replace malformed gear SVG with clean filled icon
- Add "(file mode only)" note to Content Width label
- Show full agent_cmd instead of just agent_name in settings

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…or new panel

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…n: prefix from hints

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…nce with link

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ppet

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…al CSS and shortcut selectors

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
… mode

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…ontal links

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@tomasz-tomczyk tomasz-tomczyk merged commit 32a40ee into main Apr 13, 2026
3 checks passed
@tomasz-tomczyk tomasz-tomczyk deleted the feat/settings-panel branch April 13, 2026 20:26
tomasz-tomczyk added a commit that referenced this pull request May 2, 2026
* feat: consolidate settings cookies, restore update dismiss

- Collapse 8 crit-* preference cookies into a single crit-settings JSON
  cookie via getSetting/setSetting helpers; crit-templates kept separate
  (user-defined, can be long). One-time idempotent migration on load
  expires the legacy cookies.
- Restore "Don't remind me until next version" on the Update card in
  the settings panel (lost in #261 when the modal was replaced).
- Add per-agent dismiss to the AI Integration card, keyed on the
  bundled integration's content hash so the reminder reappears when
  the template updates. Backend exposes hash on integrationStatus.
- Header update indicator now consults a unified predicate that
  filters both brew and integration entries against their respective
  dismiss keys.
- Style dismiss controls with new .config-card-dismiss / .config-card-
  dismissed classes that match the existing .config-card-copy ghost-
  action pattern instead of misusing .about-link.

* test: update hide-resolved test for consolidated settings cookie
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