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.

Expand the admin status page into an operational dashboard

4506a4d3d279556435fdd414265e7499c3dada16 · Keenan Nemetz · 14d ago · parent 2e024cc9

docs/ui-plan.md +14−12

@@ -20,17 +20,16 @@ deliberately rather than by drift.
20 20 Handlers answer a fragment when `HX-Request: true` and a redirect otherwise.
21 21 - **Identity later.** Keep the `vole` wordmark as a placeholder and keep colour,
22 22 type, radius, and spacing in tokens so a real identity is a token swap.
23 - **Single tenant.** No organisation/workspace switcher. The global bar has two
24 destinations, plus the account menu; the repository owns its own horizontal
25 tabs.
23 - **Single tenant.** No organisation/workspace switcher. The global bar has one
24 public destination, plus the account menu; the repository owns its own
25 horizontal tabs.
26 26
27 27 ## Navigation model
28 28
29 Global bar (slim): `vole` · `Runners` · `Activity` · search · account menu. The
30 wordmark is home, so there is no separate Repositories link. The account menu
31 carries Account, Admin for instance admins, Status, and Sign out; the current
32 destination is marked. Search is a field on wide screens and takes its own row
33 on narrow ones.
29 Global bar (slim): `vole` · `Activity` · search · account menu. The wordmark is
30 home, so there is no separate Repositories link. The account menu carries
31 Account, Status for instance admins, and Sign out; the current destination is
32 marked. Search is a field on wide screens and takes its own row on narrow ones.
34 33
35 34 Repository header: the repository name and its short description sit above the
36 35 tabs at the home-page header scale, with a lock for a private repository or a
@@ -40,8 +39,8 @@ the tabs, not the page, are the navigation. The tabs are:
40 39 `Overview` · `Activity` · `Code` · `Issues` · `Change requests` · `Releases` · `Runs` · `Locks` · `Settings`
41 40
42 41 No sidebar. A sidebar only pays for its width when there are many persistent
43 destinations; here the repository has seven and the global bar has two, and they
44 fit on one row at desktop widths. On narrow screens the tab row scrolls
42 destinations; here the repository has several and the global bar has one, and
43 they fit on one row at desktop widths. On narrow screens the tab row scrolls
45 44 horizontally rather than collapsing into a menu.
46 45
47 46 Every tab opens with the same page header: a title and one-line summary on the
@@ -67,7 +66,6 @@ Status: `done` exists today · `wip` in progress · `todo` missing.
67 66 - done — repository list (`/`)
68 67 - done — sign-in, registration, enrollment link
69 68 - done — account (name, keys, passkeys, sessions)
70 - done — runners and queue
71 69 - done — styled 404 page everywhere, including missing detail resources and
72 70 download paths
73 71 - done — styled 500 page everywhere; a handler panic before the first byte is
@@ -82,7 +80,11 @@ Status: `done` exists today · `wip` in progress · `todo` missing.
82 80 type filter, and 50-event pages
83 81 - done — instance admin: repository creation and access rules, accounts,
84 82 enrollment links, admin grants, keys, and sessions
85 - done — health/status page at `/status`; `/healthz` stays the plain-text probe
83 - done — instance-admin status page at `/status` with storage and filesystem
84 usage, LFS/log/artifact breakdowns, page-view and unique-user counts, runner
85 presence and queue depth, and an effective configuration summary. The page is
86 split into Overview, Storage, Runners, and Configuration tabs; `/healthz` stays
87 the plain-text probe and old `/runners` links redirect to the Runners tab.
86 88
87 89 ### Repository
88 90