mirror of
https://github.com/anomalyco/opencode.git
synced 2026-07-24 20:25:36 -04:00
9e0d3976e1
Co-authored-by: Frank <frank@anoma.ly> Co-authored-by: Aarav Sareen <96787824+arvsrn@users.noreply.github.com> Co-authored-by: Brendan Allan <git@brendonovich.dev> Co-authored-by: opencode-agent[bot] <opencode-agent[bot]@users.noreply.github.com> Co-authored-by: Jack <jack@anoma.ly> Co-authored-by: Brendan Allan <14191578+Brendonovich@users.noreply.github.com> Co-authored-by: Shoubhit Dash <shoubhit2005@gmail.com> Co-authored-by: opencode-agent[bot] <219766164+opencode-agent[bot]@users.noreply.github.com> Co-authored-by: James Long <longster@gmail.com> Co-authored-by: Dustin Deus <deusdustin@gmail.com> Co-authored-by: starptech <starptech@starptechs-MBP.fritz.box> Co-authored-by: Luke Parker <10430890+Hona@users.noreply.github.com> Co-authored-by: 𝓛𝓲𝓽𝓽𝓵𝓮 𝓕𝓻𝓪𝓷𝓴 <little-frank@opencord.local> Co-authored-by: Dax <mail@thdxr.com> Co-authored-by: usrnk1 <7547651+usrnk1@users.noreply.github.com> Co-authored-by: Jay <53023+jayair@users.noreply.github.com> Co-authored-by: runvip <164729189+runvip@users.noreply.github.com> Co-authored-by: opencode <opencode@sst.dev> Co-authored-by: Julian Coy <julian@ex-machina.co> Co-authored-by: Vladimir Glafirov <vglafirov@gitlab.com> Co-authored-by: Adam <2363879+adamdotdevin@users.noreply.github.com> Co-authored-by: Kit Langton <kit.langton@gmail.com> Co-authored-by: Simon Klee <hello@simonklee.dk> Co-authored-by: Jay <air@live.ca> Co-authored-by: David Hill <1879069+iamdavidhill@users.noreply.github.com>
62 lines
3.2 KiB
Markdown
62 lines
3.2 KiB
Markdown
# Timeline Layout Continuity
|
|
|
|
Run from `packages/app`:
|
|
|
|
```sh
|
|
bun run test:stability
|
|
```
|
|
|
|
The suite runs a production build in one Chromium worker. Selected scenarios use deterministic 4x CPU stress after application readiness. This is a stress profile, not emulation of a specific device.
|
|
|
|
## What It Proves
|
|
|
|
The continuity probe samples DOM-derived layout and visibility state across browser render opportunities. Tests declare explicit contracts such as:
|
|
|
|
- Preserve a visible semantic anchor while the user is away from the bottom.
|
|
- Preserve end anchoring while active content grows or new content appears.
|
|
- Keep adjacent visible rows ordered without material overlap.
|
|
- Keep user-selected disclosure state through updates and virtualization.
|
|
- Avoid a sampled blank interval while one visible surface replaces another.
|
|
- Preserve logical row and control identity where local state or focus depends on it.
|
|
- Keep keyboard, wheel, and nested-scroll ownership consistent during remeasurement.
|
|
|
|
The suite exercises real browser reducer, projection, component, virtualizer, layout, focus, and interaction code. The backend and event producer are controlled fixtures.
|
|
|
|
## What It Does Not Prove
|
|
|
|
The pass/fail oracle does not inspect every compositor-presented pixel. A sample taken after `requestAnimationFrame` is a DOM/layout observation, not proof that every sampled state was displayed or that every displayed frame was sampled.
|
|
|
|
The suite does not provide complete coverage for:
|
|
|
|
- Compositor-only or raster-only glitches.
|
|
- Color, contrast, canvas, WebGL, masks, irregular clips, or arbitrary occlusion.
|
|
- Physical display refresh rates, native OS scaling, or a named low-end device.
|
|
- TCP packetization, proxy buffering, or the complete real server/provider pipeline.
|
|
|
|
Playwright video, trace, screenshots, and observation JSON are diagnostic evidence. They are not pixel baselines and do not participate in normal pass/fail decisions.
|
|
|
|
For optional before/violation/after screenshots, set `OPENCODE_STABILITY_CAPTURE=1`. Capture is opt-in because compositor readback can perturb timing.
|
|
|
|
## Test Layers
|
|
|
|
- **Projection:** admitted rows, grouping, labels, and final visible states.
|
|
- **Local state:** disclosure state, identity, duplicate delivery, and virtualization restoration.
|
|
- **Interaction:** wheel, keyboard, nested scrolling, actionability, and focus behavior.
|
|
- **Layout continuity:** anchoring, adjacency, responsive reflow, and visible surface handoffs.
|
|
- **Reducer hardening:** validly shaped but intentionally reordered, duplicated, removed, or replaced events.
|
|
- **Oracle contract:** pure analyzer and browser sampler calibration tests.
|
|
|
|
Production-lifecycle fixtures should model states emitted by the current producer. Impossible or reordered sequences belong in reducer-hardening tests and must not be described as normal provider behavior.
|
|
|
|
## Diagnostics
|
|
|
|
Failures retain:
|
|
|
|
- `video.webm`
|
|
- `trace.zip`
|
|
- failure screenshot
|
|
- sampled DOM/layout trace JSON
|
|
- event markers and summarized violations
|
|
|
|
The analyzer records both unclipped layout bounds and ancestor-clipped visible intersections. Scrollbar and raw `scrollTop` changes alone do not fail continuity checks; user-visible semantic anchor movement does.
|