Sign in

Search issue titles and bodies, change requests and comments. Private repositories you cannot read are not included.

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.