Skip to content

fix(responsive): preserve Forge workspace across display changes - #13

Merged
Enksodsoon merged 2 commits into
mainfrom
codex/responsive-display-coverage-main
Oct 14, 2026
Merged

Enksodsoon merged 2 commits into
mainfrom
codex/responsive-display-coverage-main

Conversation

@Enksodsoon

Copy link
Copy Markdown
Owner

Why

Forge workspace panels and actions become hard to reach when the window narrows or loses height.

What changed

  • Keep docked panel preferences separate from transient overlays across breakpoint changes.
  • Normalize teaching-region selection against the rendered image and test it with synthetic landmarks.
  • Reserve OpenSeadragon capacity before construction and keep the two-job loader budget.

Scope

  • Repairs the existing Forge workspace and Study authoring views without changing public APIs or saved data.
  • Full route-state coverage, mixed pointer transitions, screen-reader checks, real Edge browser zoom, and physical-device checks remain open.

Blast Radius

The change affects Forge workspace layout and viewer creation. It does not change backend behavior or persisted records.

Verification

  • pnpm --dir frontend test: 99 tests passed.
  • pnpm --dir frontend build: TypeScript, Vite build, and bundle budget passed. Repository policy and strict OpenSpec validation passed.
  • Chromium responsive tests passed 36 cases with 1 touch-project-only skip. Firefox and WebKit representatives passed 8 cases.

Keep docked preferences separate from transient panel state across width changes. Reserve OpenSeadragon capacity before constructing a viewer so a rejected create call leaves ownership with the caller. Verify viewport behavior with synthetic landmarks and state-retention tests.
@Enksodsoon

Copy link
Copy Markdown
Owner Author

PASS+NOTES

Reviewed PR #13 at head 25bc2abadcb25c3af6c93c49d169c96781004e69 against base d038e9f097fcc5ff523e24e782fba0f4814f0514 on branch codex/responsive-display-coverage-main. Stable binary base-to-head patch-id: c6804cdc2bf8f77a5a3232a52768c762b67286d0.

  • The requested Chromium specs passed: pnpm exec playwright test e2e/viewer-resource-budget.pw.ts e2e/teaching-landmarks.pw.ts --project=chromium (4 passed). Observed configured cache limits of 32 tiles per viewer; loaded tiles peaked at 16 total across the workspace primary, overview, and teaching viewers.
  • Compared isolated parent/head Vite previews with the same synthetic 640x320 cross slide at 390x844 and 1440x900. Opened and closed the navigator and inspector at both sizes. At 390x844 the head panels fit within the 390px viewport (navigator 340x712; inspector 374x712); at 1440x900 the docked navigator is 270x842 and inspector is 360x842. Document/body widths matched each viewport. No browser console errors, page errors, or failed requests were observed.
  • GitHub checks were still pending at review time: Java 17 on macOS and Windows.

Coverage here is limited to the synthetic Chromium scenarios and these viewport sizes; it does not cover the full route-state matrix, screen readers, physical devices, or real browser zoom. Screenshots were saved outside the repository under C:\Users\enkso\AppData\Local\Temp\forge-pr13-review-20261014-head-25bc2ab.

@Enksodsoon
Enksodsoon merged commit 0aedeef into main Oct 14, 2026
3 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant