| Comment: | repo.list: filter, sort and page the listing
The front page rendered every repository unsorted and unbounded — the same shape that made the timeline unusable, and it is at 23 now. Adds a name filter, sort by name, recent activity or size, and a limit, with Total alongside Count so a page can say '5 of 23'. Sorting happens BEFORE the limit. The other order gives an arbitrary subset in the right sequence, which reads as correct and is not. Activity comes from the event table's index — one walk stopping at the first row — so the column that makes a forge listing worth reading costs nothing. Adds repo.get, so the settings page and the CLI stop scanning the whole listing to read one repository's settings. |
|---|---|
| Timelines: | family | ancestors | descendants | both | trunk |
| Files: | files | file ages | folders |
| SHA3-256: |
4a3165db3479e7e5498e8a071536cc9b |
| User & Date: | dmestas on 2026-08-18 11:17:05.702 |
| Other Links: | manifest | tags |
|
2026-08-18
| ||
| 11:33 |
repo.add: seed a new repository's first check-in
A repository with no check-ins has an unborn trunk, so the timeline, the file tree and every clone instruction have nothing to point at. Optional README, license (MIT or BSD-2) and .zitignore give it a born trunk, which is why GitHub offers the same three at creation. The copyright line is left as <copyright holder> rather than filled with the account name: a copyright naming the wrong person is worse than one that is visibly unfinished, and an account is a login, not a legal entity. Seeding is refused on a clone, which arrives with its own history, and paths are checked against the repository root before anything is written. check-in: c5b6d979e2 user: dmestas tags: trunk | |
| 11:17 |
repo.list: filter, sort and page the listing
The front page rendered every repository unsorted and unbounded — the same shape that made the timeline unusable, and it is at 23 now. Adds a name filter, sort by name, recent activity or size, and a limit, with Total alongside Count so a page can say '5 of 23'. Sorting happens BEFORE the limit. The other order gives an arbitrary subset in the right sequence, which reads as correct and is not. Activity comes from the event table's index — one walk stopping at the first row — so the column that makes a forge listing worth reading costs nothing. Adds repo.get, so the settings page and the CLI stop scanning the whole listing to read one repository's settings. check-in: 4a3165db34 user: dmestas tags: trunk | |
| 11:06 |
repo: settings page, descriptions everywhere
repo.update replaces repo.visibility and applies a repository's settings whole — a settings form submits every field it manages, so partial-update semantics would only add a way for the two to disagree about what absent means. The CLI reads current settings before writing, so 'repo private' no longer blanks the description. A settings page at /r/{repo}/settings, admin-gated, and the description now appears on the repository itself rather than only in the listing: a reader arriving from a link otherwise sees nav and a file tree and no statement of what the project is. check-in: a41b410958 user: dmestas tags: trunk | |