80cff6dad3a96f6b9c796093568870f323e136c0
Two paths in `WebSurfaceStore::tick` were downgrading a perfectly good Ready frame back to Failed / Loading on every transient hiccup: - `WebSurfaceRuntimeFrame::Failed` overwrote the surface state unconditionally. Combined with the 125 Hz tick (which submits a Poll for every visible tab and any transient ensure / poll error becomes a Failed response), even one parse glitch wiped the rendered page. - The `initial_display_gate_message` and `should_hold_initial_frame` checks for incoming Ready frames hardcoded `has_previous_frame = false`, so a stray empty paint pass after the page had already rendered would knock the surface back to Loading or Failed. Detect whether the surface already has a `Ready(_)` state and: - ignore Failed responses (logging through `tracing` for diagnostics) while a real frame is on screen; - pass that "had ready" signal into the gate / hold checks so they only apply to the very first paint, not later refreshes. The page now stays put even when Servo emits a momentary error; only the first-paint failure path can mark the surface Failed.
ELY Browser
Native Rust + GPUI browser workspace for ELY Browser by Elydora.
The repository is organized around explicit product boundaries from PRD.md:
domain state, browser orchestration, design tokens, GPUI shell, and Servo host contracts.
Reference GPUI ecosystem repositories live under references/ for local review and are excluded
from version control.
Local Commands
cargo fmt --all --check
cargo check --workspace --all-targets
cargo clippy --workspace --all-targets -- -D warnings
cargo test --workspace --all-targets
cargo check -p ely_servo_host --features servo-engine,hardware-render --all-targets
cargo clippy -p ely_servo_host --features servo-engine,hardware-render --all-targets -- -D warnings
cargo test -p ely_servo_host --features servo-engine --test software_host
scripts/verify_prd_site_rendering.sh
scripts/verify_windows_app_manifest.sh
cargo run -p ely_app
Cloudflare Auth Configuration
/api/auth/* is served by Better Auth in the Cloudflare Worker. Local wrangler dev
uses ELY_AUTH_BASE_URL from cloudflare/wrangler.toml; deployed environments should
set the matching public Worker origin.
Use Wrangler secrets or an untracked cloudflare/.dev.vars file for the remaining auth
bindings:
wrangler secret put ELY_AUTH_SECRET
wrangler secret put ELY_AUTH_GOOGLE_CLIENT_ID
wrangler secret put ELY_AUTH_GOOGLE_CLIENT_SECRET
wrangler secret put ELY_AUTH_GITHUB_CLIENT_ID
wrangler secret put ELY_AUTH_GITHUB_CLIENT_SECRET
wrangler secret put ELY_AUTH_EMAIL_OTP_ENDPOINT
wrangler secret put ELY_AUTH_EMAIL_OTP_TOKEN
Languages
Rust
76.2%
TypeScript
18.6%
JavaScript
3.8%
Shell
0.8%
CSS
0.3%
Other
0.2%