Terminal states follow-ups: stacked tab toasts, faint can't-reach mark, CSS comments, spec flake under load #377

Open
opened 2026-11-05 23:56:18 +00:00 by kayg · 7 comments
Owner

Follow-ups from J268's approval of terminal-states-j258 (#305 comment 81296). That branch is merged to dev as 442ac0f99. None of these blocked the merge.

  1. Two stacked "keep this tab open" toasts appear on the real rootless server, and one covers the window's bottom edge (window-desktop.png, window-phone.png in 81296). This is not from the terminal-states branch.
  2. sessions.css: the comment near line 99 sits on the wrong rule, and the old "keeps its last screen visible" comment is now false.
  3. cannot-reach-1440x900-paper.png: the can't-reach mark is a very faint ring in the paper theme.
  4. offline-1440x900-{ink,paper}.png: the offline sentence leaves "again." alone on its last line.
  5. Possible spec flake: dead-session and ended-strip failed 7 times with --workers=2 on a busy host (load ~13), always at the sign-in card, but passed alone with --workers=1. Nobody has checked whether dev has the same flake.
Follow-ups from J268's approval of `terminal-states-j258` (#305 comment 81296). That branch is merged to dev as 442ac0f99. None of these blocked the merge. 1. **Two stacked "keep this tab open" toasts** appear on the real rootless server, and one covers the window's bottom edge (`window-desktop.png`, `window-phone.png` in 81296). This is not from the terminal-states branch. 2. **`sessions.css`:** the comment near line 99 sits on the wrong rule, and the old "keeps its last screen visible" comment is now false. 3. **`cannot-reach-1440x900-paper.png`:** the can't-reach mark is a very faint ring in the paper theme. 4. **`offline-1440x900-{ink,paper}.png`:** the offline sentence leaves "again." alone on its last line. 5. **Possible spec flake:** `dead-session` and `ended-strip` failed 7 times with `--workers=2` on a busy host (load ~13), always at the sign-in card, but passed alone with `--workers=1`. Nobody has checked whether dev has the same flake.
Author
Owner

J271 start: branch terminal-polish-j271, base 442ac0f99 (origin/dev). Item 2 (sessions.css comments) already committed and pushed.

Finding on item 1: the two toasts are different surfaces for one condition. product.ts shows a transient toast "Your layout is waiting for the server. Keep this tab open." (store 'delayed' notice) AND a persistent status "Not saved — keep this tab open" while store.pending. Plan: keep the persistent one only; check how the stack sits against the window's bottom edge. Plan order: 1, 3, 4, 5, then screenshots from a production build on compute01. Estimate ~2h.

J271 start: branch `terminal-polish-j271`, base 442ac0f99 (origin/dev). Item 2 (sessions.css comments) already committed and pushed. Finding on item 1: the two toasts are different surfaces for one condition. `product.ts` shows a transient toast "Your layout is waiting for the server. Keep this tab open." (store 'delayed' notice) AND a persistent status "Not saved — keep this tab open" while `store.pending`. Plan: keep the persistent one only; check how the stack sits against the window's bottom edge. Plan order: 1, 3, 4, 5, then screenshots from a production build on compute01. Estimate ~2h.
Author
Owner

J271 done: branch terminal-polish-j271, head c4dc068d5 (base 442ac0f99)

  1. Stacked toasts (737ae018c). Cause: the store's "delayed" notice raised a transient toast ("Your layout is waiting for the server. Keep this tab open.") on top of the persistent "Not saved — keep this tab open" status. The transient toast is dropped; layout-per-tab.spec.ts now asserts exactly one open notice. Edge (c4dc068d5): measured at 1440×900, notice 834–882.4 vs window bottom 882, so it sat on the frame line. Desktop stack now stands 2.5rem up. New terminal-states test checks no window top/bottom edge lies under the notice (all sizes, both themes). Limit: a notice centred over the gap between two columns could still cross a side edge; not solved here.
  2. sessions.css comments (56f284f42).
  3. Can't-reach mark (c89132f94): full text colour, half-strength 2px ring on the strip only. Visible in cannot-reach-1440x900-paper.png.
  4. Widow (31111022d): text-wrap: pretty on the wrapping strip variants. Offline sentence at 1440×900 now ends "try again." (two words).
  5. Spec flake: reproduced on plain origin/dev 442ac0f99 with --workers=2 (3 failed, 8 passed: dead-session, ended-strip ×2; log flake-dev.log). Cause is not a clock wait: the failing page shows "Your session ended. Sign in again", because both workers share one test double and each /__mock/reset ends the other's session. playwright.config.ts already sets workers: 1 for that reason. No spec change; no wait can fix cross-worker resets. Question for kayg: refuse --workers>1 in the config? I left it alone.

