# 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 ```bash cargo --locked fmt --all --check cargo check --locked --workspace --all-targets cargo clippy --locked --workspace --all-targets -- -D warnings cargo test --locked --workspace --all-targets cargo check --locked -p ely_servo_host --features servo-engine,hardware-render --all-targets cargo clippy --locked -p ely_servo_host --features servo-engine,hardware-render --all-targets -- -D warnings cargo test --locked -p ely_servo_host --features servo-engine,hardware-render --all-targets -- --test-threads=1 scripts/verify_prd_site_rendering.sh scripts/verify_windows_app_manifest.sh scripts/create_macos_app_bundle.sh scripts/create_native_distribution.sh scripts/run_dev.sh ``` The macOS hardware tests cover the CGL rendering context, IOSurface export, sidecar Mach descriptor transfer, GPUI surface lease, and IOSurface use-count release. `scripts/verify_prd_site_rendering.sh` keeps the software RGBA assertions. The local macOS QA bundle places both release executables in `Contents/MacOS`, installs `AppIcon.icns`, and verifies its code signature. It uses an ad-hoc signature by default; `ELY_CODESIGN_IDENTITY` selects an installed signing identity. Native distribution inputs place `ely_app` and `ely_servo_sidecar` beside each other at the distribution root. The packaging scripts verify those paths and executable permissions. ## 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: ```bash 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 ```