v2.30.0-pre 7341e0e

2026-03-18

a9c1886docs: rewrite CI/CD deployment guides with gordon push as recommended method bnema
da431e6fix(remote): cap error body reads to 1KB to prevent memory exhaustion bnema
98678d9feat(push): auto-exchange token for registry auth in remote mode bnema
9b3f809fix(preview): remove route from config on preview delete brice
5418cc6fix(cli): prevent preview create from showing production route selector brice
cf696fbfix(cli): filter preview routes from image route resolution brice
515e15bfix(cli): remove [name] arg from preview parent command brice
3dd5c08feat(app): wire EnvLoader into preview service brice
1e74e4bfeat(preview): inherit base route env vars at deploy time brice
c2b0666feat(container): loadEnvironment skips EnvLoader when Route.Env is pre-resolved brice
a18600cfeat(domain): add Env field to Route for pre-resolved env vars brice
0dc4389fix(cli): show help for bare 'gordon preview' instead of defaulting to create brice
61e5cb1fix(preview): skip preview domains when resolving base route from config brice
a3061c7fix(preview): use bubbletea spinner for deploy polling, fix env loader for preview domains brice
bffa8f6refactor(preview): replace status magic strings with PreviewStatus typed enum brice
1aaeb90fix(preview): persist full preview state on failure, remove unused updateStatus brice
82775f1fix: extract printPreviewFlags to reduce waitForPreview complexity brice
abad6c0test(preview): add Update unit tests and deploy integration test brice
03239fafeat(cli): poll for preview deployment and print URL brice
ae4cf2cfeat(preview): remove routes from config on preview TTL expiry brice
76b1eb4feat(preview): wire deployer, route manager, volume cloner into preview service brice
ae32066feat(preview): add deployer, route manager, volume cloner deps to service brice
fe012a8feat(cli): add GetPreview remote method for status polling brice
a48a09dfeat(preview): add Status field to PreviewRoute brice
74c9522fix(preview): fall back to route config when image has no domain label brice
05b767cfeat: infrastructure hygiene — runtime detection, upload cleanup, volume management (#131) bnema

2026-03-16

a28bcebfeat: security hardening — auto-route domain allowlist, pass token storage, blob upload locking (#125) bnema
a226908Merge pull request #127 from bnema/fix/admin-path-collision merge bnema
a78dfaafix: remove /admin/ from proxy mux to stop intercepting app routes brice
1bf1886Merge pull request #124 from bnema/feat/http2-h2c-proxy merge bnema
de49ebdfix(proxy): harden response limiter, document header stripping, and exercise body-size test brice
278618dchore: address code review findings brice

2026-03-15

01ffd59test(proxy): migrate HTTP handler tests to adapter layer, add h2c integration tests brice
ec22770refactor(proxy): move HTTP execution from usecase to adapter layer brice
9d2bfe7refactor(proxy): replace getProxyPort with resolveTargetMetadata returning port+protocol brice
a05dc46feat(domain): add Protocol field to ProxyTarget and gordon.proxy.protocol label brice
0e03b5abuild: bump go directive to 1.26.1 for native HTTP/2 Protocols API brice
defb232Merge pull request #121 from bnema/fix/attachment-deploy-lifecycle merge bnema
a315454fix(container): atomic config snapshot and sync before restart attachment check brice
d64d62frefactor(container): move AttachmentConfigProvider to boundaries/out with mockery mock brice
6a0be67fix(container): enforce deep-copy contract on AttachmentConfigProvider brice
eb2edd1refactor(container): extract restartContainerWithRecovery to reduce Restart complexity brice
ee73a96feat(container): restart fails with actionable error when configured attachments are missing brice
cda1f8ctest(container): add coverage for getNetworkForApp using live config provider brice
ef44fd8feat(container): read attachments and network groups from live config provider brice
f009838feat(container): wire AttachmentConfigProvider into container service brice
ae29dfcfeat(domain): add ErrAttachmentNotDeployed sentinel error brice
ef5e23afeat(container): add AttachmentConfigProvider interface for live config reads brice
82b42e8chore: add .worktrees to gitignore brice
e86854eMerge pull request #119 from bnema/fix/proxy-port-label-ignored merge bnema

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