-
v0.12.0
StableAll checks were successfulreleased this
2026-08-07 19:06:38 +02:00 | 75 commits to main since this releaseChangelog
92b1134Merge pull request 'Release v0.12.0' (#499) from release/v0.12.0 into main
0db0fe3Release v0.12.0
e87ef5dMerge pull request 'ci: run every workflow step under Nushell' (#491) from chore/BUNYIP-489-nushell-workflow-shell into main
d645134Merge branch 'main' into chore/BUNYIP-489-nushell-workflow-shell
5ced1bdMerge pull request 'fix(e2e): report a 2FA-verify 5xx accurately, not as a rejected code' (#498) from fix/BUNYIP-496-e2e-2fa-5xx-diagnostic into main
fbd1f00fix(e2e): report a 2FA-verify 5xx accurately, not as a rejected code
54ad30bMerge pull request 'refactor(events): consume dunite-events, drop bunyip bus + SSE copies' (#497) from feat/DEV-528-consume-events into main
57df47crefactor(events): consume dunite-events, drop bunyip bus + SSE copies
4c33799Merge pull request 'refactor(version): consume dunite-update-check, drop bunyip copy' (#496) from feat/DEV-530-consume-update-check into main
a2b18e4refactor(version): consume dunite-update-check, drop bunyip copy
2cc3145Merge pull request 'refactor(observability): consume dunite-core error-log + client-IP' (#495) from feat/DEV-529-consume-observability into main
4c022dbrefactor(observability): consume dunite-core error-log + client-IP
6622c91Merge pull request 'refactor(services): consume dunite-hibp + dunite-webhook, drop bunyip copies' (#494) from feat/DEV-527-consume-hibp-webhook into main
8024c7crefactor(services): consume dunite-hibp + dunite-webhook, drop bunyip copies
03fd39eMerge pull request 'refactor(csrf): consume dunite-core OriginGuard, drop bunyip-api copy' (#493) from feat/DEV-526-consume-dunite-csrf into main
b746094refactor(csrf): consume dunite-core OriginGuard, drop bunyip-api copy
28b6ff6Merge pull request 'ci(e2e): drop the doubled E2E prefix from the published check names' (#481) from fix/BUNYIP-478-e2e-check-name-dedup into main
7df4eaaMerge pull request 'fix(web): log transport/decode detail suppressed from the user' (#480) from fix/BUNYIP-477-log-suppressed-detail into main
b4e6be0Merge pull request 'chore(scripts): rewrite the CI guards and operator scripts in Nushell' (#492) from chore/BUNYIP-490-nushell-ci-guards into main
e41d6e3chore(scripts): rewrite the CI guards and operator scripts in Nushell
3508642Merge branch 'main' into fix/BUNYIP-477-log-suppressed-detail
5230768Merge pull request 'feat(config): consolidate the at-rest keys into APP_ENCRYPTION_KEY' (#483) from chore/BUNYIP-483-single-app-encryption-key into main
827fefbfix(ci): unblock the Stripe-env gate and point the transitional key layer at its removal
46f5d6dci: run every workflow step under Nushell
651732eMerge branch 'main' into chore/BUNYIP-483-single-app-encryption-key
19accafMerge pull request 'fix(web): space the admin stat cards on the page rhythm' (#490) from fix/BUNYIP-367-card-spacing into main
e533ad7fix(web): space the admin stat cards on the page rhythm
22b5ec8Merge pull request 'fix(web): scroll the sidebar independently of the page' (#489) from fix/BUNYIP-368-sidebar-independent-scroll into main
f9e0d34fix(web): scroll the sidebar independently of the page
65c9a8cMerge pull request 'feat(web): mount the feedback launcher in the admin panel' (#488) from feat/BUNYIP-370-feedback-everywhere into main
c01c074feat(web): mount the feedback launcher in the admin panel
4ec789cMerge pull request 'feat(pricing): drive /pricing from the admin Pricing tiers page' (#487) from feat/BUNYIP-487-admin-driven-pricing into main
44150e0feat(pricing): drive /pricing from the admin Pricing tiers page
54d5f82Merge pull request 'test(web): cover every primary wash in the contrast guard' (#485) from fix/BUNYIP-485-primary-text-token into main
c96bfcctest(web): cover every primary wash in the contrast guard
96cd54ffix(web): split a primary-text token off the fill
1935111Merge pull request 'fix(web): focus the first field on every auth card' (#484) from fix/BUNYIP-486-auth-card-autofocus into main
0366753fix(web): focus the first field on every auth card
8a010e7feat(config): consolidate the at-rest keys into APP_ENCRYPTION_KEY
b975786Merge pull request 'feat(stripe): make the database the only source of Stripe config' (#482) from chore/BUNYIP-482-remove-stripe-env-vars into main
0f24fe2feat(stripe): make the database the only source of Stripe config
d85ba61ci(e2e): drop the doubled E2E prefix from the published check names
72d990dMerge pull request 'fix(api): return the generic AppError envelope for extractor errors' (#479) from fix/BUNYIP-481-extractor-error-handlers into main
03ae306fix(web): log the transport/decode detail suppressed from the user
43f869aMerge pull request 'ci(e2e): prefix E2E check names so branch protection can match them' (#477) from fix/BUNYIP-478-e2e-check-names into main
28e5579fix(api): return the generic AppError envelope for extractor errors
4d31d51Merge pull request 'fix(web): collapse backend/transport errors to a generic message' (#478) from fix/BUNYIP-477-simpler-error-messages into main
190534ffix(web): collapse backend/transport errors to a generic message
8502ba7ci(e2e): prefix E2E check names so branch protection can match them
71426e2Merge pull request 'fix(e2e): match the destructive error box by class substring' (#476) from fix/BUNYIP-480-e2e-destructive-selector into main
6039855fix(e2e): match the destructive error box by class substring
3c5aa9eMerge pull request 'fix(web): unify auth copy, admin separators, landing title' (#475) from fix/BUNYIP-471-copy-drift into main
312a201fix(web): unify auth copy, admin separators, landing title
ab29a35Merge pull request 'feat(web): add shared empty_state() and route every list through it' (#474) from fix/BUNYIP-468-empty-state into main
fb83df3feat(web): add shared empty_state() and route every list through it
ba9d503Merge pull request 'feat(web): a11y wiring - label association, machine-readable time, links' (#473) from fix/BUNYIP-466-a11y-wiring into main
375bde4feat(web): a11y wiring - label association, machine-readable time, links
f829fe8Merge pull request 'chore(infra): verify + surface two-hop trusted-proxy posture (BUNYIP-476)' (#472) from chore/BUNYIP-476-verify-trusted-proxy into main
2596a65chore(infra): verify + surface two-hop trusted-proxy posture (BUNYIP-476)
598a72dMerge pull request 'feat(web): consolidate shared UI kit across admin/settings/auth' (#471) from fix/BUNYIP-467-shared-kit into main
73fc2bbfeat(web): consolidate shared UI kit across admin/settings/auth
f1c2a90Merge pull request 'feat(admin): IP2Proxy/IP2Location dataset refresh + freshness readout (BUNYIP-474)' (#470) from feat/BUNYIP-474-dataset-age-and-refresh into main
401fcb6feat(admin): IP2Proxy/IP2Location dataset refresh + freshness readout (BUNYIP-474)
c2e13c8Merge pull request 'fix(admin): drag-and-drop application reorder, fix broken swap (BUNYIP-473)' (#468) from fix/BUNYIP-473-app-reorder-dnd into main
3c577f2Merge pull request 'fix(web): token + contrast fixes (yellow, destructive reds, indigo dark, muted-foreground)' (#469) from fix/BUNYIP-465-token-contrast into main
7b8736dfix(admin): drag-and-drop application reorder, fix broken swap (BUNYIP-473)
d7471bbfix(web): token + contrast fixes (yellow indicator, destructive reds, indigo dark, muted-foreground)
8f8e66aMerge pull request 'fix(web): spacing/responsive nits (rhythm, grid, overflow, sort cue, ellipsis)' (#467) from fix/BUNYIP-472-spacing-responsive-nits into main
825f6e3Merge pull request 'feat(admin): advisory ASN/VPN enrichment of client IPs (BUNYIP-437)' (#466) from feat/BUNYIP-437-ip-enrichment-consumer into main
a512e55Merge pull request 'fix(web): Title-case the browser titles to match their page h1s' (#465) from fix/BUNYIP-470-title-casing into main
f5f0afbMerge pull request 'fix(web): align card-title and page-h1 sizes to the app scale' (#464) from fix/BUNYIP-469-typography-sizes into main
65be63dfix(web): spacing/responsive/affordance nits (rhythm, grid, overflow, sort cue, ellipsis)
26d912bfeat(admin): advisory ASN/VPN enrichment of client IPs (BUNYIP-437)
296976cfix(web): Title-case the browser titles to match their page h1s
6338619fix(web): align card-title and page-h1 sizes to the app scale
6418071Merge pull request 'fix(web): add --destructive-text token for legible dark-mode destructive text' (#463) from fix/BUNYIP-464-destructive-text-token into main
f9f048fMerge pull request 'fix(web): surface admin API-fetch failures instead of empty/zero state' (#462) from fix/BUNYIP-461-admin-api-error-state into main
165ca0aMerge pull request 'fix(web): give the warning badge a dark-mode amber pair' (#461) from fix/BUNYIP-463-warning-badge-dark into main
fabfe2aMerge pull request 'fix(web): render footer brand host from runtime config' (#460) from fix/BUNYIP-462-footer-runtime-domain into main
e9b39f9fix(web): add a --destructive-text token for legible dark-mode destructive text
b07e9fefix(web): surface admin API-fetch failures instead of empty/zero state
7c2357dMerge pull request 'fix(admin): realign application edit panel (BUNYIP-460)' (#459) from fix/BUNYIP-460-application-panel-alignment into main
b9edfd2fix(web): give the warning badge a dark-mode amber pair
b8fac53fix(web): render footer brand host from runtime config
8add73afix(admin): realign application edit panel (BUNYIP-460)
fd2cb2aMerge pull request 'Consume dunite-geoip and dunite-image-upload (DEV-531)' (#458) from refactor/DEV-531-consume-dunite-geoip-image into main
4af42c9refactor(avatar): consume dunite-image-upload for the validation (DEV-531)
cb25933refactor(geoip): consume dunite-geoip instead of bunyip's copy (DEV-531)Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads
-
Source code (ZIP)