Skip to main content
2026-10-12
Bug Fixes
  • add the frontmatter description the docs build requires to design tokens (#1180)
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)
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
2026-10-11
Bug Fixes
  • dockerguard builds on Windows, and CI cross-compiles the CLI (#1157)
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)
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)
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)
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)
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 and 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)
2026-09-23
Bug Fixes
  • resolve three-way migration 0119 collision and a test fake left stale after a parallel merge (#659)
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)
2026-09-23
Features
  • unblock Python/Django Railpack deploys (#623)
Bug Fixes
  • harden Vikunja and Keycloak catalog templates toward production defaults (#622)
2026-09-23
Bug Fixes
  • sort install.sh release list by created_at, not API order (#619)
2026-09-23
Bug Fixes
  • correct Vikunja and Keycloak catalog templates so they boot (#615)
2026-09-23
Bug Fixes
  • bundle docs/ into the web build stage of the Docker image (#611)
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)
2026-09-23
Features
  • setup wizard with live server, domain, git, and first app verification (#587)
Bug Fixes
  • bump dependencies for security advisories (#583)
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)
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)
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)
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)
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)
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)
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)
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
Last modified on October 12, 2026