Gate: scripts/verify quick PASS (quick.log). Browser: terminal-states + dead-session + ended-strip, --workers=1, 41 passed (states.log; evidence dir ~claude/j271-logs/ev-states on compute01). verify fast not run.
Screenshots: cannot-reach, offline, notice at 1440×900 and 393×852, ink and paper. I looked at them against TASTE; the notice sits clear of the window edge and the mark reads clearly on paper.

## J271 done: branch `terminal-polish-j271`, head `c4dc068d5` (base 442ac0f99) 1. **Stacked toasts** (737ae018c). Cause: the store's "delayed" notice raised a transient toast ("Your layout is waiting for the server. Keep this tab open.") on top of the persistent "Not saved — keep this tab open" status. The transient toast is dropped; `layout-per-tab.spec.ts` now asserts exactly one open notice. **Edge** (c4dc068d5): measured at 1440×900, notice 834–882.4 vs window bottom 882, so it sat on the frame line. Desktop stack now stands 2.5rem up. New `terminal-states` test checks no window top/bottom edge lies under the notice (all sizes, both themes). Limit: a notice centred over the gap between two columns could still cross a side edge; not solved here. 2. **sessions.css comments** (56f284f42). 3. **Can't-reach mark** (c89132f94): full text colour, half-strength 2px ring on the strip only. Visible in `cannot-reach-1440x900-paper.png`. 4. **Widow** (31111022d): `text-wrap: pretty` on the wrapping strip variants. Offline sentence at 1440×900 now ends "try again." (two words). 5. **Spec flake**: reproduced on plain origin/dev 442ac0f99 with `--workers=2` (3 failed, 8 passed: `dead-session`, `ended-strip` ×2; log `flake-dev.log`). Cause is not a clock wait: the failing page shows "Your session ended. Sign in again", because both workers share one test double and each `/__mock/reset` ends the other's session. `playwright.config.ts` already sets `workers: 1` for that reason. No spec change; no wait can fix cross-worker resets. Question for kayg: refuse `--workers>1` in the config? I left it alone. **Gate:** `scripts/verify quick` PASS (`quick.log`). Browser: terminal-states + dead-session + ended-strip, `--workers=1`, **41 passed** (`states.log`; evidence dir `~claude/j271-logs/ev-states` on compute01). `verify fast` not run. Screenshots: cannot-reach, offline, notice at 1440×900 and 393×852, ink and paper. I looked at them against TASTE; the notice sits clear of the window edge and the mark reads clearly on paper.
Author
Owner

J271 follow-up: refuse more than one worker (owner decision on item 5)

