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/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.

Turn the code tab into an editor-style file browser

a464f8927bfb3edcf170694f120dc9b3f68320da · Keenan Nemetz · 15d ago · parent f09ef39e

Turn the code tab into an editor-style file browser

- Add a persistent nested file tree with HTMX file and folder swaps, active
  rows, expanded ancestors, and deep-link support.
- Share one page header across every repository tab: title and summary on the
  left, tab actions grouped on the right.
- Make the repository name the first tab and show visibility with a lock or
  globe icon derived from the ACL.
- Open markdown as syntax-highlighted source by default, with an explicit
  full-width preview toggle.
- Point the branch breadcrumb at the Code overview instead of a second root
  directory listing.
- Move contributor-branch CI approval from the code browser to the Runs tab.
- Extend UI tests for the file tree, fragments, repo visibility, markdown
  source/preview, shared headers, and the moved CI control.

docs/ui-plan.md +22−10

@@ -26,20 +26,30 @@ deliberately rather than by drift.
26 26
27 27 Global bar (slim): `Repositories` · `Runners` · account/login.
28 28
29 Repository header: name, then horizontal tabs directly beneath it:
29 Repository header: the repository name is the first tab, carrying a lock for a
30 private repository or a globe for a public one. The rest of the row is:
30 31
31 `Overview` · `Activity` · `Code` · `Issues` · `Changes` · `Releases` · `Runs` · `Locks` · `Settings`
32 `Activity` · `Code` · `Issues` · `Changes` · `Releases` · `Runs` · `Locks` · `Settings`
32 33
33 34 No sidebar. A sidebar only pays for its width when there are many persistent
34 35 destinations; here the repository has seven, and they fit on one row at desktop
35 36 widths. On narrow screens the row scrolls horizontally rather than collapsing
36 37 into a menu.
37 38
38 Overview is the project page: README in the main column; recent commits, recent
39 runs, releases, contributors, languages, and size in the sidebar. Activity is the
39 Every tab opens with the same page header: a title and one-line summary on the
40 left, and that tab's actions (or branch picker) grouped on the right. Filters and
41 list controls stay below the header; the header is the only place a tab's primary
42 action lives.
43
44 The repository tab opens Overview: README in the main column; recent commits,
45 recent runs, releases, contributors, languages, and size in the sidebar. Activity is the
40 46 chronological feed: commits, issues, changes, releases, and runs with type
41 filters. Code is the file browser. Settings appears once the page exists and the
42 viewer has an admin role.
47 filters. Code is an editor-style browser: a persistent tree on the left and the
48 open file in the large right-hand pane; file and folder links swap only that pane
49 through HTMX. Markdown opens as source; a Source/Preview toggle renders it at full
50 pane width. The branch crumb returns to the Code overview rather than opening a
51 second directory listing. Settings appears once the page exists and the viewer
52 has an admin role.
43 53
44 54 ## Surfaces
45 55
@@ -59,7 +69,8 @@ Status: `done` exists today · `wip` in progress · `todo` missing.
59 69
60 70 ### Repository
61 71
62 - done — code tab, tree, blob with line numbers, raw
72 - done — code browser: persistent file tree, HTMX file/folder swaps, blob with
73 line numbers, raw, markdown source with an explicit full-width preview
63 74 - done — commit history, commit view, parent links, diff
64 75 - done — issues list/detail, comments, filters, close/reopen, labels and assignees (create and edit)
65 76 - done — changes list/detail, discussion composer, approvals, inline-comment markers, close/reopen
@@ -75,7 +86,6 @@ Status: `done` exists today · `wip` in progress · `todo` missing.
75 86 danger zone
76 87 - todo — compare view (`/r/{name}/compare/{base}...{head}`)
77 88 - todo — file history and blame
78 - todo — syntax highlighting in the blob view
79 89 - todo — language-aware file icons
80 90 - todo — code search within a repository
81 91 - todo — release create/edit from the browser (today CLI/tag push)
@@ -85,6 +95,7 @@ Status: `done` exists today · `wip` in progress · `todo` missing.
85 95 ### CI
86 96
87 97 - done — runner list, queue, run detail/log/artifacts
98 - done — contributor-branch CI approval on the Runs tab, not the code browser
88 99 - todo — workflow/job list per repository
89 100 - todo — rerun/cancel from the browser (only if the queue model supports it)
90 101
@@ -92,8 +103,9 @@ Status: `done` exists today · `wip` in progress · `todo` missing.
92 103
93 104 1. ~~**Foundations**~~ — embedded template files, tokenised CSS, slim shell,
94 105 repo tabs, styled not-found.
95 2. **Code browsing** — overview/code split, stats, contributors, runs list,
96 tree, line-numbered blobs, commit/diff. Syntax highlighting remains.
106 2. **Code browsing** — done: overview/code split, stats, contributors, runs
107 list, editor-style tree, HTMX navigation, line-numbered blobs, commit/diff,
108 syntax highlighting.
97 109 3. **Issues and changes** — done: list/detail layout, composer, filters,
98 110 close/reopen, discussion. Remaining: label/assignee triage, writing inline
99 111 review comments.