feat(ui): implement extensible theme system with dark/light modes#7
Merged
Conversation
Add VS Code-inspired CSS custom property theme architecture supporting Tokyo Night (dark) and VS Code Light themes. Replace hardcoded colors with semantic tokens. Redesign layout with a 32px header bar that bridges the native macOS title bar and terminal content, eliminating the 48px dark padding gap. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
🔒 门禁检查结果
Rust 测试覆盖率
✅ 所有检查通过,可以合入
|
AXUIElementCopyAttributeValue crashed with SIGSEGV when called with invalid pointers (e.g. address 0x9). Added triple validation before every AX call: null check, address range check (MIN_VALID_PTR=0x1000), and AXUIElementGetPid validation. Also fixed theme switch bug where terminal content was lost by updating xterm theme in-place instead of disposing and recreating the terminal. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The Tauri window had a visible black border around the webview content caused by the default opaque window background. Fixed by enabling transparent window mode with no native decorations, using our custom header bar as the title bar. Added macOS traffic light spacing and window drag region for proper frameless window behavior. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Restructure the sandbox window UI from single-panel to a professional three-panel layout matching the Atlas-style design: - Dark sidebar with logo, navigation, and instance list - Main dashboard with terminal card (resource stats), screenshot button, and instances list - Right detail panel with sandbox status, tools, network, and files info Extended theme system with 5 new tokens (sidebarBg/Fg/Border/Active, panelBg) for consistent theming across both dark and light modes. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Terminal now fills the entire middle panel (removed fixed 320px height) - Removed Instances list from Dashboard (kept only in sidebar) - Sidebar shows actual command (e.g., "claude -p 你是谁?") instead of sandbox ID - Fetches command from Tauri IPC get_sandbox_config Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
… tests - Remove right detail panel, terminal fills full width - Simplify sidebar to instances list + dark/light mode toggle only - Use titleBarStyle "Overlay" for native macOS traffic light buttons - Add min window size (800x500) and center on launch - Add logging to CLI start and Tauri arg parsing for debugging - Add 17 unit tests covering arg parsing, config construction, kind derivation, and CLI→Tauri round-trip scenarios Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
- Set Tauri window title to empty string to remove "System Test Sandbox" text next to traffic light buttons - Replace sandbox ID with actual command name in Dashboard card header - Remove unused health state and HealthResponse import Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
--sandbox-*CSS custom properties#f3f3f3surfaces,#0090f1accent)ThemeRegistry— add future themes with oneregistry.register()callTest plan
pnpm typecheckpassespnpm test:unitpassespnpm buildsucceeds🤖 Generated with Claude Code