# Object N browser validation

Status: experimental, not cleared for release. Updated 2026-10-05.

## Verified

- Server, client and menu compile successfully with FTEQCC. Client and menu
  have zero warnings. Server retains two upstream unused-variable warnings
  (`cubeVolume` in breakable.qc and `e` in bomb_side.qc); no compiler errors.
- Package validation checks SHA-256, byte counts, gzip round trips, engine
  pin, source snapshot, ZIP integrity, all eight BSPs and their sequential
  destination graph. Personal configs/saves and non-campaign maps are excluded.
- Two consecutive builds of the zoom/input fix produced identical manifest
  hashes and byte counts. The later absolute-menu-input fix uses the same
  deterministic packaging path.
- In the Codex Chromium-based in-app browser: North Entrance and Loading Area
  render, the HUD appears, the native Resume action works, and holding the
  FTE aim command moves the weapon into aim and narrows the projection.
- The registered touch-aim command also activates zoom and releases back to
  normal view. The `page` command displays a readable note; the registered
  touch-Use command dismisses it. These were issued through the page's console
  form, not through simultaneous physical touchscreen input.
- Forced desktop touch mode hides action controls while the menu is open;
  its accessible Menu button closes the menu and restores those controls.
  Coordinate menu taps and fullscreen exit were not established in this
  automation environment and remain part of the real-browser/device gate.
- A quick-save written during the October 3 session restored North Entrance
  in the October 5 browser session, after the original tab had closed.
- Quake Shareware's e1m1 still launches and renders through the shared launcher.
- JavaScript syntax checks pass for the shared launcher, touch controls and
  Object N game configuration.

## Required before release

- Complete all eight maps through normal gameplay: triggers, puzzles, secrets,
  combat, death/reload and the Reactor ending. Loading maps individually is
  not a substitute. The finale-to-menu patch is not yet playthrough-certified.
- Test all save slots, storage denial/quota errors, game-to-game isolation and
  repeated restores across map transitions; one restored quick-save is not
  comprehensive save certification.
- Test desktop Firefox and a normal visible Chromium browser, including actual
  pointer lock and audible playback. The in-app browser reported pointer-lock
  limitations; it cannot establish normal mouse-look compatibility.
- Test physical Android Chrome and iOS Safari: simultaneous touch, rotation,
  safe areas, audio activation, background/resume and sustained memory use.
  Forced desktop touch controls are only a UI smoke test.
- Measure memory and performance through the full campaign. Download size is
  about 442 MiB; decoded textures, audio and engine memory require more.
- Broad regression checks for the remaining /play catalog games.

## Known asset observations

- The original `textures/door/elevator_norm.png` cannot be fully decoded by
  Pillow; the builder reports it and preserves the original bytes.
- Startup can emit three empty `no precache:` messages without stopping the
  tested maps. These still need tracing during campaign validation.

No live deployment has been performed. The upload archive is a staging artifact,
not evidence that these release gates have passed.