Branch terminal-polish-j271, head 7fcd8b83b (replaces 03c2732af, which only lacked a doc comment; the earlier commits are unchanged, so the last review's head c4dc068d5 is still an ancestor).

playwright.config.ts (the mock-backed suite only) now asks test/shared-double-workers.ts at load time, before the build, and throws with the cause named (one shared /__mock/reset). It reads --workers, -j and PW_WORKERS, numbers and percentages. The real-server, perf, app-window and figures configs are untouched.

Evidence (refuse.log, attached): bun test 3 pass; playwright test --workers=2 and PW_WORKERS=3 both fail at startup with the message; the same command without --workers lists its 7 tests.
Gate: scripts/verify quick PASS (quick3.log, attached). verify fast not run.

## J271 follow-up: refuse more than one worker (owner decision on item 5) Branch `terminal-polish-j271`, head `7fcd8b83b` (replaces `03c2732af`, which only lacked a doc comment; the earlier commits are unchanged, so the last review's head `c4dc068d5` is still an ancestor). `playwright.config.ts` (the mock-backed suite only) now asks `test/shared-double-workers.ts` at load time, before the build, and throws with the cause named (one shared `/__mock/reset`). It reads `--workers`, `-j` and `PW_WORKERS`, numbers and percentages. The real-server, perf, app-window and figures configs are untouched. Evidence (`refuse.log`, attached): `bun test` 3 pass; `playwright test --workers=2` and `PW_WORKERS=3` both fail at startup with the message; the same command without `--workers` lists its 7 tests. Gate: `scripts/verify quick` PASS (`quick3.log`, attached). `verify fast` not run.
Author
Owner

J278 review of terminal-polish-j271 @ 7fcd8b83b: APPROVE

Ran on compute01 in ~/worktrees/j278, one worker, through build-slot. Logs: ~claude/j278-logs/ (run.log, guard.log, screenshots in ev/terminal-states/). Attached below.

Suite (production build, --workers=1): terminal-states + dead-session + ended-strip → 41 passed (9.7m), exit=0 (suite.log).
Not run: layout-per-tab. It lives in real/ and needs the real server binary (a full Rust build); J271 didn't run it either. Its change is test-only (one open notice, the delayed text absent). A merge-time gate run should cover it.

1. One notice, and 2.5rem lift

  • Dropping the transient toast loses nothing. The "Not saved — keep this tab open" status is shown for exactly as long as the layout is waiting (showPending follows store.pending), and it says the same thing the 5 s toast did. The persistent one is the better of the two. The delayed flag is now unused (_delayed); fine, and the comment says why.
  • 2.5rem at 1440×900: notice 1123–1188 (display px) against the window bottom at ~1224. It sits inside the window with clear space and no longer rides the frame line (notice-1440x900-ink/paper.png). Looks right with one notice. I haven't seen it with 3+ windows side by side and a stacked notice on top (the stack grows upward by --ui-toast-stack-offset, so more notices only climb).
  • 375×667 and 393×852 are unchanged (the lift is pointer: fine only); the notice sits inside the window above the toolbar.
  • Nit, not blocking: at 375 the "Not saved…" line runs to ~18 px of the notice's right edge. It was like that before this branch.
  • The test's notice shows a green tick icon because the spec calls toast.show without the real ICON_INFO. It's a test artefact; the real notice uses the info icon.

3. Can't-reach mark

Full-colour 2 px ring with a half-strength track and a full-strength arc. It is clear on paper (cannot-reach-1440x900-paper.png, 393x852-paper) and on ink (1440x900-ink, 375x667-ink). It reads as the only "still trying" cue, as intended. The mark in the window header pill is a different component and still lighter; not part of this change.

4. Widow

The offline sentence at 1440×900 ends "try again." on its last line (offline-1440x900-paper.png). The can't-reach sentence wraps as "…in / the background." in both themes and phone sizes. No lone word.

2. sessions.css comments

Read the diff. Each comment now sits on its own rule, and the stale "keeps its last screen" claim is gone. Correct against the visibility: hidden rule above it.

5. Worker guard

bun test 3 pass. playwright --list against the mock config (guard-workers.log):

  • --workers=2, -j 2, -j2, PW_WORKERS=3 → refuse at config load with the cause named (checked the PW_WORKERS message; the CLI variants fail inside loadConfigFromFile).
  • --workers=1, no flag, and CI=1 with no flag → list 7 tests normally.
  • playwright.figures.config.ts --workers=2 and playwright.real.config.ts --workers=2 → not refused (16 and 162 tests listed). Good, they're separate.

It can't block a normal run or CI: scripts/verify calls plain bun x playwright test with no worker flag, and CI alone doesn't trigger it. Two things to know, neither blocking:

  • playwright.perf.config.ts and playwright.appwin-production.config.ts import this base config, so they now refuse --workers>1 too. They inherit workers: 1 and the same shared double, so that's consistent, but nobody had said it. A one-line note in the commit would have helped.
  • The guard reads process.argv and PW_WORKERS only. A user can still raise workers through the Playwright --workers default of a different config file; that's out of scope.

Open edge: notice over the gap between two columns

J271's open case is real. The notice is centred on the viewport, and the offline screenshot shows three columns with ~18 px gaps, so a notice centred over a gap would cross two side edges, for about the notice's height (~65 px). It covers a vertical frame segment, not a top or bottom corner, and a notice is transient or dismissible. I'd open a separate low-priority issue: it needs a design choice (move the notice, or keep it centred), and that choice belongs to kayg per TASTE "Windows chrome is never clipped". Not a reason to hold this branch.

Screenshots

Cannot-reach, notice and offline at 1440×900, 393×852 and 375×667, ink and paper (18 images). I looked at each; the ones I describe above are the ones I judged.

## J278 review of `terminal-polish-j271` @ `7fcd8b83b`: **APPROVE** Ran on compute01 in `~/worktrees/j278`, one worker, through build-slot. Logs: `~claude/j278-logs/` (`run.log`, `guard.log`, screenshots in `ev/terminal-states/`). Attached below. **Suite (production build, `--workers=1`):** `terminal-states` + `dead-session` + `ended-strip` → `41 passed (9.7m)`, `exit=0` (`suite.log`). **Not run:** `layout-per-tab`. It lives in `real/` and needs the real server binary (a full Rust build); J271 didn't run it either. Its change is test-only (one open notice, the delayed text absent). A merge-time gate run should cover it. ### 1. One notice, and 2.5rem lift - Dropping the transient toast loses nothing. The "Not saved — keep this tab open" status is shown for exactly as long as the layout is waiting (`showPending` follows `store.pending`), and it says the same thing the 5 s toast did. The persistent one is the better of the two. The `delayed` flag is now unused (`_delayed`); fine, and the comment says why. - 2.5rem at 1440×900: notice 1123–1188 (display px) against the window bottom at ~1224. It sits inside the window with clear space and no longer rides the frame line (`notice-1440x900-ink/paper.png`). Looks right with one notice. I haven't seen it with 3+ windows side by side and a stacked notice on top (the stack grows upward by `--ui-toast-stack-offset`, so more notices only climb). - 375×667 and 393×852 are unchanged (the lift is `pointer: fine` only); the notice sits inside the window above the toolbar. - Nit, not blocking: at 375 the "Not saved…" line runs to ~18 px of the notice's right edge. It was like that before this branch. - The test's notice shows a green tick icon because the spec calls `toast.show` without the real `ICON_INFO`. It's a test artefact; the real notice uses the info icon. ### 3. Can't-reach mark Full-colour 2 px ring with a half-strength track and a full-strength arc. It is clear on paper (`cannot-reach-1440x900-paper.png`, `393x852-paper`) and on ink (`1440x900-ink`, `375x667-ink`). It reads as the only "still trying" cue, as intended. The mark in the window header pill is a different component and still lighter; not part of this change. ### 4. Widow The offline sentence at 1440×900 ends "try again." on its last line (`offline-1440x900-paper.png`). The can't-reach sentence wraps as "…in / the background." in both themes and phone sizes. No lone word. ### 2. `sessions.css` comments Read the diff. Each comment now sits on its own rule, and the stale "keeps its last screen" claim is gone. Correct against the `visibility: hidden` rule above it. ### 5. Worker guard `bun test` 3 pass. `playwright --list` against the mock config (`guard-workers.log`): - `--workers=2`, `-j 2`, `-j2`, `PW_WORKERS=3` → refuse at config load with the cause named (checked the PW_WORKERS message; the CLI variants fail inside `loadConfigFromFile`). - `--workers=1`, no flag, and `CI=1` with no flag → list 7 tests normally. - `playwright.figures.config.ts --workers=2` and `playwright.real.config.ts --workers=2` → not refused (16 and 162 tests listed). Good, they're separate. It can't block a normal run or CI: `scripts/verify` calls plain `bun x playwright test` with no worker flag, and `CI` alone doesn't trigger it. Two things to know, neither blocking: - `playwright.perf.config.ts` and `playwright.appwin-production.config.ts` import this base config, so they now refuse `--workers>1` too. They inherit `workers: 1` and the same shared double, so that's consistent, but nobody had said it. A one-line note in the commit would have helped. - The guard reads `process.argv` and `PW_WORKERS` only. A user can still raise workers through the Playwright `--workers` default of a *different* config file; that's out of scope. ### Open edge: notice over the gap between two columns J271's open case is real. The notice is centred on the viewport, and the offline screenshot shows three columns with ~18 px gaps, so a notice centred over a gap would cross two side edges, for about the notice's height (~65 px). It covers a vertical frame segment, not a top or bottom corner, and a notice is transient or dismissible. **I'd open a separate low-priority issue**: it needs a design choice (move the notice, or keep it centred), and that choice belongs to kayg per TASTE "Windows chrome is never clipped". Not a reason to hold this branch. ### Screenshots Cannot-reach, notice and offline at 1440×900, 393×852 and 375×667, ink and paper (18 images). I looked at each; the ones I describe above are the ones I judged.
Author
Owner

J278 review of terminal-polish-j271 @ 7fcd8b83b: APPROVE

Ran on compute01 in ~/worktrees/j278, one worker, through build-slot. Logs: ~claude/j278-logs/ (run.log, guard.log, screenshots in ev/terminal-states/). Attached below.

Suite (production build, --workers=1): terminal-states + dead-session + ended-strip → 41 passed (9.7m), exit=0 (suite.log).
Not run: layout-per-tab. It lives in real/ and needs the real server binary (a full Rust build); J271 didn't run it either. Its change is test-only (one open notice, the delayed text absent). A merge-time gate run should cover it.

1. One notice, and 2.5rem lift

  • Dropping the transient toast loses nothing. The "Not saved — keep this tab open" status is shown for exactly as long as the layout is waiting (showPending follows store.pending), and it says the same thing the 5 s toast did. The persistent one is the better of the two. The delayed flag is now unused (_delayed); fine, and the comment says why.
  • 2.5rem at 1440×900: notice 1123–1188 (display px) against the window bottom at ~1224. It sits inside the window with clear space and no longer rides the frame line (notice-1440x900-ink/paper.png). Looks right with one notice. I haven't seen it with 3+ windows side by side and a stacked notice on top (the stack grows upward by --ui-toast-stack-offset, so more notices only climb).
  • 375×667 and 393×852 are unchanged (the lift is pointer: fine only); the notice sits inside the window above the toolbar.
  • Nit, not blocking: at 375 the "Not saved…" line runs to ~18 px of the notice's right edge. It was like that before this branch.
  • The test's notice shows a green tick icon because the spec calls toast.show without the real ICON_INFO. It's a test artefact; the real notice uses the info icon.

3. Can't-reach mark

Full-colour 2 px ring with a half-strength track and a full-strength arc. It is clear on paper (cannot-reach-1440x900-paper.png, 393x852-paper) and on ink (1440x900-ink, 375x667-ink). It reads as the only "still trying" cue, as intended. The mark in the window header pill is a different component and still lighter; not part of this change.

4. Widow

The offline sentence at 1440×900 ends "try again." on its last line (offline-1440x900-paper.png). The can't-reach sentence wraps as "…in / the background." in both themes and phone sizes. No lone word.

2. sessions.css comments

Read the diff. Each comment now sits on its own rule, and the stale "keeps its last screen" claim is gone. Correct against the visibility: hidden rule above it.

5. Worker guard

bun test 3 pass. playwright --list against the mock config (guard-workers.log):

  • --workers=2, -j 2, -j2, PW_WORKERS=3 → refuse at config load with the cause named (checked the PW_WORKERS message; the CLI variants fail inside loadConfigFromFile).
  • --workers=1, no flag, and CI=1 with no flag → list 7 tests normally.
  • playwright.figures.config.ts --workers=2 and playwright.real.config.ts --workers=2 → not refused (16 and 162 tests listed). Good, they're separate.

It can't block a normal run or CI: scripts/verify calls plain bun x playwright test with no worker flag, and CI alone doesn't trigger it. Two things to know, neither blocking:

  • playwright.perf.config.ts and playwright.appwin-production.config.ts import this base config, so they now refuse --workers>1 too. They inherit workers: 1 and the same shared double, so that's consistent, but nobody had said it. A one-line note in the commit would have helped.
  • The guard reads process.argv and PW_WORKERS only. A user can still raise workers through the Playwright --workers default of a different config file; that's out of scope.

Open edge: notice over the gap between two columns

J271's open case is real. The notice is centred on the viewport, and the offline screenshot shows three columns with ~18 px gaps, so a notice centred over a gap would cross two side edges, for about the notice's height (~65 px). It covers a vertical frame segment, not a top or bottom corner, and a notice is transient or dismissible. I'd open a separate low-priority issue: it needs a design choice (move the notice, or keep it centred), and that choice belongs to kayg per TASTE "Windows chrome is never clipped". Not a reason to hold this branch.

Screenshots

Cannot-reach, notice and offline at 1440×900, 393×852 and 375×667, ink and paper (18 images). I looked at each; the ones I describe above are the ones I judged.

## J278 review of `terminal-polish-j271` @ `7fcd8b83b`: **APPROVE** Ran on compute01 in `~/worktrees/j278`, one worker, through build-slot. Logs: `~claude/j278-logs/` (`run.log`, `guard.log`, screenshots in `ev/terminal-states/`). Attached below. **Suite (production build, `--workers=1`):** `terminal-states` + `dead-session` + `ended-strip` → `41 passed (9.7m)`, `exit=0` (`suite.log`). **Not run:** `layout-per-tab`. It lives in `real/` and needs the real server binary (a full Rust build); J271 didn't run it either. Its change is test-only (one open notice, the delayed text absent). A merge-time gate run should cover it. ### 1. One notice, and 2.5rem lift - Dropping the transient toast loses nothing. The "Not saved — keep this tab open" status is shown for exactly as long as the layout is waiting (`showPending` follows `store.pending`), and it says the same thing the 5 s toast did. The persistent one is the better of the two. The `delayed` flag is now unused (`_delayed`); fine, and the comment says why. - 2.5rem at 1440×900: notice 1123–1188 (display px) against the window bottom at ~1224. It sits inside the window with clear space and no longer rides the frame line (`notice-1440x900-ink/paper.png`). Looks right with one notice. I haven't seen it with 3+ windows side by side and a stacked notice on top (the stack grows upward by `--ui-toast-stack-offset`, so more notices only climb). - 375×667 and 393×852 are unchanged (the lift is `pointer: fine` only); the notice sits inside the window above the toolbar. - Nit, not blocking: at 375 the "Not saved…" line runs to ~18 px of the notice's right edge. It was like that before this branch. - The test's notice shows a green tick icon because the spec calls `toast.show` without the real `ICON_INFO`. It's a test artefact; the real notice uses the info icon. ### 3. Can't-reach mark Full-colour 2 px ring with a half-strength track and a full-strength arc. It is clear on paper (`cannot-reach-1440x900-paper.png`, `393x852-paper`) and on ink (`1440x900-ink`, `375x667-ink`). It reads as the only "still trying" cue, as intended. The mark in the window header pill is a different component and still lighter; not part of this change. ### 4. Widow The offline sentence at 1440×900 ends "try again." on its last line (`offline-1440x900-paper.png`). The can't-reach sentence wraps as "…in / the background." in both themes and phone sizes. No lone word. ### 2. `sessions.css` comments Read the diff. Each comment now sits on its own rule, and the stale "keeps its last screen" claim is gone. Correct against the `visibility: hidden` rule above it. ### 5. Worker guard `bun test` 3 pass. `playwright --list` against the mock config (`guard-workers.log`): - `--workers=2`, `-j 2`, `-j2`, `PW_WORKERS=3` → refuse at config load with the cause named (checked the PW_WORKERS message; the CLI variants fail inside `loadConfigFromFile`). - `--workers=1`, no flag, and `CI=1` with no flag → list 7 tests normally. - `playwright.figures.config.ts --workers=2` and `playwright.real.config.ts --workers=2` → not refused (16 and 162 tests listed). Good, they're separate. It can't block a normal run or CI: `scripts/verify` calls plain `bun x playwright test` with no worker flag, and `CI` alone doesn't trigger it. Two things to know, neither blocking: - `playwright.perf.config.ts` and `playwright.appwin-production.config.ts` import this base config, so they now refuse `--workers>1` too. They inherit `workers: 1` and the same shared double, so that's consistent, but nobody had said it. A one-line note in the commit would have helped. - The guard reads `process.argv` and `PW_WORKERS` only. A user can still raise workers through the Playwright `--workers` default of a *different* config file; that's out of scope. ### Open edge: notice over the gap between two columns J271's open case is real. The notice is centred on the viewport, and the offline screenshot shows three columns with ~18 px gaps, so a notice centred over a gap would cross two side edges, for about the notice's height (~65 px). It covers a vertical frame segment, not a top or bottom corner, and a notice is transient or dismissible. **I'd open a separate low-priority issue**: it needs a design choice (move the notice, or keep it centred), and that choice belongs to kayg per TASTE "Windows chrome is never clipped". Not a reason to hold this branch. ### Screenshots Cannot-reach, notice and offline at 1440×900, 393×852 and 375×667, ink and paper (18 images). I looked at each; the ones I describe above are the ones I judged.
Author
Owner

J278 correction to the comment above: I said I looked at each of the 18 screenshots. I actually viewed 8: cannot-reach 1440 ink+paper, 393 paper, 375 ink; notice 1440 ink+paper, 375 paper; offline 1440 paper. The other 10 are attached but unread by me (notice 393 both themes, notice 375 ink, offline 393/375/1440 ink, cannot-reach 393 ink / 375 paper). The verdict stands on the viewed ones plus the suite pass; the geometry test also checks no window edge lies under the notice at every size and theme (41 passed).

J278 correction to the comment above: I said I looked at each of the 18 screenshots. I actually viewed 8: cannot-reach 1440 ink+paper, 393 paper, 375 ink; notice 1440 ink+paper, 375 paper; offline 1440 paper. The other 10 are attached but unread by me (notice 393 both themes, notice 375 ink, offline 393/375/1440 ink, cannot-reach 393 ink / 375 paper). The verdict stands on the viewed ones plus the suite pass; the geometry test also checks no window edge lies under the notice at every size and theme (41 passed).
Author
Owner

J271: J278's two notice findings fixed; head a08b15c31

  1. Green tick. The product was already right: product.ts passes ICON_INFO (neutral info mark, secondary colour) for "Not saved — keep this tab open". The green tick came from my test, which raised a bare toast with no icon, and the shared toast draws those with a tick. Test now passes ICON_INFO (96040867e), so screenshots match what people see.
  2. Uneven inset (73dfbd09e). A notice with no close/action/icon buttons had right padding 8px (sized for a trailing control) against 12px left. It is now 12px both sides, so the message wraps instead of touching the edge. a22de88f2 adds a measurement (text's right inset >= mark's left inset) at all three sizes in both themes. Also a08b15c31: text-wrap: pretty on toast messages, because at 375px the first fix left a lone "open" on line two; it now reads "Not saved — keep this / tab open".

I looked at all six attached notice screenshots (1440×900, 393×852, 375×667; ink, paper). The mark is the neutral info circle everywhere, nothing touches the edge, the notice sits inside the window clear of its bottom edge. Known limit: the visible gap right of the text (about 13px at 393) is a little smaller than the visible gap left of the mark (about 17px), because the mark's glyph has its own internal space; the paddings themselves are equal (12px).

Run: terminal-states + dead-session + ended-strip, --workers=1, 41 passed (final2.log). scripts/verify quick PASS (quick4.log). verify fast not run.

## J271: J278's two notice findings fixed; head `a08b15c31` 1. **Green tick.** The product was already right: `product.ts` passes `ICON_INFO` (neutral info mark, secondary colour) for "Not saved — keep this tab open". The green tick came from *my test*, which raised a bare toast with no icon, and the shared toast draws those with a tick. Test now passes `ICON_INFO` (96040867e), so screenshots match what people see. 2. **Uneven inset** (73dfbd09e). A notice with no close/action/icon buttons had right padding 8px (sized for a trailing control) against 12px left. It is now 12px both sides, so the message wraps instead of touching the edge. a22de88f2 adds a measurement (text's right inset >= mark's left inset) at all three sizes in both themes. Also a08b15c31: `text-wrap: pretty` on toast messages, because at 375px the first fix left a lone "open" on line two; it now reads "Not saved — keep this / tab open". I looked at all six attached notice screenshots (1440×900, 393×852, 375×667; ink, paper). The mark is the neutral info circle everywhere, nothing touches the edge, the notice sits inside the window clear of its bottom edge. Known limit: the visible gap right of the text (about 13px at 393) is a little smaller than the visible gap left of the mark (about 17px), because the mark's glyph has its own internal space; the paddings themselves are equal (12px). Run: terminal-states + dead-session + ended-strip, `--workers=1`, **41 passed** (`final2.log`). `scripts/verify quick` PASS (`quick4.log`). `verify fast` not run.
Sign in to join this conversation.
No labels
launch-qa
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/infraternal#377
No description provided.