a73x

No surface has been visually inspected: web UI and TUI are test-verified only

open   by a73x

Across this session's work — merge-commit links, the abbrev policy, inline comment markers, resolution grouping, the governance repo list — every web and TUI change was verified by tests and by nobody's eyes.

The tests are real: the web is driven over raw HTTP against a live server and the TUI through a pty harness, both asserting on characters that genuinely reached the wire or the screen. What they cannot catch is layout, overflow, contrast, a marker rendered in the wrong column, or a 40-character id under `collab.abbrev=full` wrapping badly at narrow widths. Three separate implementers flagged this in the same words: they could not look at it.

Specific things worth a human eye:

- `patch show` resolution grouping (unresolved first, resolved collapsed to one line, header suppressed when all answered) — a text layout decision nobody has seen.
- The `Merged in: <oid>` link on the web patch page — wired to `/{repo}/diff/{oid}`, route exists, never clicked.
- Inline comment and `(edited)` / `[deleted]` markers in both surfaces.
- The dashboard under `collab.abbrev=full`: ids are 40 chars and the smoke test had to size the terminal to fit them.
- The governance repo list, and that `settings` is correctly absent from anonymous HTTP.

Not a bug report — a verification gap. Worth one pass through the UI with a real browser and a real terminal before treating any of it as done.

Comments

a73x   2026-08-12 14:17

Web UI pass done, 2026-08-12, via Chrome DevTools MCP against a live server serving this repo (179 collab refs, 15 patches, real diffs). The TUI is still uninspected.

**Found three things, all filed:** 8e716471 (tables force the whole page to scroll sideways at narrow widths — the real bug), b2a57996 (timestamps render as full RFC3339 with nanoseconds everywhere), c43c459d (empty filtered list says "No patches." when there are fifteen).

**Verified working, and worth recording since these were the specific unknowns:**

- The `Merged in <oid>` link on a patch detail page renders, resolves 200, and points at the commit that genuinely landed that patch. It had never been clicked.
- Inline comments render with author, `file:line`, revision and body in a readable block. Reviews likewise, with the verdict shown.
- Diff pages handle overflow correctly: `pre` carries `overflow-x: auto`, so a 1231px-wide diff scrolls inside its own block and the page does not, even at a 500px viewport. This is exactly what the tables fail to do.
- Ids render at 8 characters uniformly across the list, consistent with the abbrev floor.
- No console errors on any page visited.

The lesson for the backlog: every one of the three defects is invisible to the test suite. The HTML is well-formed, every content assertion passes, and the pages are correct in every respect a test can express. They are only wrong at a width, or in what a human reads into a sentence. Worth keeping a browser pass in the loop rather than treating the tests as covering this.

a73x   2026-08-12 17:58

TUI pass done, 2026-08-12, against the rewritten dashboard (07a78a60) captured from a real pty at both 100x30 and 200x45. Both surfaces have now been looked at.

**Found and filed:** 952390ad — the TUI still renders `2026-08-12T16:57:16.325870642+00:00` in detail panes. b2a57996 fixed exactly this in the web UI and did not touch the TUI, so the two surfaces now disagree about how to print a date.

**Verified working:**

- `DASHBOARD  as of 18:57` — the staleness indicator from 59ab40e8 is present and legible in the header, which is the property that turns a stale screen from silently wrong into merely old.
- Two-pane layout holds at both widths, borders align, no overdraw.
- The issue list truncates titles to the pane width rather than wrapping or overflowing. At 200 columns titles are readable; at 100 they cut around 13 characters (`TUI is read-o`), which is aggressive but honest — it is a 33-column pane, and the detail pane beside it carries the full title.
- Labels render (`Labels:  dev-ready`), linked patches render.

**Caveat on method, worth recording for whoever does this next:** my first two capture attempts produced nothing and looked like the app was broken. A pty created without `TIOCSWINSZ` has size 0x0, and ratatui asks the terminal via ioctl rather than reading `$COLUMNS` — so it dutifully drew an empty screen. Set the window size on the pty explicitly. The capture script is throwaway but the trap is not.

