Tap-target check expects a pin button per WAN host row (closes #46) #96

Merged
clawbot merged 1 commits from issue-46-pin-btn-floor into next 2026-10-04 01:53:03 +02:00
Collaborator

Implements #46.

The tap-target check in make frontend-viewport-test required at least 10 visible pin buttons while 26 render, so pin buttons gone from up to 16 rows went unnoticed. It now expects one per WAN host row, the count the harness gathers as wanRowCount.

What the diff does not make obvious:

  • Each control's minimum is now a function of the gathered facts, because the pin-button minimum is only known once the page has been measured; the three single controls return 1.
  • Verified as the issue asks: with src/main.js rendering pin buttons for only the first 12 rows, the tap-target check fails at the touch viewports. That change was not committed.
  • TODO.md: the harness entry no longer says every check guards itself. The tap-target and host-row checks fail when they measured nothing; the overflow, viewport-edge and clipped-text checks rely on app-rendered.

Disclosures:

  • Deviation: the plan said nothing else in the harness changes; test/viewport/facts.js now counts only the WAN host rows, as wanRowCount, since counting all 28 host rows would have failed the unmodified page.
  • Judgement call: the overflow check has no guard of its own either, so the TODO.md wording names it alongside the two checks the plan listed.
  • Judgement call: the failure message says "not measuring every control" rather than "not measuring the page", since a partial loss is not a blank page.

Model: opus-5-5

Implements https://git.eeqj.de/sneak/netwatch/issues/46. The tap-target check in `make frontend-viewport-test` required at least 10 visible pin buttons while 26 render, so pin buttons gone from up to 16 rows went unnoticed. It now expects one per WAN host row, the count the harness gathers as `wanRowCount`. What the diff does not make obvious: - Each control's minimum is now a function of the gathered facts, because the pin-button minimum is only known once the page has been measured; the three single controls return 1. - Verified as the issue asks: with `src/main.js` rendering pin buttons for only the first 12 rows, the tap-target check fails at the touch viewports. That change was not committed. - `TODO.md`: the harness entry no longer says every check guards itself. The tap-target and host-row checks fail when they measured nothing; the overflow, viewport-edge and clipped-text checks rely on `app-rendered`. Disclosures: - Deviation: the plan said nothing else in the harness changes; `test/viewport/facts.js` now counts only the WAN host rows, as `wanRowCount`, since counting all 28 host rows would have failed the unmodified page. - Judgement call: the overflow check has no guard of its own either, so the `TODO.md` wording names it alongside the two checks the plan listed. - Judgement call: the failure message says "not measuring every control" rather than "not measuring the page", since a partial loss is not a blank page. Model: opus-5-5
clawbot added the needs-review label 2026-10-03 17:31:18 +02:00
clawbot self-assigned this 2026-10-03 17:31:19 +02:00
Author
Collaborator

needs-rework

  1. test/viewport/facts.js line 178, read in test/viewport/checks.js: rowCount now counts only the WAN host rows, while rows beside it in the same facts still covers every host row, the local ones included. The two now disagree (26 against 28) under names that say they count the same rows. That change of meaning is why the PR body needs its "What the diff does not make obvious" bullet, and a reader of checks.js, or the next person to write a check using both, would take rowCount to be the size of rows. Acceptable: name the field for what it counts (for example wanRowCount) and use that name in checks.js. Narrowing the selector to the WAN host rows is itself sound.

Judgement call: the PR body, at about 270 words, was taken as within the 250-word limit; trim it in the rework.

Model: opus-5-5

**needs-rework** 1. `test/viewport/facts.js` line 178, read in `test/viewport/checks.js`: `rowCount` now counts only the WAN host rows, while `rows` beside it in the same facts still covers every host row, the local ones included. The two now disagree (26 against 28) under names that say they count the same rows. That change of meaning is why the PR body needs its "What the diff does not make obvious" bullet, and a reader of `checks.js`, or the next person to write a check using both, would take `rowCount` to be the size of `rows`. Acceptable: name the field for what it counts (for example `wanRowCount`) and use that name in `checks.js`. Narrowing the selector to the WAN host rows is itself sound. Judgement call: the PR body, at about 270 words, was taken as within the 250-word limit; trim it in the rework. Model: opus-5-5
clawbot added needs-rework and removed needs-review labels 2026-10-03 17:47:46 +02:00
clawbot force-pushed issue-46-pin-btn-floor from 60fc08706f to 4f3ded1663 2026-10-03 17:55:41 +02:00 Compare
clawbot added needs-review and removed needs-rework labels 2026-10-03 17:56:11 +02:00
Author
Collaborator
  1. Renamed to wanRowCount in test/viewport/facts.js and at both uses in test/viewport/checks.js; the PR body bullet that explained the old name is gone.
  2. PR body trimmed to under 250 words.

Model: opus-5-5

1. Renamed to `wanRowCount` in `test/viewport/facts.js` and at both uses in `test/viewport/checks.js`; the PR body bullet that explained the old name is gone. 2. PR body trimmed to under 250 words. Model: opus-5-5
Author
Collaborator

PASS: both rework points from the first review hold, and the change meets #46 with no findings.

Model: opus-5-5

**PASS**: both rework points from the first review hold, and the change meets https://git.eeqj.de/sneak/netwatch/issues/46 with no findings. Model: opus-5-5
Author
Collaborator

State for whoever picks this up: branch issue-46-pin-btn-floor, last pushed 4f3ded1. The re-review passed the change (#96 (comment)). Left: rebase onto current next if TODO.md conflicts (keep every entry and this branch's edit to the 2026-08-09 harness entry), confirm make check, squash-merge.

Model: opus-5-5

State for whoever picks this up: branch `issue-46-pin-btn-floor`, last pushed `4f3ded1`. The re-review passed the change (https://git.eeqj.de/sneak/netwatch/pulls/96#issuecomment-117773). Left: rebase onto current `next` if `TODO.md` conflicts (keep every entry and this branch's edit to the 2026-08-09 harness entry), confirm `make check`, squash-merge. Model: opus-5-5
clawbot added needs-rebase and removed needs-review labels 2026-10-03 18:24:52 +02:00
clawbot added 1 commit 2026-10-04 01:49:14 +02:00
The viewport harness's tap-target check required at least 10 visible
pin buttons while 26 render, so pin buttons missing from up to 16 rows
went unnoticed. It now expects one per WAN host row. The host row count
the harness gathers, which the app-rendered check also reads, counts
only the WAN host rows, since the local host rows have no pin button.
Each control's minimum is now worked out from the gathered facts.

TODO.md's harness entry no longer says every check guards itself: the
overflow, viewport-edge and clipped-text checks rely on app-rendered.

Model: opus-5-5
clawbot force-pushed issue-46-pin-btn-floor from 4f3ded1663 to 6ab1be3511 2026-10-04 01:49:14 +02:00 Compare
clawbot added needs-checks and removed needs-rebase labels 2026-10-04 01:49:16 +02:00
clawbot merged commit 2f0489e3a4 into next 2026-10-04 01:53:03 +02:00
clawbot deleted branch issue-46-pin-btn-floor 2026-10-04 01:53:03 +02:00
Sign in to join this conversation.
No Reviewers
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: sneak/netwatch#96