vole
Clone
Read only, no credentials:
https://rodent.software/git/vole.git
Write over SSH with a registered key:
git clone ssh://git@0.0.0.0:2222/vole.git
A free and open-source forge that lives in your Git repo.
Show state changes and actor/assignee filters in activity
8e93a8f0e42847734facadaa8a56f857ed1a1565 · Keenan Nemetz · 15d ago · parent 2973f727
Show state changes and actor/assignee filters in activity Issue state changes now write a canonical "issue: <id> <state>" subject, the same shape requests already used, so the feed can read closed, reopened, and merged events from the metadata log without diffing historical files. The CLI and the web share metadata.SetIssueState. The repository feed filters by type, actor, and assignee. Filters survive type changes and HTMX swaps, and are applied before the 100-event limit so an older matching event is not hidden by newer unrelated ones.
docs/ui-plan.md +10−10
| @@ -85,7 +85,7 @@ Status: `done` exists today · `wip` in progress · `todo` missing. | |||
| 85 | 85 | - done — runs list per repository (`/r/{name}/runs`) with status filters | |
| 86 | 86 | - done — repository activity feed on `/r/{name}/activity`: commits, issues, | |
| 87 | 87 | changes, releases, runs, type filters, and HTMX fragment updates | |
| 88 | - todo — activity events from metadata-log state changes (closed/reopened), | ||
| 88 | - done — activity events from metadata-log state changes (closed/reopened), | ||
| 89 | 89 | actor filter, and assignee filter | |
| 90 | 90 | - done — repository settings: description, default branch, visibility | |
| 91 | 91 | - done — danger zone: rename and delete with typed confirmation | |
| @@ -115,10 +115,9 @@ Status: `done` exists today · `wip` in progress · `todo` missing. | |||
| 115 | 115 | 3. **Issues and changes** — done: list/detail layout, composer, filters, | |
| 116 | 116 | close/reopen, discussion, label/assignee triage, writing inline review | |
| 117 | 117 | comments. | |
| 118 | 4. **Activity and settings** — repository activity feed, repository settings | ||
| 119 | (description, default branch, visibility, danger zone), and the | ||
| 120 | instance-admin ACL editor are done. Remaining: metadata-backed close/reopen | ||
| 121 | events. | ||
| 118 | 4. **Activity and settings** — done: repository activity feed with state | ||
| 119 | changes and actor/assignee filters, repository settings (description, default | ||
| 120 | branch, visibility, danger zone), and the instance-admin ACL editor. | ||
| 122 | 121 | 5. **Instance admin** — access rules are done at | |
| 123 | 122 | `/admin/repos/{name}/access`, and rename/delete live in repository settings. | |
| 124 | 123 | Remaining: users, invitations, keys, and repository create. | |
| @@ -154,14 +153,15 @@ from the server, it does not manage client-side chip state or credential APIs. | |||
| 154 | 153 | ||
| 155 | 154 | No notification table and no per-user inbox. The feed is derived from Git, the | |
| 156 | 155 | metadata branch, tags, and the run queue. Events carry a type, time, actor, | |
| 157 | title, link, and (for issue/change events) assignees so the same feed can later | ||
| 158 | be filtered by assignee. | ||
| 156 | title, link, and (for issue/change events) assignees, so the same feed can be | ||
| 157 | filtered by actor and assignee. | ||
| 159 | 158 | ||
| 160 | 159 | Repository feed is done on `/r/{name}/activity`; Overview stays the project | |
| 161 | 160 | summary. The home page will become the instance-wide feed over visible | |
| 162 | repositories. State changes such as closed and reopened need the metadata branch | ||
| 163 | log; the first feed covers creation, comments, approvals, commits, releases, and | ||
| 164 | runs. | ||
| 161 | repositories. State changes such as closed and reopened come from the metadata | ||
| 162 | branch log, which carries a canonical `issue: <id> <state>` and | ||
| 163 | `request: <id> <state>` subject. The feed covers creation, comments, approvals, | ||
| 164 | state changes, commits, releases, and runs. | ||
| 165 | 165 | ||
| 166 | 166 | ## Admin scope | |
| 167 | 167 | ||