vole
Clone
Read only, no credentials:
https://rodent.software/vole.git
Write over SSH with a registered key:
git clone ssh://git@rodent.software:2222/vole.git
A free and open-source forge that lives in your Git repo.
Build out change review and threaded discussions
f6f4b1db24292d1df877680714952a9c568e2b78 · Keenan Nemetz · 15d ago · parent 564acd4b
Build out change review and threaded discussions - Add Conversation, Files and Runs tabs to change requests. Files uses the code-browser shape with a changed-file tree and one selected-file diff; Runs lists the head commit's workflow results. - Show anchored review comments beneath the line, with a collapsed excerpt read from the exact blob that was reviewed, and return posted anchors to their line note. - Add comment threads: any comment can be replied to, the UI flattens the descendants under one root, reply context links back to the parent, and reply targets feed a single composer at the foot of the discussion. - Collapse reply groups while keeping the root visible, and scroll to the composer when Reply is selected. - Add comment context menus with Reply, Copy text, Copy link, Edit and Delete. Add web edit/delete routes with author or admin checks; deletion leaves a tombstone so replies keep their thread. - Support --reply-to in the issue and change CLI commands, and treat a missing parent as a tombstone rather than an invalid tree. - Fix the diff comment gutter, action button colours, reply labels, and keep the Files tree and diff pane aligned. Update metadata validation, web templates, CSS, JavaScript, tests, and the CLI/change-request/issue docs.
docs/ui-plan.md +12−7
| @@ -73,7 +73,7 @@ Status: `done` exists today · `wip` in progress · `todo` missing. | |||
| 73 | 73 | line numbers, raw, markdown source with an explicit full-width preview | |
| 74 | 74 | - done — commit history, commit view, parent links, diff | |
| 75 | 75 | - done — issues list/detail, comments, filters, close/reopen, labels and assignees (create and edit) | |
| 76 | - done — changes list/detail, discussion composer, approvals, inline-comment markers, close/reopen | ||
| 76 | - done — changes list/detail with Conversation, Files and Runs tabs; one-level threaded discussion UI, approvals, file tree and diff, inline review comments, close/reopen | ||
| 77 | 77 | - done — releases list/detail, artifacts, archives | |
| 78 | 78 | - done — locks | |
| 79 | 79 | - done — run detail, log, artifacts | |
| @@ -89,8 +89,9 @@ Status: `done` exists today · `wip` in progress · `todo` missing. | |||
| 89 | 89 | - todo — language-aware file icons | |
| 90 | 90 | - todo — code search within a repository | |
| 91 | 91 | - todo — release create/edit from the browser (today CLI/tag push) | |
| 92 | - done — inline review comments on diff lines; the marker appears on the next | ||
| 93 | page load | ||
| 92 | - done — inline review comments render beneath the diff line; the composer opens | ||
| 93 | in place and a posted comment returns to its line note. Conversation comments | ||
| 94 | carry a collapsed excerpt from the blob they anchored to | ||
| 94 | 95 | ||
| 95 | 96 | ### CI | |
| 96 | 97 | ||
| @@ -125,13 +126,17 @@ every page. Interactions are converted one flow at a time: | |||
| 125 | 126 | - done — issue close/reopen, labels, assignees, and comments update their | |
| 126 | 127 | section in place. Labels and assignees save on token change; there is no | |
| 127 | 128 | visible save button. | |
| 128 | - done — change approve/close updates the sidebar, and comments update the | ||
| 129 | discussion fragment. | ||
| 129 | - done — change approval updates the sidebar, comments update the discussion | ||
| 130 | fragment, and close/reopen are page actions. | ||
| 130 | 131 | - done — Issues and Changes filters swap their list fragment and push the URL. | |
| 131 | 132 | - done — repository activity feed swaps its event fragment for type filters and | |
| 132 | 133 | pushes the URL. | |
| 133 | - done — diff lines link to an anchored review composer; posted anchors are | ||
| 134 | stored with the reviewed blob. | ||
| 134 | - done — diff lines open an anchored composer in place; posted anchors are | ||
| 135 | stored with the reviewed blob and returned to beneath the line. | ||
| 136 | - done — the Files tab swaps only the selected file's diff pane from its tree, | ||
| 137 | and pushes the file URL. | ||
| 138 | - done — the Runs tab lists the head commit's workflow results and links to each | ||
| 139 | run. | ||
| 135 | 140 | ||
| 136 | 141 | The token input and passkey ceremonies stay custom JavaScript: HTMX moves HTML | |
| 137 | 142 | from the server, it does not manage client-side chip state or credential APIs. | |