v0.3.0
Highlights
New features
- In-app notifications — bell icon in the top bar with a drawer. Events: deploy completed / failed, action execution completed / failed, template rebuild completed, template update available (admins)
- User management tier-1 — disable / enable users, force-logout (invalidate all sessions), inline display-name edit. All audit-logged, guards against disabling the last admin
- New built-in actions — Change VM Password and Add SSH Authorized Key, both parameterised
- Deploy VM button on the VMs page
- Syntax-coloured SSH credentials on reveal (letters / numbers / special chars each colour-coded)
UI / UX
- Global design refresh — Inter + JetBrains Mono, refined colour tokens, sidebar with grouped nav + user footer, breadcrumbs in the top bar, new
PageHeader/EmptyState/Breadcrumbsprimitives, card / badge / button / input polish - Pagination overhaul — per-page selector (10 / 25 / 50 / 100) on every list, "X–Y of Z" range readout, first / last buttons, persistent per-page choice per list
- Users tab freshen — initials avatars, "You" badge, single dropdown menu per row, search + status filter
- Top-bar search centered and resized
- Dropped the always-shown "Packer Ready" card from the Factory page (moved version to Settings → About)
Fixes
- Deploy-completed notifications now link to
/deploy/:id(was 404ing on/history/:id) - Notification dropdown no longer hidden behind page content
- Templates: reset page on sort change; unified card/table sort source
- Actions: paginate the table view (was rendering full list)
- History: fixed filter-reset effect ordering
Docs
- README refreshed — table of contents, "Who it's for", supported-hypervisors and supported-OS tables, built-in actions table, up-to-date API reference
Migrations
Two additive migrations run automatically on startup:
- V34 — seeds the Change VM Password and Add SSH Authorized Key built-in actions
- V35 — creates the
notificationstable with indexes
No destructive changes; data is preserved across upgrade.
Docker image
ghcr.io/blink-zero/forgemill:v0.3.0 (also tagged :v0.3, :v0, :latest).
Upgrading from v0.2.1
docker compose -f docker-compose.prod.yml pull
docker compose -f docker-compose.prod.yml up -dRollback
If anything goes wrong:
# Pin to the previous image
docker pull ghcr.io/blink-zero/forgemill:v0.2.1Or git revert the v0.3.0 merge commit on main and release v0.3.1 with the revert.