fix-ui-batch-specs: three browser specs fail on the merged UI batch (dev c2c0a65f1) #295

Closed
opened 2026-11-01 16:27:48 +00:00 by kayg · 4 comments
Owner

Request (orchestrator, 2026-11-01): icon-text-centre (desktop settings, phone sidebar), account-card ("the product") and startup-demo (docs page heading) fail on the merged UI batch. Fix the product, not the specs, unless a spec is plainly stale. Alignment must hold to ±0.5 px.

Plan (estimate 60-90 min):

  1. Run the three specs on a production build of dev c2c0a65f1 (dev-02-std), read the failures.
  2. Fix each at its source, atomic commits, one per failure.
  3. Rerun the three specs, then scripts/verify fast on dev-02-std; report on this issue.
  4. Then rebase ui-size-283 onto dev (separate step, #283).

Branch fix-ui-batch-specs, base c2c0a65f1.

Request (orchestrator, 2026-11-01): `icon-text-centre` (desktop settings, phone sidebar), `account-card` ("the product") and `startup-demo` (docs page heading) fail on the merged UI batch. Fix the product, not the specs, unless a spec is plainly stale. Alignment must hold to ±0.5 px. Plan (estimate 60-90 min): 1. Run the three specs on a production build of dev c2c0a65f1 (dev-02-std), read the failures. 2. Fix each at its source, atomic commits, one per failure. 3. Rerun the three specs, then `scripts/verify fast` on dev-02-std; report on this issue. 4. Then rebase `ui-size-283` onto dev (separate step, #283). Branch `fix-ui-batch-specs`, base c2c0a65f1.
Author
Owner

Progress (branch fix-ui-batch-specs, base c2c0a65f1). The three specs pass in my mock-server harness but fail under the real runner (playwright.config.ts: build, then serve through the latency proxy), which is the one that matters. Causes found:

  1. account-card "the product" (product bug). The card's chunk arrives after the sidebar is open on a slow device; a press on the person's pill in that gap reached the pill's old small menu (aria-haspopup stayed "menu"), and the card never opened. Fix: the product claims the press at once and opens the card when mounted (26923745e).
  2. startup-demo (6 of 6, docs heading). /docs/multiplexer.html was only written by running test/render-docs-preview.ts by hand; a build made by the spec runner has no such page. Fix: the preview build renders it (49de1d4d5).
  3. icon-text-centre (sidebar, settings) is two false failures, not a misalignment: (a) the sidebar's branch-lines svg (absolutely positioned) was paired with a one-row list (-5 / -13 px); the audit now ignores out-of-flow svgs; (b) the settings check typed into the palette on fixed waits; the mockup's terminal attached 2.4 s late and took the focus, so Enter ran the first row (all-views overview, scale 0.19). The spec now waits for the terminal, then the row. Limit stays 0.5 px (5e5ce8dc0).
Progress (branch `fix-ui-batch-specs`, base c2c0a65f1). The three specs pass in my mock-server harness but fail under the real runner (`playwright.config.ts`: build, then serve through the latency proxy), which is the one that matters. Causes found: 1. **account-card "the product"** (product bug). The card's chunk arrives after the sidebar is open on a slow device; a press on the person's pill in that gap reached the pill's old small menu (aria-haspopup stayed "menu"), and the card never opened. Fix: the product claims the press at once and opens the card when mounted (`26923745e`). 2. **startup-demo** (6 of 6, docs heading). `/docs/multiplexer.html` was only written by running `test/render-docs-preview.ts` by hand; a build made by the spec runner has no such page. Fix: the preview build renders it (`49de1d4d5`). 3. **icon-text-centre** (sidebar, settings) is two false failures, not a misalignment: (a) the sidebar's branch-lines svg (absolutely positioned) was paired with a one-row list (-5 / -13 px); the audit now ignores out-of-flow svgs; (b) the settings check typed into the palette on fixed waits; the mockup's terminal attached 2.4 s late and took the focus, so Enter ran the first row (all-views overview, scale 0.19). The spec now waits for the terminal, then the row. Limit stays 0.5 px (`5e5ce8dc0`).
Author
Owner

fix-ui-batch-specs head 2ac3639c9f72d831e9b45d198da56b093befa824 (3 atomic commits on dev a26615c50): the three specs pass under the real runner (bun x playwright test icon-text-centre account-card startup-demo: 29 passed, 2 skipped [the two skips are the desktop-only palette/toolbar rows on the phone page], 4.9 min, dev-02-std). verify fast is queued on dev-02-std; its output follows when it finishes.

Notes: (1) account-card was a product race, fixed in product.ts; (2) startup-demo needs the docs stand-in, now rendered by the preview build; (3) icon-text-centre: two false failures (the sidebar's branch-lines svg paired with a one-row list; the settings check typing into the palette before the mockup's late terminal took the focus). No misalignment was found: the 0.5 px limit is unchanged.

`fix-ui-batch-specs` head `2ac3639c9f72d831e9b45d198da56b093befa824` (3 atomic commits on dev `a26615c50`): the three specs pass under the real runner (`bun x playwright test icon-text-centre account-card startup-demo`: **29 passed, 2 skipped** [the two skips are the desktop-only palette/toolbar rows on the phone page], 4.9 min, dev-02-std). `verify fast` is queued on dev-02-std; its output follows when it finishes. Notes: (1) account-card was a product race, fixed in `product.ts`; (2) startup-demo needs the docs stand-in, now rendered by the preview build; (3) icon-text-centre: two false failures (the sidebar's branch-lines svg paired with a one-row list; the settings check typing into the palette before the mockup's late terminal took the focus). No misalignment was found: the 0.5 px limit is unchanged.
Author
Owner

Finish: fix-ui-batch-specs, head 1f86692b98bc7d417cdb0554c9fffc03eb4dce22 (3 atomic commits on dev 65d986191).

Real-runner specs (bun x playwright test icon-text-centre account-card startup-demo, dev-02-std, on the head before the final rebase onto dev, which changed only crates/): 29 passed, 2 skipped.

scripts/verify fast on compute01 (x86_64), at this head, exit 0. Repository artifact gate: PASS (5 changed paths, merge base 65d9861914).

+---------------------------+--------------+
| Rust gate                 | Result       |
+---------------------------+--------------+
| fmt                       | PASS         |
| VT native fmt             | PASS         |
| CLI plugin compile-out    | PASS         |
| clippy                    | PASS         |
| SSH runtime test helper   | PASS         |
| real-binary fixture paths | PASS         |
| test                      | PASS         |
| SSH inode reuse fixture   | PASS         |
| shim process-per-user     | PASS         |
| cargo-deny                | PASS         |
| gate architecture         | PASS         |
| static builds             | PASS         |
+---------------------------+--------------+
 467 pass
 106 pass
 17 pass
JavaScript transfer, critical: identity=996399 gzip=309606/327680 brotli=257901/273408 bytes
JavaScript transfer, deferred: identity=175872 gzip=60878/61440 brotli=53648/55296 bytes
 39 pass

An earlier run of the same gate on dev-02-std at the previous base (a26615c50) failed one row, test, on cli_envelope::bare_infraternal_is_the_overview_and_points_to_help (exit 5, wanted 0): the host has a user unit that is not running, and dev's fecb98e9c (#296) made that test accept it. It is not from this branch (crates/ is untouched); on dev 65d986191 it passes, and so does this branch rebased onto it.

**Finish: `fix-ui-batch-specs`, head `1f86692b98bc7d417cdb0554c9fffc03eb4dce22`** (3 atomic commits on dev `65d986191`). Real-runner specs (`bun x playwright test icon-text-centre account-card startup-demo`, dev-02-std, on the head before the final rebase onto dev, which changed only `crates/`): **29 passed, 2 skipped**. `scripts/verify fast` on compute01 (x86_64), at this head, exit 0. Repository artifact gate: PASS (5 changed paths, merge base 65d9861914e8). ``` +---------------------------+--------------+ | Rust gate | Result | +---------------------------+--------------+ | fmt | PASS | | VT native fmt | PASS | | CLI plugin compile-out | PASS | | clippy | PASS | | SSH runtime test helper | PASS | | real-binary fixture paths | PASS | | test | PASS | | SSH inode reuse fixture | PASS | | shim process-per-user | PASS | | cargo-deny | PASS | | gate architecture | PASS | | static builds | PASS | +---------------------------+--------------+ 467 pass 106 pass 17 pass JavaScript transfer, critical: identity=996399 gzip=309606/327680 brotli=257901/273408 bytes JavaScript transfer, deferred: identity=175872 gzip=60878/61440 brotli=53648/55296 bytes 39 pass ``` An earlier run of the same gate on dev-02-std at the previous base (`a26615c50`) failed one row, `test`, on `cli_envelope::bare_infraternal_is_the_overview_and_points_to_help` (exit 5, wanted 0): the host has a user unit that is not running, and dev's `fecb98e9c` (#296) made that test accept it. It is not from this branch (`crates/` is untouched); on dev `65d986191` it passes, and so does this branch rebased onto it.
Author
Owner

J210 owner-authorized housekeeping: closing this completed scope because its work is merged on dev in fa3f30aee. Verified the merge commit is an ancestor of current origin/dev. The implementation reports and evidence remain in this issue.

J210 owner-authorized housekeeping: closing this completed scope because its work is merged on dev in [fa3f30aee](https://git.kayg.org/kayg/infraternal/commit/fa3f30aee034ed4c9b2e80573ca89cd2f86f6e72). Verified the merge commit is an ancestor of current origin/dev. The implementation reports and evidence remain in this issue.
kayg closed this issue 2026-11-04 17:04:43 +00:00
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#295
No description provided.