feat: comprehensive UI visual polish, theme engine, and PSP release artifacts - #36
Conversation
…ions Replace 58 hardcoded Color::rgb() calls across terminal, app runner, OSK, start menu, and dashboard with ActiveTheme-derived values. Extend the skin engine with AppOverrides, OskOverrides, GeometryOverrides fields, and start menu item color palette derivation. Terminal layout is now responsive to screen resolution (dynamic visible lines). Fade and page-slide transitions use cubic ease-in-out easing. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ts, and focus ring Phase 2: Dashboard page-slide animation with eased x-offset, start menu fade-in/out with alpha + vertical slide, smooth dashboard cursor lerp. Phase 3: HSL color utilities (rgb_to_hsl, hsl_to_rgb, rotate_hue, adjust_saturation) with proptest roundtrip tests. Unified oasis-ui Theme into ActiveTheme. Phase 4: Four new procedural wallpaper patterns (grid, scanlines, noise, dots) with animated wave phase support. Terminal/tactical/agent-terminal skins now use distinct wallpaper styles. Phase 5: SDI text shadow rendering, themed terminal scrollbar (width/color/radius from ActiveTheme), resolution-aware cursor scaling (1x/2x/3x based on screen width), configurable terminal line height. Phase 6: Enhanced corrupted skin effects (horizontal tear bands, RGB channel separation via text shadow), OSK mode indicator tabs with flash highlight, focus ring system (ensure_focus_ring helper + ActiveTheme fields). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
… rendering fixes Phase 3 visual polish: dedicated terminal/prompt/title-bar theme colors, responsive app runner and OSK layouts scaling to any resolution, configurable bar/menu strings via skin TOML, scrollbar/tab geometry overrides, press-flash micro-animations on dashboard icons and OSK keys, smooth app list selection lerp, theme-driven screenshot tool, and SDL stroke_circle + font metric fixes. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…d fonts Phase 4 visual polish: eliminate remaining hardcoded colors and font sizes with themed alternatives, add terminal cursor blink with configurable rate, enhance app selection highlight with rounded bg and left accent bar, dim inactive window frames, introduce toast notification system with fade animation, and update skin showcases with new fields. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…allpaper styles Phase 5 visual polish: layout loader now parses text_shadow and shadow_color fields from TOML; bar/toast text shadows auto-derive from gradient_enabled; app title bars support gradients and shadow depth; five animation durations (cursor lerp, page slide, start menu, toast fade, press flash) are now themeable via geometry overrides; two new wallpaper styles (stripes, checkerboard); all skins updated to use new features. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Replace fixed-width char estimates (len * 8) with proportional glyph_advance_scaled() in statusbar and bottombar, fixing text overlap and clock truncation at higher resolutions - Remove default HTTP://OASIS.LOCAL dummy URL from bottom bar; conditionally hide URL label, bezel, and USB indicator when empty - Resolve skin before creating SDL backend so OASIS_SKIN=xp launches at the skin's native resolution (1024x768) instead of default 480x272 - Apply with_screen_size() to ActiveTheme in main app for correct layout - Fix XP audio page contrast (use app_text directly, add dark text overrides) - Fix agent-terminal prompt clipping (extend terminal_bg to full height) - Add --all flag to screenshot tool for single-command capture of all 8 skins - Reduce cursor scale thresholds (scale 1 default, scale 2 at 1920+) - Update all 32 skin screenshots Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add z field to skin layout loader so skins can control draw order - Set terminal_bg to z=-1 in all terminal skins, fixing prompt text hidden by HashMap-ordered background rectangle - Add terminal_output_color (#000000) and terminal_prompt_color (#003399) to XP skin for readable text on cream content_bg - Update desktop clock_display with real time in screenshot tool - Clean up stale file manager text objects on window close - Update affected screenshots Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…itions Expose 16 hardcoded values as theme fields (cursor_pad, press_flash_lighten, selection lerp speeds, start menu geometry, title bar text shadows, toast dimensions, item separators). Wire ToastManager into AppState with slide-in animation using ease_out_cubic. Add smooth lerp-based highlight movement in start menu and proximity-based page dot color transitions. Update all skins to showcase new capabilities. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Upload EBOOT.PBP as artifact from CI job after PSP build - Download and include it in GitHub releases alongside desktop binaries - Add EBOOT.PBP to release notes binary table - Bump psp dependency from rev 4c47345 to d6e53a1 (includes sysroot cache staleness fix for nightly toolchain updates) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Gemini AI Code ReviewIssues (if any)
Previous Issues (for incremental reviews)(none) Suggestions (if any)
Notes
Generated by Gemini AI (gemini-3.1-pro-preview). Supplementary to human reviews. |
Codex AI Code ReviewIssues (if any)
Previous Issues (for incremental reviews)
Suggestions (if any)(none) Notes
Generated by Codex AI (gpt-5.3-codex). Supplementary to human reviews. |
Automated fix by Claude in response to Gemini/Codex review. Iteration: 1/5 Co-Authored-By: AI Review Agent <noreply@anthropic.com>
Review Response Agent (Iteration 1)Status: Changes committed, pushing... Commit: Fixed Issues
Ignored Issues
Deferred to Human
Notes
Automated summary of agent fixes. |
Gemini AI Incremental ReviewThis is an incremental review focusing on changes since the last review. Issues (if any)
Previous Issues (for incremental reviews)
Suggestions (if any)
Notes
Generated by Gemini AI (gemini-3.1-pro-preview). Supplementary to human reviews. |
Codex AI Incremental ReviewThis is an incremental review focusing on changes since the last review. Issues (if any)
Previous Issues (for incremental reviews)
Suggestions (if any)
Notes
Generated by Codex AI (gpt-5.3-codex). Supplementary to human reviews. |
- Fix dual-panel right margin: right_w calculation now accounts for right-edge padding so both panels have symmetric 8px margins - Fix WASM cursor scaling: blit dimensions use cursor scale factor instead of hardcoded 12x18 - Add ToastManager to WASM backend with tick/update_sdi/hide_sdi matching desktop render.rs parity - Add bottom_bar.tick_animation() to WASM update_sdi - Add hide_media_page() in WASM Dashboard/MediaTab::None branch Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Review Response Agent (Iteration 2)Status: No changes needed Fixed Issues
Ignored Issues
Deferred to Human
Notes
The agent reviewed feedback but determined no code changes were required. |
Gemini AI Incremental ReviewThis is an incremental review focusing on changes since the last review. Issues (if any)(none) Previous Issues (for incremental reviews)
Suggestions (if any)
Notes
Generated by Gemini AI (gemini-3.1-pro-preview). Supplementary to human reviews. |
Codex AI Incremental ReviewThis is an incremental review focusing on changes since the last review. Issues (if any)
Previous Issues (for incremental reviews)
Suggestions (if any)
Notes
Generated by Codex AI (gpt-5.3-codex). Supplementary to human reviews. |
Automated fix by Claude in response to Gemini/Codex review. Iteration: 3/5 Co-Authored-By: AI Review Agent <noreply@anthropic.com>
Review Response Agent (Iteration 3)Status: Changes committed, pushing... Commit: Fixed Issues
Ignored Issues
Deferred to Human
Notes
Automated summary of agent fixes. |
Codex AI Incremental ReviewThis is an incremental review focusing on changes since the last review. Issues (if any)
Previous Issues (for incremental reviews)
Suggestions (if any)
Notes
Generated by Codex AI (gpt-5.3-codex). Supplementary to human reviews. |
Review Response Agent (Iteration 4)Status: No changes needed Fixed Issues
Ignored Issues
Deferred to Human
Notes
The agent reviewed feedback but determined no code changes were required. |

Summary
Comprehensive visual refinement across 6 phases, transforming the UI from hardcoded values to a fully data-driven theme engine with 170+ skin fields, smooth animations, and procedural wallpapers. Also adds PSP EBOOT to GitHub release artifacts.
Phase 1: Theme-Driven UI Colors
Color::rgb()calls withActiveTheme-derived values across terminal, app runner, OSK, start menu, and dashboardAppOverrides,OskOverrides,GeometryOverrides, start menu item color derivationPhase 2: Animations, Wallpapers, Cursor Scaling
Phase 3: Responsive Layouts & Input Feedback
Phase 4: Toast Notifications & Selection Accents
Phase 5: Text Shadows, Gradients, Animation Theming
Phase 6: Final Polish & Theme Completeness
CI & PSP
Stats
Test plan
Generated with Claude Code