feat: comprehensive browser engine improvements + docs refresh#87
feat: comprehensive browser engine improvements + docs refresh#87AndrewAltimit merged 4 commits intomainfrom
Conversation
…erf, security (#87) Major browser engine overhaul across 63 files with 164 new tests (1395 total). CSS engine: calc() expressions, @supports queries, @keyframes/animation, transitions, transforms (translate/scale/rotate), :is()/:where() selectors, :focus/:focus-visible, align-content/align-self/order (flex), minmax()/span (grid), overflow scroll/auto, position sticky, outline, multiple box shadows with inset, prefers-color-scheme/orientation media queries. HTTP/networking: POST method, session-scoped cookie jar, gzip/deflate decompression via flate2, conditional requests (ETag/If-Modified-Since/304), referrer policy, Content Security Policy parsing and enforcement. Forms: POST submission, validation (required/minlength/maxlength/pattern/ min/max), Tab/Shift+Tab focus cycling with visual focus ring, <details>/ <summary> toggle with disclosure triangles. JavaScript: location.assign/replace/reload, history.back/forward/go, location.href setter, nav action queue draining during tick. Performance: hover restyle skips relayout for visual-only changes, persistent text measurement cache across relayouts, zoom/text scaling (0.5x-3.0x). Rendering: horizontal scrolling with viewport culling, stacking context z-order isolation, transform offsets in paint, GIF decode via gif crate. Reader mode: link density scoring, image preservation, byline detection, improved heading extraction. Security: CSP default-src/script-src enforcement, referrer header with query/fragment stripping. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Crate count: 34 → 37 (added oasis-rasterize, oasis-i18n, oasis-test-backend) - Workspace members: 32 → 35 - Test count: 5,800+ → 6,600+ - Widget count: 31 → 32 (Accordion was missing from some listings) - External TOML skins: 12 → 14 (added protanopia, tritanopia) - Total skins: 18 → 20 - Extracted app crates: 12 → 11 (corrected count) - Browser engine descriptions updated to reflect new capabilities: flex/grid layout, calc(), transforms, animations, transitions, @supports, cookies, gzip, CSP - CI pipeline in AGENTS.md aligned with CLAUDE.md (added nightly clippy) - Fixed in: README, CLAUDE.md, AGENTS.md, CONTRIBUTING.md, docs/design.md, docs/getting-started.md, docs/adr/005-toml-skin-system.md, site/index.html, site/journal/index.html, site/journal/01, site/journal/06 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Gemini AI Code ReviewIssues (if any)
Previous Issues (for incremental reviews)(none) Suggestions (if any)(none) Notes
Generated by Gemini AI (gemini-3.1-pro-preview). 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. |
…mmit hooks - clippy: runs on every commit when .rs files change (was push-only) - doc build: RUSTDOCFLAGS="-D warnings" cargo doc --workspace --no-deps - cargo-deny: license/advisory audit on pre-push when Cargo files change - md-link-check: internal link validation on commit when .md files change - fix: broken intra-doc link in search.rs (set_matches -> Self::set_matches) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
Post-PR update (commits 3 and 4): Commit 3 -- docs: update stale counts and descriptions across docs and site Audited all 21 markdown files and 12 site HTML files for stale content. Fixed 14 categories of staleness across 11 files:
Commit 4 -- chore: add clippy, doc build, cargo-deny, and md-link-check to pre-commit hooks The doc build was not part of pre-commit, which meant broken intra-doc links and rustdoc warnings were only caught in CI. Fixed by adding four new hooks:
Also fixed a broken intra-doc link in search.rs ( |
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)(none) Notes
Generated by Gemini AI (gemini-3.1-pro-preview). Supplementary to human reviews. |
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. |

Summary
Browser Engine -- CSS
calc()expressions with recursive descent evaluator (px, em, rem, pt, %)@supportsfeature queries withnot/and/oroperators@keyframes/animation(shorthand + 8 longhands, AnimationEngine with cubic-bezier easing)transitionproperty (TransitionEngine with all TimingFunction variants)transform(translate, scale, rotate -- offset computation in paint):is()/:where()selectors with correct specificity:focus/:focus-visiblepseudo-classes (via CascadeContext)align-content,align-self,order(flexbox)minmax(), grid span placement (grid)position: stickywith scroll-clamped paint offsetoutlineproperty (width, color, style, offset + shorthand)box-shadowwith inset supportOverflow::Scroll/Overflow::Auto@media (prefers-color-scheme)and(orientation)Browser Engine -- HTTP/Networking
Browser Engine -- Forms and UX
Browser Engine -- JavaScript
Browser Engine -- Performance
Browser Engine -- Security
Reader Mode
Documentation Refresh
Pre-commit Hooks
Test plan
Generated with Claude Code (https://claude.com/claude-code)