> ## Documentation Index
> Fetch the complete documentation index at: https://docs.levelrail.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog

> Every Levelrail release with highlights, fixes and upgrade notes.

<Update label="0.2.2" description="2026-10-12">
  **Bug Fixes**

  * add the frontmatter description the docs build requires to design tokens (#1180)
</Update>

<Update label="0.2.1" description="2026-10-12">
  **Bug Fixes**

  * restore the all-features test baseline in the CLI and bound two integer conversions (#1177)
  * updates channel resolution, Edge dead end and Cloud Run guides for launch (#1175)
</Update>

<Update label="0.2.0" description="2026-10-12">
  **Features**

  * 0.6 upgrades, dashboard v2, standalone domains, secrets v2 and reliability fixes (#1164)
  * attribute dashboard memory to the control plane and unmanaged containers
  * CLI for standalone domains and the server address
  * cost showback per app, project, environment and team
  * coverage-first backups page, protect-all, and orphaned data reclaim
  * dashboard restart, dock and CLI console, forward auth, responsive pass
  * dock as fixed overlay widget with float, bottom and side modes
  * docked bottom panel hosting the AI chat with ctrl+j toggle
  * fold the create-app repo fields into a summary once a repo is picked (#1168)
  * Get started hub with live setup steps, server-side progress and CLI
  * levelrail-cli tui, a k9s-style terminal UI for apps, deploys, logs and actions
  * log explorer with saved queries, error signatures and log alert rules
  * mask sensitive env everywhere, step-up reveal, one environment editor
  * MCP prompts, resources and --print-config for levelrail-mcp
  * mobile pairing API and built-in sign-in provider for the auth gate (#1173)
  * network page groups this server as a real node and mesh can be enabled from the UI and CLI
  * one click quick actions in the web CLI console
  * per-domain auth gate (forward auth) in the embedded ingress
  * per-domain auth gate (forward auth) with header spoof stripping
  * read-only host diagnostics in the web CLI console
  * redesign deploy history rows and the deploy page around the logs (#1165)
  * resource advisor dashboard, Optimise panel, beta settings and docs
  * resource advisor engine, API, CLI and MCP tool behind a beta flag
  * responsive pass for phone and tablet across dashboard, lists and settings
  * restart the control plane from the dashboard
  * show the live preview image and commit subject on the app overview (#1167)
  * sign-in attribution footer with GLINR Studios and TheAuth marks
  * sign-in screens and remaining charts use design tokens
  * single-node placement shows this server, nodes table and settings index regrouped
  * split-screen sign-in with a rotating brand showcase from the TheAuth visuals (#1169)
  * standalone domains proxy to a port, address, URL, app or container
  * sticky dashboard header, dark elevation tokens and GLINR CSS tokens
  * suggestion-driven New app wizard with repository analysis
  * system restart CLI command with --wait and status
  * triage model, certificate guardrails and resources-first dashboard home
  * turn AI chat on from Settings, Beta features, and fix header right alignment
  * two-mode add domain dialog, standalone rows and server address card
  * upgrade blockers with fixes, upgrade now, scheduled and automatic upgrades
  * web CLI console over WebSocket, scoped to the platform CLI
  * web CLI console route, dock tab and beta toggle

  **Bug Fixes**

  * auth gate keeps the client query on the auth subrequest
  * deployments rows open the deploy page, and long commit messages no longer flood the drawer (#1163)
  * dock AI tab explains when the ai-chat experimental flag is off
  * keep placement display fields out of the MCP client types to stay under the tool token budget
  * keep pre-library API tokens working after upgrade
  * merge edge channel modelling and stale incident fixes with scheduled upgrades
  * picking a repo prefills the create-app form and collapses the repo grid (#1166)
  * sanitize terminal escape sequences in web console output
  * serve /metrics and jwks, restart after swap on self-upgrade, restore-as-new owner, ungate data export CLI
  * serve internal fallback certs when ACME fails, validate ACME contact, abort never-listening deploys
  * stale data copy incidents, plain-language copy failures, and edge channel update messaging
  * tcp readiness fallback, server help flags, backup target validation, version stamp
  * wait for proxy route load in verify, warn on alert rules with no channel

  **Documentation**

  * standalone domains, server address, and confirmation fixes
</Update>

<Update label="0.2.0-beta.20" description="2026-10-11">
  **Bug Fixes**

  * dockerguard builds on Windows, and CI cross-compiles the CLI (#1157)
</Update>

<Update label="0.2.0-beta.19" description="2026-10-11">
  **Features**

  * 0.4 compose, cutover, previews, teams, backups, observability, multi-node, upgrades (#1140)
  * 0.5 dashboard performance, smart deploy, proxy-managed domains, shell and database UI, MCP (#1147)
  * **api:** publish an OpenAPI 3.1 spec generated from the route table (#1037)
  * attention center, device login approval, setup redesign, release rollback (#1077)
  * brand kit page, headline variants and per-page social cards (#1094)
  * canary deploys with weighted traffic (#1065)
  * claim containers from a docker inspect snapshot (no platform token) (#1092)
  * CLI insights commands, reconciler half-success tests, 19 catalog templates (#1033)
  * coolify migration data path, domain wizard, environment domains, db viewer (#1074)
  * database access and network, IAM policy builder, app import wizard (#1091)
  * **docs:** animate the product mock, add mock carousel, scroll reveal and stats strip (#1041)
  * **docs:** favicons, guides, template gallery, announcements feeds (#1060)
  * **docs:** flat full-window hero mock, seam fix and Mastra-style FAQ (#1038)
  * **docs:** hero uses the product mock, .well-known ships, light-mode fix (#1035)
  * **docs:** homepage hero, feature cards, install chip, nav fixes (#1024)
  * **docs:** site overhaul with new landing pages, grouped nav, mock kit, legal and agent-readiness (#1034)
  * domains, DNS, proxy coexist, traffic controls and platform hardening (0.3) (#1125)
  * extract generic packages into a nested kit module (#1014)
  * first-run fixes: hide domains from search engines, proxy coexist guide, IPv4 public host (#1102)
  * functions, requests that wake a sleeping app wait and are replayed (#1068)
  * glinr-bot policy evaluator, shadow-mode workflow and client-id for app tokens (#1100)
  * install cosign by default and add upgrade-note for manual binary swaps (#1110)
  * legacy passkeys sign in and OAuth keeps built-in callback URLs under the library engine (#1029)
  * library auth engine behind APP\_AUTH\_ENGINE with backfill (#1015)
  * list case-duplicate email groups in auth-backfill, add go/no-go checklist (#1023)
  * managed postgres pgvector variant (#1078)
  * migrate auth to the theauth library behind default-off flags (#1021)
  * move upgrade into kit and brand-drive agent provisioning names (#1020)
  * perf, exposure audit, migration hub, upgrade history, external databases, attention v2, fleet overview (#1087)
  * public HTTPS port and TLS terminated upstream ingress settings (#1117)
  * regenerate OG and social images on the petrol brand (#1093)
  * roles and guest access, global environments, environment-aware IAM and AI control (#1048)
  * scripts/build-linux.sh builds the embedded-web binary with the version stamped (#1112)
  * security center, session management and sign-in hardening (#1133)
  * setup, HTTPS, token and image auto-update improvements (#1062)
  * sign in with a code and new-browser approval (#1115)
  * sleep idle apps and wake them on the next request (#1066)

  **Bug Fixes**

  * \[HIGH] Server-Side Request Forgery (SSRF) in Git provider integrations (#1051)
  * bump the mealie template to v3.28.0 (#1019)
  * database explorer schema for large databases, mark explorer beta (#1080)
  * deflake scheduledtask replace and agent TTY close tests (#1053)
  * DNS check shows what each resolver answered, a timestamp and a propagating state (#1123)
  * docker snapshot apps stay image apps with a load hint, neutral secret hint (#1096)
  * **docs:** code block copy button back in the corner, inline code tint only inline (#1042)
  * **docs:** readable light-mode nav panel and a balanced footer (#1040)
  * **docs:** use the app metrics screenshot in the home hero (#1026)
  * egress sidecar gets NET\_RAW, e2e cleanup removes service volumes (#1059)
  * exact 1200x630 social cards with a CTA, og:site\_name, short descriptions, bolder favicon (#1097)
  * explain and link the private GitHub App case when adding an organization (#1130)
  * explain and offer a fix when real certificates cannot work on non-standard ingress ports (#1114)
  * fall back to the embedded default logo and colors when brand.yaml leaves them empty (#1075)
  * findings from real-server QA (sign-in, firewall, redeploy, templates, status UI) (#1043)
  * git push deploys fall back to the GitHub App installation token (#1145)
  * glinr-bot talks to the GitHub API over net/http instead of spawning gh (#1103)
  * levelrail.com uses the transparent mark like the control plane; add 96px icon and manifest (#1104)
  * library sign-in returns the second-factor step for users with TOTP (#1025)
  * match legacy device and recovery code behavior in library auth mode (#1027)
  * README typing banner on the petrol brand with the new headline (#1095)
  * repair 7 catalog image pins that no longer resolve (#1031)
  * serve plain HTTP for a TLS-terminating proxy and show setup on the Proxy page (#1127)
  * short delta percentages and proxy-served certificate in app health (#1141)
  * unblock CI on main (execgate allowlist for self-upgrade files, skip test-only packages in go build) (#1148)
  * verify moved images by content, not image ID (#1121)

  **Performance**

  * cut PR CI wall time (live suite gate, parallel fleet, plan job) (#1090)
  * optimize string concatenation in joinErrors (#1061)
  * scope migrations by table, guards lane, green-based nightly, scoped hooks, remote Go cache (#1131)

  **Documentation**

  * add see-also sections to multi-node and cli-reference pages (#1030)
  * full pass for accuracy, components and coverage (#1036)
  * polish code blocks, tables, callouts and doc components (#1028)
  * README and social card tuned for conversion (#1063)
</Update>

<Update label="0.2.0-beta.18" description="2026-10-05">
  **Features**

  * harden ingress edge, hold pages, and systemd socket activation (#999)
  * orphan reaper, retried teardown paths, cascading project/env/org delete (#1008)

  **Bug Fixes**

  * database data safety, remote WAL, guarded Postgres major upgrade, DR runbook (#1009)
  * git private-network opt-in with its own env, unbreak e2e fixtures (#1010)
  * harden alerting, auth and day-2 paths (#1007)
  * local-node replicas published on loopback are balanced, not dropped as remote (#1003)
  * publish prerelease npm builds as latest until a stable release exists (#1002)
</Update>

<Update label="0.2.0-beta.17" description="2026-10-05">
  **Features**

  * one-command npm bootstrap and opt-in hands-off releases (#995)
  * route ingress to apps on remote nodes over the WireGuard mesh (#996)

  **Bug Fixes**

  * app delete tears containers down and retries until gone (#991)
  * **auth:** token ownership, OAuth state binding with PKCE, atomic device redeem (#981)
  * balance multi-replica apps by default and route the local node's replicas (#994)
  * Homebrew formula exec bit, npm trusted publishing, split publish jobs (#992)
  * make node enrolment and mesh work out of the box on the agent image (#983)
  * security review hardening (CSRF, cert purge churn, placeholder escape, git SSRF, hardening default) (#997)
</Update>

<Update label="0.2.0-beta.16" description="2026-10-05">
  **Features**

  * CLI and agent distribution, Windows CLI, agent skill files, update-check and main CI fixes (#972)
  * zero-DNS sslip.io HTTPS, db cert storage, http redirect (#977)

  **Bug Fixes**

  * data safety hardening for databases, backups, restore and volumes (#980)
  * mention levelrail-cli install and login in install.sh summary (#970)
  * reject cross-origin cookie-authenticated mutations (#976)
  * zero-downtime hardening for pinned ports, rolling, secrets, replicas (#978)

  **Documentation**

  * add seven tutorials for search and fix restore-as-new race (#979)
  * fix MCP tool count and ci.md Vue interpolation build error (#975)
  * rewrite deploying-apps as a lifecycle guide, refresh landing, comparison, troubleshooting, status (#974)
</Update>

<Update label="0.2.0-beta.15" description="2026-10-05">
  **Features**

  * add 12 service templates (catalog tranche 5) (#683)
  * add 16 new self-hosted service templates to catalog (#807)
  * add Azure and GCP cloud node provisioning (#782)
  * add dashboard toggle for HSTS (#840)
  * add opt-in per-app deploy status badge (#898)
  * add platform capabilities panel to empty dashboard (#870)
  * add react-i18next foundation, migrate 3 deploy settings cards (#905)
  * add standalone template detail and catalog routes (#814)
  * add thesvg logo mappings for 4 catalog templates (#805)
  * add whole-mesh network topology view (#819)
  * adopt an existing machine as a node over SSH (#822)
  * agent certificate renewal, agent-generated keys, re-enrollment and agent version reporting (#710)
  * agent identity on API tokens and audit entries (#765)
  * agent onboarding (init, agent identity UI, log levels, agents settings page) (#769)
  * AI model deploys on GPU nodes, load balancer, S3/R2 log archive, pipelines, catalogue (#701)
  * AI serving load (model page, engine metrics, VRAM fit, on-demand residency, CDI attach) (#770)
  * app health timeline on the overview page (deploys, restarts, error windows) (#694)
  * app quick actions menu, redeploy button, empty-state CTAs (#672)
  * app timeline, pending changes, secret declaration on set, domains CLI and previous-release hold cap (#718)
  * audit MCP tool surface and add a token budget test (#758)
  * auto-pick a free dashboard port, make ingress ports overridable (#926)
  * auto-route the status page's custom domain through the embedded ingress (#936)
  * beta feature push (domains/DNS, SSL certs, volumes, NAS, VPN mesh, firewall, signatures) (#884)
  * brand logos for frameworks, integrations and backup targets (#671)
  * bring glinui tokens into the control-plane dashboard (#907)
  * browsable template marketplace with category filters and search (#882)
  * build node routing preference and node onboarding clarity (#775)
  * cancel, queue and digest-pinned rollback for deploys (#731)
  * **catalog:** add batch 3 of new self-hosted templates (#925)
  * **catalog:** add batch 4 of self-hosted templates (#940)
  * **catalog:** add batch 5 of self-hosted templates (#954)
  * **catalog:** add YAML-loaded template path for contributors (#918)
  * change correlation on alerts and SLO burn-rate rules (#742)
  * clean no-root install path for levelrail-cli, like aws/gh (#889)
  * cli build detect/branches and restore history lists (backups, pitr, app-volume-backups) (#684)
  * **cli:** add global deploy freeze commands (#951)
  * **cli:** wire up orphaned containers, network shares, and topology/traffic views (#945)
  * cloud node provisioning (Hetzner, DigitalOcean) (#776)
  * command palette actions, per-app quick actions, recent items and keyboard hints (#693)
  * compact log query for agents (MCP query\_logs, CLI logs query) (#763)
  * connect apps to managed databases via API, CLI, and UI (#818)
  * connection-lost banner with backoff reconnect and 12 new service templates (#696)
  * control plane backups card on general settings (#675)
  * control plane self-backup and offline restore (snapshots, scheduler, pre-migration copy, downgrade guard, CLI, docs) (#678)
  * cross-app deployments API with summary, stream, CLI and MCP tools (#725)
  * cross-app deployments page with live feed, filters, drawer and shortcuts (#728)
  * dashboard consistency pass (settings nav, search, headers, InfoTip docs links) (#838)
  * dashboard redesign with a UI kit, overview v2, mission control home, visual apps list and grouped navigation (#715)
  * dashboard setup checklist, deploy failure summary and keyboard shortcuts help (#699)
  * dashboard waves 1-2, domains attention and backup relocation (#844)
  * deploy preview screenshots (opt-in thumbnails per deploy) (#727)
  * Docker Compose depends\_on start ordering, unsupported key validation, apps validate (#784)
  * **docs:** add amber WebGL ambient field to homepage hero (#832)
  * **docs:** give each landing feature card real proof, not a generic icon (#878)
  * **docs:** redesign footer with scroll-reveal and glass pill accents (#871)
  * **docs:** scope hero WebGL field to hero, add scroll parallax and footer stars (#834)
  * doctor check for stale control plane backups, verified pre-upgrade snapshot and downgrade guard live (#685)
  * encrypted off-box control plane backups, platform as code, alert silences and a public status page (#712)
  * enlarge Levelrail mark, fix header's placeholder logo (#868)
  * env editor .env import preview, pending diff, secret-safe export, and apps env import/export CLI (#690)
  * failed deploys and disk pressure in attention (#673)
  * fan out container metrics collection to remote node agents (#960)
  * forward raw TCP streams through the embedded ingress (#921)
  * GPU-aware scheduling, S3 build cache, pipeline graph and repo sync, fork PR guard, gateway fix (#702)
  * harden and polish the in-app AI assistant chat (#899)
  * harden PR preview environments (caps, fork approval, single comment) (#745)
  * Hugging Face preflight and model cache manager (#741)
  * import 36 Coolify-compatible catalog templates (devtools, productivity, automation) (#896)
  * **integrations:** add free self-hosted catalog entries (#914)
  * label certificate events in the audit log (#919)
  * land beta-push waves 2-8 (cloud provisioning, scheduled deploys, preview DB isolation, pipeline OIDC, node doctor checks) (#962)
  * load balancer check history, check now and per-upstream admin state (#719)
  * load balancer page redesign with live topology, suggestions, health history and export (#721)
  * local checks post PR signal, flag new comment bloat pre-commit (#862)
  * local dogfood run, experimental gate cleanup, security alert verdicts (#773)
  * lock Levelrail visual identity and wire it in (#867)
  * log API request latency with slow/critical bands (#924)
  * log controls, brand logos, status page, disk and cert guards (#663)
  * log level tags, level filter chips, expandable rows and jump to first error (#669)
  * machine-readable CLI errors and a --json coverage test (#762)
  * manage orphaned containers, not just view them (#859)
  * mark one-click template deploys as trials, add a stop-and-delete banner (#886)
  * MCP tools for attention, node status history, audit search and control plane backups (#682)
  * node\_offline alert kind (API, CLI, dashboard, docs) (#691)
  * observability settings, smarter health checks, Ask AI, test perf (#922)
  * one-click deploy for templates with no required config (#811)
  * overnight batch - docs, domain collision guard, ingress-aware placement, traffic screen, db backup fixes (#938)
  * overnight batch (cloud node provisioning, real 2-node verification, scheduled deploys, agent/MCP tooling, templates, and more) (#792)
  * overnight batch 2 (compose replicas, scheduled-deploy verification, pipeline OIDC, Redis preview isolation, node doctor checks) (#801)
  * passkey login, Microsoft OAuth, Resend email, and a redesigned login screen (#855)
  * path filters, merge queue trigger, and forge status reporting for pipelines and deploys (#744)
  * per-key daily token budget, created\_by, revoke MCP tool and reworked model keys panel (#740)
  * platform ops load (apps metrics batch, promote/clone plans, safe upgrade, move plan, honest comparison) (#768)
  * readyz endpoint, CLI parity tranche 2, MCP backup verify and failed deploys tools, e2e cleanup (#700)
  * real preview thumbnails on the deployments page and cross-app API (#737)
  * rebuild homepage sections to drop templated card-grid feel (#872)
  * redesign docs site with custom nav/sidebar and AI-readiness (#860)
  * redesign setup wizard server check into a compact summary (#821)
  * redesign the git repo picker as a searchable card grid with provider tabs (#935)
  * replace keyboard shortcuts dialog with a stage-overlay nav surface (#908)
  * report certificate renewal state (ok or stalled) in API, CLI and dashboard (#670)
  * request metrics, deploy safety, model keys, app management, import, preflight and migration runner fix (#711)
  * roll the real mark out to every remaining fallback spot (#873)
  * rootless Docker/Podman detection + pipeline OIDC federation (#785)
  * search public Docker Hub from the docker-image deploy picker (#815)
  * security follow-ups, control plane backup stale alert and verify, generated API reference (#697)
  * server-side audit log search and failed-only filter (#674)
  * settings sidebar UX, readable in-app docs, CLI --debug/pagination, 16 more catalog templates (#912)
  * show WAF, redirect, and maintenance status on the Domains page (#843)
  * sidebar visual redesign with a real expandable Projects tree (#857)
  * skeleton-first loading states across remaining detail and settings routes (#847)
  * SLO burn-rate auto-rollback with auto, dry-run, and pause-for-human modes (#810)
  * structured deploy failure object across API, CLI and MCP (#761)
  * supply chain visibility per deploy (SBOM, optional scan gate) (#743)
  * support connecting multiple GitHub orgs to the GitHub App (#958)
  * support MariaDB in the slow query log viewer (#858)
  * surface cross-node ingress unreachability instead of failing silently (#933)
  * surface IAM/registry in top nav, real skeletons on detail pages (#842)
  * tiered deploy previews with a free metadata default (#736)
  * **toast:** wire navigable actions into high-value toasts (#952)
  * unify brand to petrol-blue, redesign docs homepage, bring glinui tokens to web (#909)
  * unify wizard step chrome across setup and node wizards (#849)
  * update channel settings, scheduled check, and version-skew notice (#866)
  * wait\_for\_deploy and plan\_change for the agent layer (#766)
  * wave 3 (changelog, API explorer, cost estimator, templates, push, env diff, topology, forecast, chat approvals) (#890)
  * wave 3 agent surface (experimental gate, failure classes, failure view, agent loop e2e, launch docs) (#772)
  * **web:** add brand logos for 5 of the selfhosted4 templates (#812)
  * weekly GHCR cleanup for orphaned untagged image versions (#864)
  * wire queue, cancel and digest rollback into the deployments page (#750)
  * wire up [support@levelrail.com](mailto:support@levelrail.com) and [support@glinr.com](mailto:support@glinr.com) contacts (#827)

  **Bug Fixes**

  * \[HIGH] ssrf in http log drain sinks (#894)
  * \[HIGH] ssrf in http log drains (#688)
  * accessibility and baseline-ui pass on the beta feature wave (#887)
  * accessibility pass on status, log viewer and node events, plus component tests (#681)
  * acknowledge GitHub ping events on the git webhook route (#932)
  * add bearer-compatible /auth/whoami so auth whoami works with API tokens (#966)
  * address SonarCloud gate findings on overnight2 (#804)
  * bound agent gRPC GracefulStop so upgrades stop blocking ingress (#943)
  * bridge managed databases onto an app's own network (#937)
  * cache-bust the favicon so a redeploy actually shows the new one (#877)
  * cap API token abilities to the caller's own, add route guard test (#689)
  * **catalog:** correct pairdrop image tag, 1.19.0-ls94 does not exist (#961)
  * change correlation and SLO burn review follow-ups (#746)
  * close a status race in SSH node provisioning (#863)
  * collapse long always-visible prose into on-demand InfoTip (#903)
  * confirm dialog for deploy cancel, aria-hidden on status header icon (#895)
  * CPU percent always reads near zero on some Docker installs (#904)
  * dashboard review follow-ups (health link, fallback url, unhealthy diagnosis, cleanup card, read on open, lazy row metrics, stop polling on 404/501) (#722)
  * dashboard visual polish across metric tiles, node providers, and domains (#856)
  * deploy preview review follow-ups (opt-out, deletion, labeling races) (#733)
  * deployments page review followups (pinned redeploy, confirm copy, deep link, retry loop) (#730)
  * deployments preview follow-ups (#739)
  * deployments review follow-ups (per-event visibility, old held in needs\_attention, rollback and live precision) (#726)
  * detect actually-open dialogs, not closed-but-mounted ones (#820)
  * Docker web-build symlinks, stop forcing full CI on every main push (#911)
  * **docs:** footer giant mark position, mobile overflow, and scroll reveal (#875)
  * **docs:** keep hero stars twinkling instead of fading to black, pause offscreen (#874)
  * drop --delete-branch from dependabot auto-merge, incompatible with the merge queue (#906)
  * extend pre-commit comment-density check to web/\*.ts and \*.tsx (#910)
  * force vite to apply CJS interop to mermaid's fastdom dep (#831)
  * gate ingress routing and deploy-attempt status on real readiness (F-002) (#774)
  * GitHub App manifest redirect blocked by its own CSP (#929)
  * hugging face preflight review follow-ups (docker disk, per-GPU fit, gated ollama, file lookup, cache key, UI) (#747)
  * IaC env placeholders require an explicit allowlist and triage of open CodeQL alerts (#717)
  * IAM scoping for app routes, review findings, load balancers and pipelines overview pages, salvaged Jules tests (#708)
  * judge deleted-app approvals by IAM instead of hiding them (#732)
  * launch wave 1 (nightly, CodeQL, agent-core MCP profile, env tools, VPS smoke) (#759)
  * load balancer page review followups (safe export commands, no default probe, retry 0, serialized saves, estimated shares) (#723)
  * make update preflight checks respect the configured channel (#942)
  * mesh placement bug, safe SQLite volume backups, settings sidebar (#880)
  * node provisioning follow-up fixes from post-merge review (#779)
  * paint the hero WebGL field's first frame unconditionally (#833)
  * passkey login backup-eligible flag (supersedes #941) (#947)
  * pin the e2e PITR minio image and skip when the registry is unavailable (#698)
  * pipeline script injection, IAM and stream re-auth gaps, secret binding, gateway limits, MCP safety, container hardening, signed releases (#709)
  * point MinIO template at its still-public registry path (#913)
  * preview hardening and agent-core profile follow-ups (#771)
  * preview tiers review follow-ups (card kept on failure, public-domain Host, bounded thumbs) (#738)
  * read host memory on macOS and report unsupported platforms cleanly instead of a raw /proc error (#714)
  * recover two commits orphaned by an earlier merge-queue timing race (#865)
  * reject a deploy or rollback while one is already running (#934)
  * reject a second concurrent manual build of the same app, add deploy pipeline failure-mode tests (#692)
  * reject noncanonical upstream ids and clear admin state when a load balancer is removed (#720)
  * remove duplicate backup\_history index migration (#788)
  * remove duplicate backup\_history migration and quote colons in docs frontmatter (#790)
  * remove unresolved merge markers from main's api-reference.md (#900)
  * render README badges, add logo, restore merged README structure (#967)
  * renumber the deploy approval options migration to 0144, it collided with the status page migration at 0142 (#716)
  * replace window\.confirm with the standard delete-confirm dialog (#800)
  * resolve database env vars to mesh DNS names, not container names (#816)
  * resolve migration 0135 number collision (#787)
  * resolve non-default branch refs in manual build triggers (#930)
  * reuse existing badge variant, add inferable name defaults (#797)
  * reuse stored git-source token, merge ingress settings on set (#928)
  * review follow-ups for path filters and forge status reporting (#748)
  * scope cross-app list endpoints to apps the caller can read (#734)
  * scope failed deploys and deploy approvals lists to readable apps (#729)
  * scope lint cache per worktree, harden AI-attribution check (#793)
  * security and correctness findings from review of #711 (#713)
  * security hardening (log redaction, login timing, CSP) (#885)
  * signal agents to close their session stream on shutdown (#953)
  * silence shellcheck SC2016 false positive in install.sh test (#789)
  * sort beta releases by publish time, not list order (#931)
  * static-site CLI gaps, framework detection, webhook URL, git import (F-017/F-018/F-020/F-021/F-022/F-023) (#778)
  * stop forcing the favicon mark to look small (#876)
  * stop rebuilding Docker images on every push to main (#946)
  * stop reporting a cross-node domain app as Healthy (#948)
  * stop showing a dead container's logs as live in blue-green overlaps (#923)
  * stop showing add-tag control on every app tab (#920)
  * stop squeezing the template catalog into a narrow fullscreen column (#845)
  * supply chain gate review follow-ups (#749)
  * unbounded scoped backup paging and case-insensitive cert domain ownership (#735)

  **Performance**

  * batch environment lookups in GET /api/v1/apps (#955)
  * batch SQLite telemetry inserts using json\_each (#881)
  * batch TLS secret lookups in GET /api/v1/databases (#956)
  * cover webhook delivery pagination with a composite index (#957)
  * idle footprint benchmark, cached Docker disk usage, single container list per suspended reconcile (#695)
  * index backup\_history by started\_at (#705)
  * optimize get conditions for controllers query (#791)
  * optimize ListAppEvents and ListDeployFreezeWindows IN clauses (#893)
  * Skip weekend run (#724)
  * split internal/api test shard from 3 to 4 in fast CI lane (#795)
  * use json\_each for SQLite IN clauses (#802)

  **Documentation**

  * add a serif pull-quote accent card to the homepage (#836)
  * add a who-this-is-for page grounded in shipped features (#915)
  * add credibility content to homepage (#835)
  * add feature status page with per-area evidence and labels (#756)
  * add full template catalog page (#916)
  * add metallic headline gradient to homepage hero (#829)
  * add real mermaid architecture diagrams to 16 pages (#852)
  * apply the pending corrections from feature-status.md's audit (#917)
  * capture and embed load balancer, app overview, and network screenshots (#854)
  * clarify the dashboard port isn't always 8080 (#927)
  * embed dashboard screenshots across guides (#965)
  * explain mesh DNS resolution for cross-node database connections (#817)
  * fill network topology and connections gaps, tighten onboarding (#825)
  * fix llms.txt domain, add sitemap lastmod/priority, per-page OG image (#837)
  * lead git-integrations, templates, feature-flags, and projects pages with user tasks (#853)
  * lead with user tasks instead of implementation details (#841)
  * new Accordion/Steps/Tabs/InlineToc components, trim filler prose (#944)
  * note APP\_AGENT\_ADVERTISE\_HOST requirement for real node enrollment (#780)
  * polish homepage cohesion across tonight's content passes (#839)
  * record the docs site's amber accent as a deliberate second brand color (#879)
  * redesign homepage with bento feature grid and real visual identity (#828)
  * refresh roadmap, feature catalog, README status and CLI reference (#676)
  * remove GitHub star count from homepage trust strip (#846)
  * render mermaid diagrams, search body text, rewrite operator-facing content (#777)
  * rewrite README, getting started, installing, architecture, docs index (#964)
  * serve install.sh from levelrail.com instead of raw GitHub URL (#830)
  * strip inline implementation names from resilience, DR, and backups pages (#851)
  * sync template catalog count to 311 everywhere (#968)
</Update>

<Update label="0.2.0-beta.14" description="2026-09-23">
  **Bug Fixes**

  * resolve three-way migration 0119 collision and a test fake left stale after a parallel merge (#659)
</Update>

<Update label="0.2.0-beta.13" description="2026-09-23">
  **Features**

  * branch-scoped env var overrides for preview deploys (#632)
  * per-app integrations catalog (PostHog, Sentry, Datadog, and more) (#647)
  * pre-flight framework detection and live deploy step feed (#648)
</Update>

<Update label="0.2.0-beta.12" description="2026-09-23">
  **Features**

  * unblock Python/Django Railpack deploys (#623)

  **Bug Fixes**

  * harden Vikunja and Keycloak catalog templates toward production defaults (#622)
</Update>

<Update label="0.2.0-beta.11" description="2026-09-23">
  **Bug Fixes**

  * sort install.sh release list by created\_at, not API order (#619)
</Update>

<Update label="0.2.0-beta.10" description="2026-09-23">
  **Bug Fixes**

  * correct Vikunja and Keycloak catalog templates so they boot (#615)
</Update>

<Update label="0.2.0-beta.9" description="2026-09-23">
  **Bug Fixes**

  * bundle docs/ into the web build stage of the Docker image (#611)
</Update>

<Update label="0.2.0-beta.8" description="2026-09-23">
  **Features**

  * https, redirect, status-range and exec health probes; active checks for 71 catalog templates (#610)
  * rich release notes, release announcements, and an SEO changelog on the docs site (#607)

  **Bug Fixes**

  * correct install/compose docs and fix doctor port\_80 false fail (#591)
  * resolve high and critical CodeQL alerts (SSRF, email injection, zip slip, path injection, enrollment CA pin) (#609)
</Update>

<Update label="0.2.0-beta.7" description="2026-09-23">
  **Features**

  * setup wizard with live server, domain, git, and first app verification (#587)

  **Bug Fixes**

  * bump dependencies for security advisories (#583)
</Update>

<Update label="0.2.0-beta.6" description="2026-09-23">
  **Features**

  * actionable CTAs on System Status, reusable docs help links (#551)
  * add container restart count and build duration metrics (#560)
  * clone a whole environment's app set into a new environment (#562)
  * configurable ingress HTTP/HTTPS listen ports (#556)
  * detect and clean up orphaned named Docker volumes (#569)
  * distribute WireGuard mesh config to remote nodes over gRPC (#564)
  * doctor network, resource, and multi-firewall checks (#581)
  * egress allowlist UI on the app network page (#545)
  * empty states with prerequisite hints and template CTA (#579)
  * fleet-wide node CPU/memory/disk utilization view (#575)
  * Gitea as a fourth git provider (#553)
  * healthchecks and memory advisories for all 129 catalog templates (#576)
  * install works end to end (setup token, HTTP login, installer preflight) (#582)
  * per-app exec/shell access opt-out, defaults enabled (#542)
  * per-app outbound network allowlist (egress gateway) (#543)
  * point-in-time restore for Postgres databases (#566)
  * secret age tracking and rotation reminders (#563)
  * slow query log for Postgres/MySQL databases (#565)
  * two-person approval gate for deploys into protected environments (#567)
  * WireGuard mesh key rotation and peer status visibility (#561)

  **Bug Fixes**

  * app status rollup, compose service pruning, and group lookup by app name (#552)
  * confirm detach actions and surface missing success toasts (#546)
  * detect frozen agent processes via heartbeat frames and gRPC keepalive (#558)
  * doctor's disk space check shows raw byte counts, not human-readable (#550)
  * live resource updates fail silently when only memory is set, no swap (#548)
  * rate limit the unauthenticated git webhook receiver (#574)
  * retry transient SMTP failures for email notification channel (#559)
  * stop doctor's port 80/443 check from false-failing on its own ingress (#547)
  * stop treating unlabeled Docker networks as this instance's own (#557)
  * type errors blocking the real production build (npm run build) (#549)
  * wire Bitbucket App secrets manager, OAuth connect was permanently broken (#555)
</Update>

<Update label="0.2.0-beta.5" description="2026-09-21">
  **Features**

  * CLI coverage for backup download, database logs, node placement (#529)
  * CLI coverage for database attachment, manual build trigger, moves, resources, AI settings, git providers (#536)
  * per-service readyTimeout override for the reconciler's readiness budget (#539)

  **Bug Fixes**

  * accessibility gaps in form labeling and muted-text contrast (#528)
  * classify a pre-port-bind crash as a crash reason, not generic ReadinessFailed (#535)
  * enforce required secrets on the build-triggered deploy path, not just webhook (#541)
  * extend IAM resource scoping to 79 mutating app and database routes (#532)
  * make tag CLI commands consistently take a name, not a mix of name and ID (#533)
  * manual builds tag by resolved commit, pending image never hits Docker (#530)
  * never treat a master key read failure as no key yet (#522)
  * nudge reconciler after a build-triggered deploy completes (#534)
  * rearm crashloop auto-rollback for a second, different bad deploy (#540)
  * resolve migration number collision at 0106 (#524)
  * respect prefers-reduced-motion and avoid layout-triggering progress transition (#531)
  * scope container and network cleanup to this control plane's own instance (#537)
</Update>

<Update label="0.2.0-beta.4" description="2026-09-20">
  **Features**

  * add curated local AI model templates to the service catalog (#514)
  * add domain-level custom error pages (#511)
  * collect real host memory for the control plane's own node (#515)
  * live RAM-fit check in the AI template wizard (#516)
</Update>

<Update label="0.2.0-beta.3" description="2026-09-19">
  **Features**

  * add concurrency\_policy to scheduled tasks (#495)
  * add deploy log download endpoint, CLI command, and UI button (#504)
  * add DNS-01 provider abstraction with Route53 as a second provider (#492)
  * add domain-level redirects (#507)
  * add instance-wide backup history view (#503)
  * default published ports to a private bind address (#496)
  * per-preview env var overrides on parent app (#493)
  * per-service pull\_policy support for Docker Compose imports (#494)

  **Bug Fixes**

  * lazy-load scoped sidebars, align react-dom to react 19.3.0 (#499)
  * renumber colliding scheduled-task migration to 0101 (#506)
  * resolve migration number collision at 0098 (#505)
  * restore explicit Control cast for BackupMissingFields props (#500)
</Update>

<Update label="0.2.0-beta.2" description="2026-09-18">
  **Features**

  * add apps wait and apps deploys list CLI commands (#460)
  * add backup\_missing alert rule kind (#463)
  * add Content-Security-Policy and opt-in HSTS, fix healthz routing (#449)
  * fail fast when a container is OOM-killed during readiness wait (#451)
  * first-party GitHub Action for deploying to Levelrail from CI (#461)
  * move an app to another node with its volumes (#464)
  * resolve app secrets live from an external HashiCorp Vault instance (#465)
  * selective backup archive deletion (#462)
  * zero-config sslip.io URL for apps with no domain configured (#447)

  **Bug Fixes**

  * bound live Docker inspect calls with a timeout (#450)
  * cut new-code duplication in the move-with-volumes handler and CLI (#466)
  * poll deploy status live so a rollback's actual progress is visible (#452)
  * recognize every reconciler failure reason in the rollout stage (#458)
  * retry transient notification delivery failures (#454)
  * revert cel-go bump that broke the build (#459)
  * suppress duplicate lines when a log stream's EventSource reconnects (#453)
</Update>

<Update label="0.2.0-beta.1" description="2026-09-13">
  **Features**

  * add bulk restart for every app in a project (#442)
  * add database stop/start lifecycle, API, CLI, and dashboard (#440)
  * pause and resume an entire project (#441)
  * production-readiness batch - reconciler responsiveness, hardening, README (#445)
  * rank apps by live CPU, memory, and network usage on the dashboard (#443)

  **Bug Fixes**

  * recognize AlreadyRunning as a done rollout condition (#439)
</Update>

<Update label="0.2.0-beta" description="2026-09-12">
  **Features**

  * add CLI metrics query and live log tailing (#394)
  * add VitePress docs and landing site for GitHub Pages (#387)
  * alert/channel editing, deploy-notify+promote MCP, secrets at app-create, reconciler test gaps (#433)
  * close CLI feature-completeness gaps for settings, storage, and git apps (#396)
  * compose command/bind-mounts, self-service invites, more templates/tools/channels, e2e hardening
  * compose entrypoint, app.yaml command/bind-mounts, external registry browsing, more templates and MCP tools (#385)
  * dispatch builds to a remote build node over the agent transport (#432)
  * ephemeral database per preview environment (#397)
  * interactive exec terminal over WebSocket (#436)
  * liveness probing and automatic restart (#434)
  * node-move teardown fix, simple spread scheduling, CLI/MCP completeness batch (#395)
  * opt-in per-domain WAF and rate limiting for embedded ingress (#398)
  * remote exec and Docker networking over the agent transport (#399)
  * replace guesswork form fields with real pickers and suggestions (#437)
  * TLS for managed Postgres and Redis connections (#364)

  **Bug Fixes**

  * address containerd and docs-site dependabot alerts (#392)
  * chain release.yml to actually run after release-please tags a release (#373)
  * derive Select trigger label automatically from item children (#438)
  * make manual release.yml dispatch actually target the right tag (#375)
  * pin cel-go to v0.28.1, restoring build compatibility with caddy (#389)
  * raise Docker image build timeout and add layer caching (#378)
  * route error components against unknown, not Error (#431)
  * spread drained resources across nodes, warn on dropped depends\_on (#435)
  * stop and remove containers when a service is deleted (#381)

  **Performance Improvements**

  * build Docker images on native per-arch runners instead of QEMU (#380)
</Update>

<Update label="0.1.0" description="2026-09-09">
  **Features**

  * actionable restart-required toast for health check and resource limit saves
  * add a restart action for apps
  * add age-based backup retention alongside count-based retention (#194)
  * add backup targets settings page
  * add build.base\_directory for monorepo subdirectory builds (#139)
  * add CLI support for deploying a Docker Compose file (#109)
  * add cloudflare-tunnel CLI subcommands (#188)
  * add CPU/memory quick-stat cards to app overview (#163)
  * add dashboard home page at /
  * add developer-view raw text editor for env vars
  * add Dokploy as a migrate CLI source (#135)
  * add Dragonfly and ClickHouse as managed database engines (#145)
  * add editable port control to app overview page
  * add environment-level shared env var tier between project and app (#195)
  * add fullscreen size variant to dialog primitive
  * add fullscreen toggle to the create resource wizard
  * add GET .../secrets and POST .../secrets/\{key}/lock endpoints
  * add interactive wizard mode to apps create (#239)
  * add interactive wizard mode to databases create (#245)
  * add levelrail-cli doctor command for local preflight health checks (#265)
  * add list\_audit\_log MCP tool (#285)
  * add loading states across dashboard routes and data-fetching components (#248)
  * add MariaDB and KeyDB managed database engines (#141)
  * add MCP server, extract shared internal/apiclient package (#121)
  * add migrate caprover CLI command (#191)
  * add Network tab showing live traffic path from domain to container (#148)
  * add nodes CLI subcommands (#192)
  * add non-interactive exec endpoint for running commands in app containers
  * add organization-level shared env var tier above projects (#193)
  * add periodic OS package-update check per node (#220)
  * add projects CRUD, project env vars, and project membership to the CLI (#250)
  * add reversible per-secret lock to the store layer
  * add secret key listing and lock mutation hooks
  * add settings sub-sidebar and fix stale route tree (#222)
  * add SetValueGuarded, ListKeys, SetLocked to secrets.Manager
  * add structured issue templates and type-specific PR templates (#77)
  * add System status dashboard page (#324)
  * add test-connection action for backup targets (#307)
  * admin recovery email, general email capability, forgot-password flow
  * admin recovery email, general email capability, forgot-password flow (backend)
  * alert on repeated scheduled task failures (#290)
  * allow clickhouse as an app.yaml database engine (#186)
  * allow pinning a service's host port (#170)
  * App Clone
  * app detail screen polish - deploy history, grouped nav, build hints, convergence
  * App Overview hero+checklist, batched Apps list status
  * app volume backups (backend, API, CLI, and web UI) (#311)
  * app-detail polish - deploy columns, grouped nav, convergence badge, build-log hints
  * app-level scheduled tasks (#140)
  * apply resource limit changes to running containers live (#242)
  * apps deploy/status/logs and databases commands for the CLI
  * apps restart/rollback CLI subcommands
  * apps table + read-path for multi-service app support (stage 1) (#61)
  * attribute audit log entries to their client and add retention (#316)
  * audit log CSV export via API, dashboard, and CLI (#277)
  * audit log for write/deploy/root-tier requests (#125)
  * auto-generate and persist master key on first boot (#60)
  * auto-verify scheduled backups right after they complete (#280)
  * backup file download to browser
  * backup integrity verification (#273)
  * backup target onboarding, connect an S3-compatible bucket
  * bounded health check and opt-in ufw setup in install.sh (#323)
  * breadcrumb and hierarchical navigation for org/project/environment/app (#173)
  * browse and deploy from the curated service-template catalog (#119)
  * build Docker Compose services with build: directives (#190)
  * build pack selector and branch picker for git app creation
  * build.type: image, deploy a prebuilt registry image with no build (#124)
  * built-in container registry (#366)
  * BYO TLS certificate upload for domains (#363)
  * centralized Domains page with ACME settings and app-domain list
  * changed-line coverage gate for PRs (#350)
  * CLI and dashboard wiring for organizations and environments (#169)
  * CLI CRUD for backup targets and registry credentials (#251)
  * CLI device login flow (auth login --device) (#319)
  * CLI exec, auth login/whoami, tokens, domains, backups commands
  * CLI exec, auth, tokens, domains, and backups commands
  * CLI output formats and JMESPath query filtering (#318)
  * CLI support for app-level scheduled tasks (#144)
  * ClickHouse and Dragonfly backup/restore support (#157)
  * close git provider capability gaps (GitLab branches, GitHub webhooks, aggregated status) (#228)
  * Cloudflare Tunnel integration for outbound-only ingress (#138)
  * collect and surface node disk space as a real telemetry metric (#185)
  * connect a GitHub App for private-repo access and repo browsing
  * containers page and master key rotation UI, feature catalog doc (#358)
  * Coolify migration CLI (levelrail-cli migrate coolify) (#45)
  * copyable DNS record rows and better layout for domain check (#63)
  * curated named roles (admin/operator/viewer) over the ability model (#240)
  * curated service-template catalog and read-only browsing API (#117)
  * custom Docker labels escape hatch on spec.Service
  * dashboard empty states for alerts, deploy history, and log search (#238)
  * dashboard home page at /
  * database backups to S3-compatible storage, with restore
  * database publicly-accessible toggle + host port
  * delete pruned scheduled-backup objects from their bucket
  * deploy comparison view (#272)
  * deploy-outcome notifications
  * deterministic resource right-sizing suggestions (#279)
  * dismissible dashboard nudge to enable platform-wide alert rules (#300)
  * docker compose as a deploy target (#97)
  * draft autosave and guided defaults for create-resource forms (#260)
  * editable port control on app overview
  * empty states and inline field guidance
  * enforce frontend bundle size budget in CI (#299)
  * env var tier provenance and audit activity panel in EnvEditor (#261)
  * env/secrets developer view (frontend)
  * expand MCP server tool coverage to nodes, previews, alerts, metrics, rollback (#252)
  * explicit Stop/Start action for apps
  * extend resource right-sizing recommendations to databases (#288)
  * fan out git push webhook deploys to sibling app-group services (#172)
  * feature flags with live evaluation via existing API tokens (#262)
  * fill CLI gaps for app lifecycle, database delete, secrets, git-source (#247)
  * forgot-password flow and email settings pages (frontend)
  * forward app logs to an external HTTP or syslog sink (#137)
  * framework-aware guided deploy picker
  * full-screen presentation for the create resource wizard
  * fullscreen log viewer toggle and finish-aware auto-scroll (#226)
  * general per-actor rate limit on the authenticated API surface (#284)
  * generic OIDC SSO as a third login provider (#160)
  * GitHub Enterprise Server and Bitbucket Cloud git provider support (#221)
  * GitLab App integration (#127)
  * global notification channels settings page
  * guided domain add flow with inline TLS status
  * guided domain DNS check
  * guided first-run onboarding flow for zero-app instances (#266)
  * HTTP Basic Auth protection for domains, with helpful no-domain UX (#162)
  * IAM policies dashboard page (#322)
  * IAM-style resource-scoped policy engine (#317)
  * implement database dump mechanism for backup targets
  * implement database restore from backup
  * implement Redis backup restore
  * implement rolling deploy strategy (#171)
  * ingress settings and domains API endpoints
  * ingress\_settings store for ACME toggle and primary domain
  * land on the live build log after triggering a build (#67)
  * let operators pick between CNAME, A, and AAAA for domain setup (#189)
  * levelrail-cli version command and CHANGELOG (#301)
  * lightweight non-RBAC Projects grouping
  * list every container on a node, not just Levelrail-managed apps (#326)
  * list secret keys with reversible lock toggle in SecretsEditor
  * live per-node alert status for patch\_status, node\_disk\_space, node\_resource\_usage (#304)
  * live SSE log broadcaster and stream endpoint for app containers
  * live-tailing terminal viewer for app container logs
  * log export as a downloadable text file (#276)
  * make the New resource wizard friendlier to non-technical users (#70)
  * managed database logs and metrics (#225)
  * manual Docker disk/image/volume pruning
  * manual GitHub App connect flow, domain disclaimer on automated setup (#104)
  * master key rotation for envelope-encrypted secrets (#295)
  * MCP tools for feature flags, doctor, webhook deliveries, backup verification, deploy compare, notification deliveries (#274)
  * memory/CPU resource limits for databases
  * MongoDB as a managed database engine (#120)
  * multi-service apps stage 2 (deploy fan-out + per-app Docker networking) (#75)
  * multi-service support in apps create --interactive (#349)
  * multi-user sessions, OAuth sign-in (Google/GitHub), users management
  * multi-user sessions, OAuth sign-in, users management API
  * named credentials profiles (--profile / APP\_PROFILE) (#315)
  * named-volume support for ordinary application services (#76)
  * node CPU/memory alert rule (node\_resource\_usage) (#297)
  * node-level resource dashboard
  * non-interactive one-off exec in app containers
  * notification channel test-send delivery history and CLI/UI wiring (#267)
  * OAuth sign-in UI, OAuth and Users settings pages
  * PagerDuty and Microsoft Teams notification channels (#151)
  * paginate backup execution history (#143)
  * per-domain maintenance mode (#360)
  * per-user RBAC, extending the existing ability system to sessions (#131)
  * persisted per-app git source + multi-app GitHub webhook
  * persistent restart-required signal for env var changes (#263)
  * post GitHub PR comments and commit statuses for preview deploys (#361)
  * pre/post-deploy hook commands (#362)
  * preview environments per pull request (#246)
  * proactive alerting for certificate expiry (#283)
  * proactive domain\_health alert rule kind (#308)
  * proactive node disk space alerting (#293)
  * proactive node patch status alerting (#289)
  * promote an app's image across environments in the same project (#278)
  * protected environments with confirm-to-deploy friction gate (#282)
  * Pushover notification channel (#126)
  * Railpack auto-detection for Node.js and Go builds
  * read-only dashboard visibility for static sites
  * read-only deploy failure and crashloop diagnosis (#268)
  * real ACME issuer option in ingress config builder
  * real ACME issuer, platform primary domain, and centralized Domains page
  * real app-to-database attachment (#146)
  * real deploy history, rollback, and build-log persistence
  * real multi-marker deploy history on the metrics chart
  * real S3-compatible upload client for backup targets
  * real-time deploy stage timeline and in-progress banner (#158)
  * real-time live log streaming for app containers
  * redesign deploy detail page with metadata card and collapsible stages (#165)
  * redesign New Resource picker into a categorized, searchable modal (#110)
  * registry credentials for pulling private images (#130)
  * relabel git-source wizard card, elevate Railpack, add connect-GitHub CTA and domain field (#68)
  * replace one-off empty states with shared EmptyState component (#164)
  * replace single-admin store with multi-user users table
  * required-check CI gate, CodeQL path filtering, label taxonomy and auto-labeler (#95)
  * resolve SERVICE\_FQDN\_\* magic vars to a service's own assigned domain (#113)
  * resolve template SERVICE\_ magic vars in compose deploys (#108)
  * restore a backup into a brand-new database, alongside in-place restore (#310)
  * restore app volume backups as a new, standalone volume (#313)
  * reuse GitRepoSourcePicker in GitSourceCard (#229)
  * scheduled database backup configuration UI and CLI (#174)
  * scheduled/cron backups
  * scope new-resource picker to the caller's intent (#254)
  * secret key list/lock API + scope deploy trigger card to Overview/Deploys
  * service templates, team invites, deploy comparison, notification channels, and MCP tools
  * settings hub, global search, updates page, and ingress DNS transparency (#111)
  * shared/group env vars at the project level
  * shell completion for levelrail-cli (bash, zsh, fish) (#270)
  * splice generated secrets into composite env values (#118)
  * storage as an app resource (R2/S3)
  * surface compose restart: and networks: as non-blocking notices (#287)
  * surface deploy strategy and replicas on the app screen
  * surface Docker daemon reachability as a dashboard-wide health check (#259)
  * swap memory and CPU pinning (cpuset) resource limits (#233)
  * test registry credentials before deploy relies on them (#291)
  * thread ingress settings into the ingress reconciler
  * TOTP two-factor authentication for admin login (#114)
  * track commit sha and trigger source on deploy attempts
  * translate compose healthcheck blocks into readiness probes (#286)
  * trigger and track a real database backup
  * trigger and track database backups from the database page
  * unify git provider connect flow, fix missing git-source and build bugs (#227)
  * unify webhook-triggered and manual multi-service deploys (#241)
  * v1 install script, systemd unit, release build workflow (#44)
  * webhook delivery history and replay (#269)
  * wildcard domain support via Cloudflare DNS-01 (#152)
  * wire alert rules to global notification channels
  * wire developer-view toggle into the Environment section
  * wire Dockerfile build args through app spec, API, CLI, and UI (#155)
  * wire IAM policy resource-scoped enforcement into apps/databases routes (#321)
  * wire mesh DNS server into container creation
  * wire OAuth secrets, update recover-admin for multi-user store
  * wire prebuilt-image build type into CLI, UI, and git-source validation (#129)

  **Bug Fixes**

  * accessibility gaps in git picker, log terminal, and nav sidebars (#232)
  * accessible names for placeholder-only domain/env form inputs
  * adapt notification\_channel.go to the email.Sender interface
  * add accessible names to per-row feature flag toggle and rollout input (#275)
  * add missing --json support to three CLI clear commands (#271)
  * add TTL fallback sweep for preview environments across all git providers (#281)
  * allow railpack build type through apps create (#147)
  * async build trigger, private repo auth, and ability-gated token minting (#64)
  * avoid BuildKit MergeOp deadlock in Railpack deploy image assembly (#149)
  * clear stored secrets when disconnecting a GitHub App
  * close forgot-password rate-limit bypass, remove dead admin-email frontend code
  * close no-auth confirmation gap for KeyDB/Dragonfly, polish secrets CLI help (#303)
  * close pre-existing AppDetail test-fixture typecheck gaps (#264)
  * correct misleading test name/comment on a secrets test
  * crashloop alert's view-logs link goes to a dead same-page anchor (#218)
  * don't show a redundant inline error while the overwrite-confirm dialog is open
  * drop stale preview-envs docs claim, skip live Docker tests in short mode (#314)
  * eliminate race in TestHandleTriggerBuild\_RecordsDeployAttempt\_Succeeded (#298)
  * explain why the live logs tail is empty, don't just wait forever (#161)
  * feed persisted build logs to diagnose for build-phase failures (#292)
  * fix overflowing create-resource picker, add category filter (#255)
  * force 0.1.0 as release-please's first proposed version (#372)
  * gate one-off container exec at AbilityRoot, not AbilityDeploy
  * generate routeTree.gen.ts before web lint, trim test duplication (#116)
  * get the main frontend bundle under the 500kB warning threshold
  * guard ClickHouse restore live test against entrypoint's temp-server handoff (#312)
  * image-sourced deploys show a clear no-build-output message
  * image-sourced deploys show a clear no-build-output message instead of hanging on 'Waiting for log output...'
  * land signed-in users on the dashboard, not /apps (#66)
  * live deploy log stream stuck on zero output
  * make password-reset token single-use atomic, tidy go.mod, trim comments
  * mark orphaned deploy attempts as failed on startup (#159)
  * move showDeployTrigger's useRouterState above the early-return
  * pin cel-go back to 0.28.1, incompatible with pinned Caddy version (#134)
  * pin golangci-lint-action to a commit SHA, suppress a false-positive Sonar finding (#352)
  * point install.sh at the real first-run registration path (#325)
  * poll for post-stop/remove state on CI's daemon
  * poll for stopped state in Stop/Remove live test
  * poll for stopped state in Stop/Remove live test instead of asserting immediately
  * pre-fill and suggest commands in the exec panel (#327)
  * raise internal/api CI test timeout to fix false-failure panics on main
  * raise internal/api's CI test timeout to 25m
  * re-ensure a container's network before restarting it (#150)
  * record a deploy attempt when an app is created with a real image (#154)
  * record deploy attempts for compose deploys and image-changing updates (#256)
  * recreate a container whose Start fails even after EnsureNetwork (#153)
  * reduce SonarCloud duplication flagged after #228 merged (#231)
  * reject ACME contact emails with a display name
  * renumber cloudflare-tunnel migration to 0049, collided with 0047 (#142)
  * renumber deploy\_attempts\_commit\_source migration to 0025
  * renumber domain-basic-auth migration to 0053, collided with 0052 (#166)
  * renumber github app connection migration to 0029
  * renumber ingress\_settings migration to 0024
  * renumber migration to 0028 (0027 claimed by service\_labels)
  * renumber migration to 0030 (0029 claimed by service\_git\_sources)
  * renumber migrations past 0030\_service\_storage\_target.sql
  * renumber oidc-provider migration to 0054, collided with 0053 (#168)
  * renumber secret-lock migration to 0038 (0037 collision with PR #56)
  * renumber users migration to 0035, dedupe nullableString helper
  * require MySQL readiness probe to hold twice before proceeding
  * resolve duplicate migration version 0052 (#167)
  * resolve migration 0030 number collision (github-app vs storage-target)
  * resolve migration 0030 number collision between github-app and storage-target
  * restore docker/docker + go-connections to versions internal/build/build.go's ImageLoadWithQuiet call needs (#100)
  * restore frontend checks in the pre-commit hook (#72)
  * restore main build and resolve SonarCloud findings on multi-service apps (#99)
  * restrict git branch listing to http/https schemes
  * revert docker/docker, docker/go-connections, cel-go bumps (#98)
  * revert typescript to 6.0.x, main is broken for npm ci (#96)
  * rework forgot-password and admin-email for the multi-user model
  * satisfy golangci-lint (revive, unparam) and fix dangling doc refs
  * scope deploy trigger card to Overview and Deploys sections
  * scope MongoDB restore to drop non-system databases first (#309)
  * set explicit Content-Type on remaining webhook-derived response bodies (#249)
  * small UX polish bundle (git-source validation, stale doc comment, database status dots) (#223)
  * stop bundling zod into the eager main chunk via reset-password validateSearch (#230)
  * stop clipping browse-templates category headers in a nested scroll box (#257)
  * subscribe GitLab and Bitbucket webhooks to pull request events (#253)
  * suppress SonarCloud false-positive on the intentional unconditional backfill UPDATE (#132)
  * surface swap and CPU pinning limits on the app overview (#234)
  * TestValidateDatabaseResource's unknown-engine case used mongodb, now a real engine (#122)
  * unlock build fields after a failed build trigger in git app wizard (#224)
  * unstick finished-attempt deploy log SSE connection status
  * update Docker client call sites deprecated by the docker/docker 28.x bump (#103)
  * use localeCompare when sorting env var keys in dev view (#351)
  * verify github app installation status live against github, not just the local row (#294)
  * warn on missing secrets master key before database creation
  * widen TestCertStorage\_TouchLock\_KeepsItFresh's timing margin (#356)
  * wire Dragonfly into app.yaml spec and database URL resolution (#187)

  **Performance Improvements**

  * scan only new log lines for build-log hints
</Update>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.