v2.30.0-pre5 7568a1c

2026-03-25

7568a1cMerge pull request #147 from bnema/feat/preview-orphan-gc merge GPG Unverifiedtag v2.30.0-pre5bnema
9209a14refactor(app): split cleanupOrphanDomainResources into focused helpers GPG Verifiedbrice
8b31c1cfix(preview): propagate cleanup errors and defer container removal GPG Verifiedbrice
b32e7e8fix(preview): address CodeRabbit review feedback GPG Verifiedbrice
470ef27refactor(app): extract preview teardown functions to reduce complexity GPG Verifiedbrice
a67455dfeat(preview): wire orphan GC into ticker, change interval to 1h GPG Verifiedbrice
fd61806feat(preview): add CollectOrphans method to service GPG Verifiedbrice
cb4022cfeat(preview): add orphan detection functions GPG Verifiedbrice
20af812feat(domain): add Created field to Container struct GPG Verifiedbrice

2026-03-24

e46f9aaMerge pull request #146 from bnema/feat/routes-tree-view merge GPG Unverifiedbnema
491f951refactor(cli): use presentation helpers for routes list output GPG Verifiedbrice
d4ce71dfix(ui): improve tree view layout and icon ordering GPG Verifiedbrice
6ea4218fix(ui): guard against empty group rendering dangling connector GPG Verifiedbrice
da87514fix(cli): use cmd.Context() instead of context.Background() in routes list GPG Verifiedbrice
92c9587fix(ui): align tree subtitle with title text after icons GPG Verifiedbrice
736bcaetest: add 1xx informational status test case for httpHealthToStatus GPG Verifiedbrice
9894199feat(cli): add 'routes status' as alias for 'routes list' GPG Verifiedbrice
9a8e556feat(cli): replace routes list table with tree view GPG Verifiedbrice
6ce6bc8feat(ui): add reusable Tree component for terminal tree rendering GPG Verifiedbrice
372b09bMerge pull request #145 from bnema/wiki/health-monitoring-guide merge GPG Unverifiedbnema
618e538fix(wiki): validate http_status is numeric before integer comparison GPG Verifiedbrice
52e5e4dfeat(ui): add StatusIcon helper for colored icon rendering GPG Verifiedbrice
9f328d9feat(ui): add tree view status icons for container, HTTP, and group GPG Verifiedbrice
759791cfix(wiki): address review feedback on health monitoring guide GPG Verifiedbrice
e7e0b7adocs(wiki): add health monitoring guide with systemd timer GPG Verifiedbrice

2026-03-23

15d9fe3Merge pull request #144 from bnema/fix/attachment-dns-race merge GPG Unverifiedtag v2.30.0-pre4bnema
d3fec5bchore: register default for deploy.attachment_readiness_timeout GPG Verifiedbrice
a76d51ffix: handle StopContainer error in attachment readiness rollback GPG Verifiedbrice
c151e54fix: add waitForAttachmentReady mocks to attachment alias test GPG Verifiedbrice
d56ae16fix(dns): add readiness check for attachments before starting main container GPG Verifiedbrice
a025239feat: add AttachmentReadinessTimeout config field GPG Verifiedbrice
63e7f3aMerge pull request #142 from bnema/token-exchange-client merge GPG Unverifiedtag v2.30.0-pre3bnema
37ca27dfix(security): reject colon in token subject to prevent Basic Auth encoding issues GPG Verifiedbrice
925cad7feat(auth): idempotent auth login — verify existing token when no --token provided GPG Verifiedbrice
7d67af7fix: linter — use cliWriteLine, sentinel error in admin middleware GPG Verifiedbrice
38c0e79fix: TTY warning on show-token, remove --revoke stub, fix tests for token exchange GPG Verifiedbrice
ff4c2ddfix(auth): don't validate JWT client-side, let server handle it GPG Verifiedbrice
f05fed4fix(security): fail on invalid JWT instead of sending long-lived token as Bearer GPG Verifiedbrice
2c89614fix: address CodeRabbit review — context propagation, sentinels, mutex, CLI patterns GPG Verifiedbrice

2026-03-22

7c8965bdocs: update auth CLI docs for token exchange and new commands GPG Verifiedbrice
16515bffeat(auth): add show-token and logout CLI commands GPG Verifiedbrice
8f94295refactor(auth): remove password login and token rotation dead code GPG Verifiedbrice
76ac5f4feat(auth): client-side token exchange for admin API calls GPG Verifiedbrice
589c4c3fix(security): reject long-lived tokens on admin and registry endpoints GPG Verifiedbrice
b9504fcfix(security): reject ephemeral tokens as credentials on /auth/token GPG Verifiedbrice
2a0009cfeat(auth): add IsEphemeral flag to TokenClaims for token type discrimination GPG Verifiedbrice
70ea140fix(auth): resolve token from pass store in auth status GPG Verifiedbrice
f03ab25docs: add TLS warning to README GPG Verifiedtag v2.30.0-pre2brice
bc2cbd5Merge pull request #141 from bnema/security-hardening merge GPG Unverifiedbnema
62a6579Merge branch 'main' into security-hardening merge GPG Unverifiedbnema

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 7

Tags 106

↑↓ moveenter openesc close