deepseek-harness/apps/web/tests
creatixchu 23c4745560 fix(web): assert the wrap-width premise instead of reserving a gutter
Review flagged that "equal by construction" rested on an engine behaviour I
had not measured: `scrollbar-gutter: stable` only equalizes the layers if the
engine applies it to `overflow: hidden` the way it does to `overflow-y: auto`.
Measured it on the running app across the three engines Playwright ships,
and the property does not hold up.

  engine    .input / .backdrop / .mirror wrap width
  chromium  776 / 776 / 776   (768 / 768 / 768 with the declaration)
  firefox   776 / 776 / 776   (unchanged by it — overlay scrollbar)
  WebKit    768 / 776 / 776   (unchanged by it)

WebKit reserves for `overflow-y: auto` and not for `overflow: hidden`, so the
declaration left .input at 768 against 776 — exactly the gap it was meant to
close — on the one engine where that gap is observable at all, while costing
every chromium user 8px of text column unconditionally. Reverted: the
composer's metrics are now the same as before this PR.

The WebKit gap predates this change and is not closed here. It is recorded in
the Agent Note with the numbers, and the browser scenario asserts the equality
on the lane's engine so a regression into that state fails loudly. The mirror
is unaffected on WebKit for the drafts measured — the extents still agree — but
a draft whose wrapping turns on those 8px would clamp it.

The review's monotonicity concern resolves the same way: the declaration was
never worse than master, because WebKit already measured 768 against 776
without it. It simply was not better.

Also from this round: the wrap-width assertion now covers .mirror as well as
the two glyph layers — it is the height authority, so a mirror alone wrapping
wider would measure the box short and clip content below the 14-line cap with
every other assertion green. Plus `renderGeometry`'s missing `@param
trailingNewline`, and both e2e tsconfig lists restored to alphabetical order.
2026-07-31 13:13:50 +08:00
..
snapshots fix(web): assert the wrap-width premise instead of reserving a gutter 2026-07-31 13:13:50 +08:00
approval-composer.e2e.ts fix: docs/static 2026-07-31 02:13:53 +08:00
built-boot.snapshot.ts wip 2026-07-31 02:13:53 +08:00
code-mode-round.e2e.ts Merge branch 'master' into codex/details-default-closed 2026-07-30 14:50:50 +08:00
composer-draft-scroll.e2e.ts fix(web): assert the wrap-width premise instead of reserving a gutter 2026-07-31 13:13:50 +08:00
cordis-tool-round.e2e.ts test(web): align e2e anchors and goldens with the unified tool-row expand 2026-07-31 02:16:28 +08:00
details-session-lifecycle.e2e.ts wip 2026-07-31 02:13:53 +08:00
lifecycle-chrome.e2e.ts fix(web): show plan status only while active 2026-07-30 22:42:25 +08:00
live-interactions.e2e.ts Merge remote-tracking branch 'origin/master' into feat/session-inherited-boundary 2026-07-30 15:34:55 +08:00
message-actions.e2e.ts wip 2026-07-31 02:13:53 +08:00
models-settings.e2e.ts feat(ui-models)!: single-key hand-written provider editors with derived credential references 2026-07-30 12:17:56 +08:00
navigation-panes.e2e.ts Merge branch 'master' into codex/basic-session-search 2026-07-31 10:23:52 +08:00
onboarding-deepseek-config.e2e.ts fix(web): address onboarding review feedback 2026-07-30 18:56:56 +08:00
plan-review.e2e.ts feat(web): render a plan review as a decision card, not a quiz 2026-07-30 19:09:35 +08:00
question-composer.e2e.ts test(web): pin browser replay locale 2026-07-30 11:39:11 +08:00
queue-actions.e2e.ts wip 2026-07-31 02:13:53 +08:00
replay-round-trip.e2e.ts test(web): pin browser replay locale 2026-07-30 11:39:11 +08:00
scaffold-hermetic.e2e.ts fix(web): isolate replay skill discovery 2026-07-30 19:30:06 +08:00
scaffold.ts Merge remote-tracking branch 'origin/master' into mergebot/pr711 2026-07-31 02:02:47 +08:00
seeded-history.e2e.ts wip 2026-07-31 02:13:53 +08:00
settings-chrome.e2e.ts feat(web): mount the config plane in dsh web and pin the Models page keyless 2026-07-30 09:29:40 +08:00
sidebar-scrollbar.e2e.ts test(web): pin browser replay locale 2026-07-30 11:39:11 +08:00
skill-invocation-policy.e2e.ts test(web): pin browser replay locale 2026-07-30 11:39:11 +08:00
smoke-real.e2e.ts Merge branch 'master' into codex/details-default-closed 2026-07-30 14:50:50 +08:00
steering.e2e.ts wip 2026-07-31 02:13:53 +08:00
support.ts test(web): pin browser replay locale 2026-07-30 11:39:11 +08:00
workspace-management.e2e.ts test(web): anchor the group section above the HoverCard wrapper 2026-07-30 16:54:43 +08:00