Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -52,3 +52,22 @@ Fix: capture `YOffset` (or resolve the row) before the `setFocus` call.

`go test -race ./...`, plus a regression test per item — the click and paging cases are
cheap to pin with the `pagingModel` helper added in `internal/model/group_test.go`.

## Outcome (2026-08-10)

Items 1-3 landed and are in `main`:

- **1** — both handlers go through `m.indexOfMeta(name)` (`internal/model/mode.go:196`,
`:304`), with the reason stated in a comment at the first site.
- **2** — `trackTool` carries `Note`, `Tags`, `UpdateCmd`, `Added` and a ref-less
input's `GitHub` forward from the existing entry; the status reset to `trying` is
the one deliberate change.
- **3** — `buildToolRows` truncates instead of wrapping
(`truncateToWidth(flattenLine(mt.Name), nameBudget)`, `internal/model/render.go:1225`).

**Item 4 is closed unfixed, by the owner's call.** `handleMouse` still reads
`m.toolsViewport.YOffset` after `setFocus(focusTools)` has re-clamped it
(`internal/model/render.go:2230-2235`), so a click that follows a wheel scroll from
another panel can select a neighbouring tool. It is not tracked anywhere else — if it
starts to bite, this section is the record of what it is and where the fix goes
(capture the offset, or resolve the row, before the `setFocus` call).
Original file line number Diff line number Diff line change
Expand Up @@ -291,9 +291,10 @@ decorative class, with `✓ present` / `✕ missing` in the metrics strip and
- [x] mutation-check every assertion added in tasks 1-7: revert the production
edit, confirm red, restore — colors and title words especially, that class
of mutant survived the PR #48 review
- [ ] ⚠️ `go run .` against a tracked tool with a pending update — **left for the
user**: it installs a real package on the machine, so it is not something to
trigger unprompted, and a TUI needs a TTY this session does not have
- ⚠️ **never run, and deliberately so**: `go run .` against a tracked tool with a
pending update installs a real package on the machine, so it is not something
to trigger unprompted, and a TUI needs a TTY the session did not have. Left to
the user — see *Post-Completion* below for what a live run would still add.
- [x] run the full matrix via the `preflight` skill

### Task 9: [Final] Update documentation
Expand All @@ -310,11 +311,13 @@ decorative class, with `✓ present` / `✕ missing` in the metrics strip and
was still documented as `[3] Update`, capitalised, from before titles went
lowercase) and `ARCHITECTURE.md`'s `showsUpdateLog` site list, both found by
docs-sync rather than by the manual pass
- [ ] move this plan to `docs/plans/completed/` (after the live run and the merge)
- [x] move this plan to `docs/plans/completed/` — done 2026-08-10, after the merge
and without the live run (see Task 8)

## Post-Completion

**Manual verification**
**Manual verification** — none of it was performed; it stays here as the record of
what a live run would still confirm.
- The failure path is worth one real run (`chmod -w` on the brew prefix, or an
`update_cmd` pointing at a missing binary) to see the reason line wrap inside
27 cells.
Expand Down
Loading