v2.30.0-pre 7341e0e

2026-03-18

7341e0efeat: preview environment variable inheritance and CLI fixes merge tag v2.30.0-prebrice

2026-03-19

83b82b4fix(eventbus): attach logger to bus context so handlers get a working logger brice
2b4c159fix(auth): try JWT validation before password in token exchange brice
b72aa77Merge pull request #134 from bnema/feat/preview-environments merge bnema
c5e1989fix: use 0o750 directory permissions to satisfy gosec brice
13bd9a4fix: address CodeRabbit review — sentinels, safety, docs, test robustness brice
7fa1856fix: use UTC in PreviewStore test to survive JSON round-trip brice
7fb924cfix: lint — use presentation helpers, extract functions to reduce complexity brice
950bfdcrefactor(admin): replace NewHandler positional params with HandlerDeps struct brice
2439aa3refactor(admin): replace NewHandler positional params with HandlerDeps struct brice
13bd0f0feat(cli): wire preview commands — build/push, list, delete, extend brice
a4b282ffix(preview): address review — error handling, logging, and cleanup in handler and service brice
686191efix(preview): DNS-safe naming, testable IsExpired, and CLI output helpers brice
b84b07ffix(preview): docs corrections, test error handling, and config warning brice
e2d78b5fix(preview): atomic writes, pinned images, structured logging, and error handling brice
9f0ec73docs: add preview environments configuration guide brice
d9532c9test: add preview lifecycle integration test brice
ad3801ffeat(app): wire preview service, dispatcher, and TTL ticker in run.go brice
458a175feat(admin): add preview API endpoints — list, delete, extend brice
03a3f23feat(cli): add gordon preview command scaffold brice
2a743d6feat(preview): AutoPreviewHandler with async preview creation brice
4bf8eb7feat(preview): TTL ticker with CleanupExpired and teardown callback brice
2a244b6feat(preview): volume cloning with read-only source and cleanup on failure brice
febaaeefeat(preview): PreviewService with CRUD, TTL, and per-name locking brice
23b35cdfeat(preview): add naming logic — domain generation and branch sanitization brice
157f3c9feat(auto): add ImagePushDispatcher for event classification brice
3daa036feat(config): unified [auto] section with preview config and backward compat brice
07aac7drefactor: extract shared auto-route foundations into usecase/auto brice
ca9fb14feat(boundaries): add PreviewStore port and filesystem adapter brice
d757b58feat(domain): add PreviewRoute and AutoConfig types brice
a4e31e9Merge pull request #132 from bnema/feature/push-token-auth merge bnema
2b6f969fix: address review — DeployIntent always called, repo validation, docker login stdin, ARG docs brice
9bfe1d5fix: address CodeRabbit review — extract deploy helper, typed auth error, scope comment brice
c2bc6fcdocs: update token scope examples and document deploy modes brice
8443ba4feat: add --repo flag to token generate for repo-specific scoping brice
c9f8ad6feat: gracefully skip explicit deploy when token lacks config:write scope brice
34cd6d6refactor: introduce HTTPError typed error in remote client brice
e205712chore: remove specs/plans from repo (stored in Obsidian) brice
fe83be2docs: update GitHub Actions guide to use setup-gordon action brice
5b7cfeafeat: add setup-gordon composite GitHub Action brice
3433b85docs: add setup-gordon action implementation plan brice
1c96035docs: add setup-gordon action design spec brice
f47f9dcfix: broken curl line continuation in Drone CI example brice
3148fa0fix: registry push token retry, empty subject guard, and docstring accuracy brice
abb3644Merge pull request #133 from bnema/fix/deploy-errors-and-local-cli merge bnema
210b482fix: address review feedback — testify assertions and dead code removal brice
8547d4dfix: async old container cleanup during zero-downtime deploy brice
9cd24ccfix: resolve deploy context cancellation, spurious auth warnings, and local CLI auth gate brice

2026-03-18

fb3fd37fix(preview): address CodeRabbit review findings brice
459b87ffeat(preview): add env_copy config option (default true) brice

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