The issues table now leads with activity instead of creation order, and the columns describe what a reader came to find out.
What changed
- Assignees look like people. They are profile links with the same
userlinktreatment as the author, not label chips. Multiple assignees are comma-separated. - The last column is
Updated. It is the newest commit over the issue’s directory on the metadata branch: an edit of the title, description, labels, state, or assignees, or a comment. The branch deliberately has noupdatedfield, so the index derives it and stores it. A rebuild does onegit logover the subtree; an incremental refresh does one over the new range, and also uses the touched paths so an edit reverted inside the range still counts. - Creation time and author moved under the title. The metadata line reads
[#192](/vole/n/192) opened by keenan 3d ago, matching the issue page’s subtitle. - Labels have their own column, with an em dash when there are none.
- Default order is
Updateddescending. Open issues still come before closed ones when both are shown; the index’s default order changed too, so the overview’s open-issue sidebar shows what moved as well.
The index schema version is bumped, so the derived rows are dropped and rebuilt from the branch on the next read.
Tests
core/git:TouchTimeskeeps the newest commit per path and reads only the range it is given.forge/index:Updatedfollows a comment, an edit, and an edit that was reverted inside the refreshed range; a full rebuild and an incremental refresh agree; the store returns the commented issue first.server: the rendered list carries the new columns, renders the author and assignee as profile links, dropsAgeandAuthor, and orders by activity rather than by creation.
gofmt, go vet, and go test -race -count=1 -tags sqlite_fts5 ./... pass.