feat: architecture cleanup, backend parity, 489 new tests, accessibility, and docs#27
Conversation
Full-codebase improvement spanning architecture, backends, testing, UI, browser, terminal, window manager, performance, docs, and accessibility. 70 files changed, +5056/-333 lines, 489 new tests (2428 -> 2917). Phase 1 - Architecture: GradientStyle enum, TextMetrics struct, pub(crate) browser modules, oasis-core prelude, pinned git deps. Phase 2 - Backend parity: SDL network/audio streaming, UE5 graceful audio stubs with callbacks, PSP shape rendering (rounded rect, circle, line). Phase 3 - Test coverage: 489 new tests across oasis-app (68), oasis-ui (140), oasis-wm (89), oasis-vfs (52), oasis-net (27), oasis-core plugin (32), plus property-based tests. Phase 4 - UI completeness: Tooltip widget, keyboard navigation system (focus ring, Tab/Shift-Tab), enhanced modal dialogs, visual glitch fixes. Phase 5 - Browser CSS3: Incremental layout with dirty flags and edge cache, HTML nesting depth guard (256), CSS value proptest. Phase 6 - Terminal: MAX_OUTPUT_LINES 2000, stderr separation (2>/2>>/ 2>&1), shell functions, help --category filter. Phase 7 - WM polish: WindowId(Rc<str>) for cheap cloning, screen bounds clamping, edge snapping (8px), titlebar gradients, modal z-order (normal < always_on_top < modal). Phase 8 - Performance: Incremental browser layout, PSP stack buffer safety, benchmarks in CI pipeline. Phase 9 - Documentation: Troubleshooting guide, plugin dev guide, command dev guide, 16 Cargo.toml doc URLs, feature flag docs. Phase 10 - Accessibility: Reduced-motion mode, font scaling (0.5x-3.0x), colorblind theme (deuteranopia-safe), spinner widget. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Wraps the ptr::write + ptr::add calls in an unsafe block per Rust 2024 unsafe_op_in_unsafe_fn requirements. 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)
Notes
Generated by Codex AI (gpt-5.3-codex). Supplementary to human reviews. |
|
No review feedback found to process. |
- PSP shapes: fix thick diagonal lines rendering as 1px by applying perpendicular offset in float before casting to i32 - Focus indicator: use saturating_add_signed for offset to prevent overflow/panic on negative FocusStyle.offset values - SDL rounded rect gradient: fall back to fill_rounded_rect with primary_color instead of fill_rect_gradient to preserve corner radius Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Review feedback addressed (2aef993)Fixed all 3 bugs identified by Gemini and Codex: 1. PSP thick diagonal lines rendering as 1px (
2. Focus indicator overflow on negative offsets (
3. SDL rounded rect gradient drops corner radius (
Also pushed the PSP Cargo.lock update. All 2,917 tests pass, clippy clean. |
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. |
The pipeline was timing out after adding benchmarks, coverage, and expanded test suites across the comprehensive improvements branch. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
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)(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
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)(none) Notes
Generated by Codex AI (gpt-5.3-codex). Supplementary to human reviews. |
The Bar variant's draw() did not render self.label, even though measure() reserved width for it in all styles. This caused the progress bar to stretch over the label's allocated space. Now the Bar arm draws the label text and offsets the bar track accordingly. 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)(none) 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)(none) Previous Issues (for incremental reviews)
Suggestions (if any)(none) Notes
Generated by Codex AI (gpt-5.3-codex). Supplementary to human reviews. |
Review Response Agent (Iteration 3)Status: No changes needed Fixed Issues
Ignored Issues
Deferred to Human
Notes
The agent reviewed feedback but determined no code changes were required. |

Summary
Full-codebase improvement spanning 10 phases, 70 files changed, +7,895/-333 lines, 489 new tests (2,428 -> 2,917).
Test plan
cargo clippy --workspace -- -D warningspasses cleancargo test --workspace-- 2,917 tests pass, 0 failurescargo fmt --all -- --checkpasses cleanGenerated with Claude Code