Disciplines · Proposals

Study Workspace — Supported Baselines (YSD-1015)

Grounded in the existing Playwright matrix (apps/oshun/web/playwright.config.ts):

8sections4 minread

On this page

The environments the workspace's test matrices target. A baseline here means: CI and the walking-skeleton Playwright suites (YSD-1036/1037) run against it, and a regression on it blocks release. Anything not listed is UNSUPPORTED-UNTESTED — it may work, but no gate protects it, and support claims for it are forbidden until it joins this file with a matrix entry.

Desktop / OS#

Tier Target Gate
Primary Linux x86_64 (CI runners; the dev sandbox) every suite
Primary macOS 14+ (Apple Silicon) — developer workstations local runs; CI on release branches
Secondary Windows 11 via Chromium only Playwright smoke on release branches

Browser#

Grounded in the existing Playwright matrix (apps/oshun/web/playwright.config.ts):

Tier Browser Notes
Primary Chromium (Desktop Chrome device profile) full E2E + a11y suites
Primary Mobile Chromium (Pixel 7 device profile) studio responsive checks
Secondary Firefox (latest ESR) playback + annotation smoke
Secondary WebKit (latest Playwright build) playback + annotation smoke

No Internet Explorer, no legacy Edge. Frame-accurate playback features (YSD-8001+) require requestVideoFrameCallback; where a secondary browser lacks it, the UI must present the honest degraded mode, and the matrix asserts the degradation notice — not silent wrongness.

Hardware#

Tier Profile Gate
Primary 4-core x86_64, 8 GB RAM, no GPU all CI suites (matches runners)
Primary Apple Silicon 16 GB local development
Deferred GPU-accelerated analysis (RunPod) Section 5 pipelines only; never assumed on-box

The dev sandbox has NO GPU; anything requiring one must be a fail-loud gated seam, exactly like the existing wgpu/llvmpipe arrangement.

Media decoders#

Tier Format Notes
Primary H.264/AVC in MP4, AAC/PCM audio proxy format for all playback tests
Primary VP9/WebM browser-native second source
Secondary H.265/HEVC decode only where the browser exposes it; capability-detected, never assumed
Prohibited in tests lossy re-encodes of watermarked evidence H.264 destroys watermarks — evidence fixtures ship lossless or synthetic

Assistive technology#

This section used to run the two tables below together, and running them together is a category error worth naming: an accessibility snapshot is the tree the browser exposes, which is what a screen reader is HANDED rather than what it SAYS. Screen readers disagree with the tree and with each other about when a live region interrupts, what a role means on a given element, and whether a name computed from three sources is announced or swallowed. Asserting the tree proves the product handed over what it meant to hand over. So the automated checks are listed as automated checks.

Assistive technology proper. Machine-readable as DECLARED_ASSISTIVE_TECHNOLOGIES in libs/yemaya/study-workspace/src/accessibility/at-task-completion.ts; the two must agree, and this table is the source.

Tier AT Modality Gate
Secondary VoiceOver (macOS) screen reader manual task-completion session (YSD-16065); release checklist, not CI

Automated checks under accessibility. Real and valuable, and none of them is a person using a tool, so none discharges a claim about assistive technology.

Tier Check Gate
Primary Keyboard-only operation Playwright keyboard journey (YSD-1037) on every walking-skeleton flow
Primary Screen reader semantics (ARIA tree asserted via Playwright accessibility snapshots) YSD-1037 assertions
Baseline rule 200% zoom + prefers-reduced-motion + forced-colors a11y suite assertions

Known gap, measured rather than asserted. Seven of the eight critical journeys demand switch access, speech input, magnification or braille — pinning an exact region is a pointer-precision task, and pointer precision is what a switch and a voice do not have. The table above declares one screen reader, so those journeys cannot be evaluated with anything the programme claims to support, and keyboard-navigation, focus-visible and text-resize are declared supported in the capability table with no drivable technology behind them. Run npx tsx tools/yemaya-study/check-accessibility-evidence.ts for the current list. Closing it is a decision about what to support, not a scheduling problem.

Locale#

Tier Locale Notes
Primary en (US/GH English) full suites
Primary RTL smoke (ar pseudo-locale) layout does not break; studio shell suite
Baseline rule ICU message formatting via @oshun/i18n; no concatenated strings lint + review

Study content itself is multilingual by contract (transcript language identity, cultural bounds); UI locale coverage expands with Section 16 localization items, and this file gains rows when it does.

Network#

Tier Profile Gate
Primary Unthrottled localhost all suites
Primary "Fast 3G" throttle (Playwright network conditions) playback resilience + autosave/offline-queue tests
Primary Offline transition mid-session notebook offline queue (YSD-15007) and resumable upload (YSD-5001) tests
Baseline rule every network feature states its behavior on disconnect; silent hangs are defects test assertions

Runtime#

  • Node.js ≥ 22 (workspace engines field); CI and the sandbox run 24.x.
  • PostgreSQL 16 + pgvector, Redis 7, MinIO (dev compose versions) — the authoritative-store integration suites (YSD-3010) pin these.