Still unexamined: the new review keys (`c`/`R`/`x`/`a`) in a human terminal, and the $EDITOR suspend/restore round trip, which the pty harness covers functionally but nobody has watched. Also 07a78a60 turned wrapping **off** on the detail pane so the cursor line and the commented line cannot disagree — long diff lines now clip. Correct for anchoring, and a visible change nobody has looked at.

a73x   2026-08-13 14:38

[deleted]

a73x   2026-08-14 07:30

dashboard driven test passes!

a73x   2026-08-14 07:32

**First human-terminal confirmation, 2026-08-14.** The user drove the dashboard and successfully commented on an issue — the flow reported in d7158619 and implemented in 3ba51232, working in a real terminal rather than a pty harness or a TestBackend buffer.

That covers the `c` binding, the `$EDITOR` suspend and return, and the write landing on the DAG. It is the first behaviour in this surface confirmed by a person all cycle.

Still unseen by anyone, and worth a pass when convenient:

- The `?` overlay at small terminal sizes. It is sized from the widest key plus widest label and **clips rather than reflows**; only one sizing bug was caught, and only because a pty test happened to notice truncated labels.
- Footer priority at 80 columns — reasoned from character counts, never surveyed across widths.
- Wrapping (`w` toggle, `Ctrl-E`/`Ctrl-Y`) on a genuinely long diff line, and the `›` truncation marker when wrapping is off.
- `C` close/reopen, including that the reason lands and an empty buffer abandons.
- The web UI since the layout fixes: tables no longer force sideways scroll, timestamps are short, the Base column replaced Branch.

Two known unknowns that a terminal would settle quickly: Shift handling assumes the terminal folds Shift into the character (true for crossterm here, unverified under the kitty keyboard protocol), and key *release* events are unfiltered — a terminal that reports them would now print "does nothing" per release.

a73x   2026-08-14 07:47

**Live-site browser pass, 2026-08-14**, against https://git.a73x.sh (Chrome DevTools MCP) after the deploy of 8bbdad3. All four web fixes confirmed in production, not just in tests:

```
headers:  ID Status Title Author Labels Base Unresolved Updated
sample:   02671b2a  merged  …  a73x  ""  main  ""  2026-08-11 16:08
```

- **b2a57996** — timestamps render `2026-08-11 16:08`, not the 35-character nanosecond form.
- **850f3b8e** — the Branch column is gone; Base shows `main`.
- **76c6cb58** — an Unresolved column exists.
- **8e716471** — at 1280px `pageScrollsSideways: false`; at **500px** still `false` (docW 485 vs viewport 500) with `tableScrollsItself: true` and the wrapper at `overflow-x: auto`. That is the exact defect this issue was opened for, fixed and verified on the deployed site.
- **c43c459d** — `No closed patches. (31 total — show all)`, linking to `?filter=all`. The flat false "No patches." is gone.

No console errors or warnings on any page visited.

**Not covered by this pass:** screenshots time out against this host (`Page.captureScreenshot timed out`), so everything above is measured rather than *seen*. Layout properties, header text and the absence of horizontal scroll are solid; visual judgement — spacing, alignment, whether the Unresolved column reads well when populated — is not. Every patch on this repo is merged with no unresolved comments, so that column is empty everywhere it appears and has never been seen carrying a number.

The TUI half of this issue is separate: commenting is confirmed working by the user in a real terminal, and the `?` overlay, footer widths, wrapping toggle and `C` close/reopen remain unseen.

a73x   2026-08-14 07:53

Correction to my previous comment: **the Unresolved column does carry numbers** and I have now seen it. Screenshots work against this host as JPEG (`format: jpeg, quality: 60`); it is only PNG that times out. Live at 1280px: `21a2f08d: 6`, `46368211: 5`, `659f0350: 14`, rendered in amber, blank where zero. I had written that it was empty everywhere it appears — that was inferred from this repo's patches all being merged, and it was wrong.

Seeing the page also surfaced something measurement did not: a test patch I believed deleted was live on the public site. Filed separately.