Skip to content

chore: release main - #1401

Merged
thegdsks merged 1 commit into
mainfrom
release-please--branches--main
Oct 29, 2026
Merged

thegdsks merged 1 commit into
mainfrom
release-please--branches--main

Conversation

@glinr-bot

@glinr-bot glinr-bot Bot commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

🤖 I have created a release beep boop

0.8.7

0.8.7 (2026-10-29)

Features

  • agent: report a silent control plane to an off-host URL (46d7f01)
  • api: app urls report a plain-http link when the ingress routes one (a0e426f)
  • api: report deploy outcome and reason on every deploy response (cf90975)
  • api: show UDP ports and refuse conflicting compose deploys (adcbc1e)
  • api: v2 list, get and watch for apps, nodes and databases (cff5d7f)
  • api: verify GitLab and CircleCI OIDC identity tokens (1c6b267)
  • app status reports the deploy outcome and reason (aa32fc4)
  • apps deploy-compose prints the API's compose warnings (4c15047)
  • apps: private app tunnel from the CLI and dashboard (c091157)
  • apps: show template setup notes in Access details for any template app (c2c45db)
  • backup: copies verify checksums and carry a manifest, add local directory targets (18678d5)
  • backup: copy backups to a second destination with lag alert (3f4f3bf)
  • backups: local directory target form and copy manifest indicator (7e893be)
  • catalog: add Headscale and Authelia templates (77c1fb4)
  • catalog: add Radicale template (711c5bf)
  • catalog: add RSSHub template (16126b1)
  • catalog: add RustDesk server template (5350b08)
  • catalog: add setup notes to RustDesk, Mosquitto and two more templates (a7ae492)
  • catalog: expose an optional template description in the API (6a77b77)
  • ci: trust GitLab and CircleCI pipelines to deploy with OIDC (1b8afb4)
  • ci: trust GitLab and CircleCI pipelines to plan and apply stacks (cf6ec5e)
  • CLI status and wait print the server's deploy outcome reason (fe916d4)
  • cli: add provider-neutral apps ci token and trust commands (3135618)
  • cli: apps create --file sends published_ports (70d8b2e)
  • cli: decode published ports on app and compose deploy responses (a630c99)
  • cli: deploy-compose warns about ignored compose keys (0d180a1)
  • cli: explain a host port already in use (14b49fa)
  • cli: explain published port refusals with a next step (786c18d)
  • cli: explain, api-resources, rollout, config contexts and -n/-A scope flags (1068dcd)
  • cli: kubectl style get, describe, delete, edit, port-forward and cp (bf5f8ab)
  • cli: list, copy and delete volume files with apps volumes ls, cp, rm (c7c16e2)
  • cli: restart --wait exits on the real outcome, add env unset (ae4336b)
  • cli: set the agent silence URL with settings heartbeat (ecfcaee)
  • cli: show published ports as 53/udp in apps and compose output (cce31d8)
  • cli: show template setup notes in templates get (5a80fd9)
  • cli: up stops when the remote branch lacks your commit (32c8a07)
  • cli: up waits for a healthy first deploy (3574b29)
  • cli: yaml, wide, name, custom-columns and jsonpath output formats (8e26907)
  • compose: accept UDP ports and store them per service (19b4b92)
  • compose: apply mem_limit, cpus and deploy resource limits (4d98673)
  • compose: apply shm_size to /dev/shm with drift recreate (29eb24c)
  • compose: corpus test and warnings for compose keys that are ignored (e09ec38)
  • compose: health probes run from outside the container (03abded)
  • compose: record an explicit restart no or on-failure policy (48c56ad)
  • compose: refuse a UDP port another host process already binds (259aafb)
  • dashboard hero uses the server deploy outcome (f779291)
  • dashboard: give the available update its own strip (739a26a)
  • databases: per-database pooler pool size and max client connections (2b7a823)
  • databases: run an opt-in transaction pooler beside managed Postgres (3cd9cd9)
  • databases: toggle and inspect the Postgres pooler from API and CLI (1e42269)
  • deploy: snapshot linked databases before a deploy and roll back with data (d38cb36)
  • deploy: wait for CI checks before a push deploy (0fe52c8)
  • domains: guided four-step domain setup stepper (d73482e)
  • files: app files docs, template file checks and a Gatus template (feae307)
  • files: apps files ls, set and rm in the CLI (9711b29)
  • files: files API and compose inline configs (e444234)
  • files: Files section on the app Configuration tab (863de93)
  • files: inline config files written into the container before start (816518c)
  • firewall: list published UDP ports in the host firewall view (5a09739)
  • heartbeat: off-host dead-man heartbeat with settings card and docs (01facab)
  • iac: declare the Postgres connection pooler on databases (25be3cb)
  • iac: stacks declare published ports and run-to-completion restart (01ae110)
  • import: import k8s command, API route, client and docs (4784a7f)
  • jobs: run-to-completion one-shot jobs with completions and backoff (3bfb57f)
  • k8simport: map Kubernetes manifests to stack documents with a findings report (ba27ba0)
  • labels: labels on apps, databases, stacks and nodes with selector filtering (df4426b)
  • mcp: deploy_app can wait for the outcome and diagnose failures (9304dfe)
  • mcp: deploy_template installs a catalog template from an agent (0086a04)
  • mcp: failed deploy waits return a compact redacted diagnosis (c43dc05)
  • mcp: stack tools and graduation tests for secrets and lease contention (47a91cb)
  • prcmd: add /levelrail help for users with write access (cefec8f)
  • prcmd: audit every refused pull request comment command (deeaa90)
  • prcmd: ignore oversized pull request comments before parsing (d5199bc)
  • reconcile: publish UDP ports directly on the host (6ebe08a)
  • recovery: plan and run whole-server data recovery from backups (5bd4251)
  • rollout: rolling deploys replace replicas in max_surge waves (ec2020b)
  • rollout: rollout waves API and CLI, min_available blocks disruption (6407163)
  • shell: link the sidebar version to update settings (9e5d3f4)
  • show backup local root and add read-only doctor disk report (225a1f4)
  • show backup local root in the target form and document doctor disk (609a579)
  • store: log app changes beside every app write, with backfill (9b37d6c)
  • store: resource change log with versions, CAS and compaction (b720848)
  • templates: add ArchiveBox web archiver template (b7a24fb)
  • templates: add Backrest restic backup web UI (0a8e17c)
  • templates: add Crawl4AI crawler API template (0291441)
  • templates: add Open Notebook research template (da57500)
  • templates: apply guarded template upgrades with auto rollback (4584087)
  • templates: keep access details on the app page and in the wizard (847136b)
  • templates: mark smoke-tested templates as verified in API and CLI (3f503bb)
  • templates: open a template deploy page from /templates?deploy=<id> (eb3fbe3)
  • templates: plan guarded template upgrades with risk and blockers (c386d3c)
  • templates: show address, logins and notes after a template deploy (8ad6963)
  • templates: Verified badge and Verified only filter in the dashboard (8eecf51)
  • ui: confirm app Restart and Stop before running (b759fd8)
  • ui: follow Restart and Stop until the app is really back (f130bfa)
  • v0.8.9 UDP ports, partial PUT, CI OIDC providers, Access details (e163305)
  • volumes: browse, download, upload and delete single volume files (90ced49)
  • web: agent silence URL on the heartbeat card (c9777b9)
  • web: browse, upload, download and delete files on an app volume (1419e94)
  • web: choose GitHub, GitLab or CircleCI when trusting a CI pipeline (81d5352)
  • web: CI gate card on the Source tab and docs (a1ea0af)
  • web: connection pooler card on the database page (659b504)
  • web: container port step in domain stepper, stepper in first run, palette entries (bd8da31)
  • web: deploy progress shows rollout waves and replica counts (e5a852a)
  • web: edit UDP and TCP published ports in the app port editor (3690f0c)
  • web: explain published port deploy errors with a fix hint (1be4c72)
  • web: first app always shows an openable address and failure reason (6c4ffb2)
  • web: label chips with edit on app and database pages, label filter on lists (82c0dc6)
  • web: one next action on the empty dashboard (1df51cf)
  • web: open the first app by its direct address when HTTPS is off (71835d6)
  • web: pre-deploy snapshot setting and rollback with data from deploy history (a710beb)
  • web: recovery report page under settings (31391b3)
  • web: say a first deploy can take up to two minutes (7d782a6)
  • web: second destination copy status on backup settings (94eef35)
  • web: show template setup notes in the detail page and deploy dialog (d43509b)
  • web: show the approving state on deploy approvals (249cafd)
  • web: show UDP and TCP published ports on the app network panel (5a8c21b)
  • web: show UDP rows in the host firewall card and port-in-use hint (4a65c01)
  • web: stacks page gets palette search keywords and preview (548726e)
  • web: type published ports on apps and compose services (6e46267)
  • web: upgrade button with risk diff and progress on template apps (075b464)

Bug Fixes

  • agent: keep container image identity from remote nodes (9201f82)
  • agent: stop counting a never-started remote one-shot as completed (031746c)
  • api: block self-approval through the requester's own token (f728b14)
  • api: cap pull request comment refusal audit rows (880e61f)
  • api: claim a deploy approval before applying it (b454a54)
  • api: deny self-approval when a requester token is gone (dfb6ee4)
  • api: keep omitted fields on PUT /apps instead of clearing them (b121ecb)
  • api: keep PR comment refusal reasons and counts in the audit log (278e62c)
  • api: reject negative resources and oversize shm on app writes (bafdb50)
  • api: return a same-tag approval to pending when its apply never ran (6d303ed)
  • api: stop a stack reject from failing an apply in flight (0a6495e)
  • apps: accept a UDP-only app with no HTTP port on create and edit (0dd838c)
  • apps: keep a one-shot restart policy across health edits (0fef1b9)
  • apps: keep and admit published ports on app create and update (1339423)
  • apps: let a portless app edit or clear its published ports (cb08820)
  • apps: refuse published ports the control plane or a host port holds (794b28a)
  • auth: concurrent first sign-ins now trust exactly one device (cbd5788)
  • backup copies read and write local and node destinations (5cdaedc)
  • build failures no longer log a doubled build prefix (a848b33)
  • build script works in worktrees, upgrade-note help says what it does (62c8f5f)
  • catalog: Authelia keeps users.yml with argon2id or added users (3560d4c)
  • catalog: Authelia says why it stopped when hashing fails (57164b5)
  • catalog: Authelia start fails closed without a valid admin hash (487e8db)
  • catalog: drop ignored compose keys from three templates (68b3dc1)
  • catalog: keep the Authelia admin password off the command line (efeb9a2)
  • catalog: mosquitto and registry auth use the generated credentials (eb4145d)
  • catalog: Open Notebook API_URL from domain, licence notes, Authelia fallback (e9914b7)
  • catalog: RustDesk template refuses to start without a relay host (9d2145b)
  • ci: adding a CI trust needs deploy, custom issuers need root (e3ee537)
  • ci: CI token exchanges are audited and old tokens refused (1de7eeb)
  • ci: docs-only changes no longer trigger Go tests by name suffix (d712dee)
  • ci: GitLab trusts require protected refs and environments (0ae4d3c)
  • ci: trusts on the same path no longer collide across providers (b6b0148)
  • CLI console frees the run slot before its exit frame (acc3a5e)
  • cli dispatch and usage text cover copy, rehydrate and upgrade flags (efcba91)
  • cli: deploy cert wait ends at its window and applies to static deploys (22acd88)
  • cli: deploy says when the new URL's certificate is still being issued (f18d730)
  • cli: green the CLI tests after the kubectl verbs and new commands (f73d42a)
  • cli: harden up push check git calls and allowlist it (3e5b804)
  • cli: import config refuses and quotes unsafe names in printed commands (757f7fe)
  • cli: list heartbeat and upgrade-plan in shell completion (ce412ae)
  • cli: up's push check ignores repo git proxy and credential hooks (9224628)
  • close the self-approval gap and harden first run, import and compose (f5a826b)
  • compose: cap shm_size by default and count it against memory quota (40468c4)
  • compose: enforce project and team quotas on compose deploys (59e2ea5)
  • compose: keep the 2 GiB shm cap when its env value is invalid (88caa56)
  • compose: reject NaN, overflowing and zero-rounding resource limits (9955eb5)
  • compose: warn on and ignore a malformed on-failure:N restart value (556e436)
  • console: mask secrets and strip escapes in console output (2478ce0)
  • console: run only allowlisted API-only CLI commands (eddeee2)
  • console: start the CLI in its own session with no extra fds (6619607)
  • database: replace the pooler when the database password rotates (b6b15cb)
  • deploy-urls: retained deploy clones no longer bind published ports (9bb8dd9)
  • deploy: app.yaml deploys refuse host ports the API would refuse (9914522)
  • deploy: app.yaml host_port pins get the API's holder checks (4870709)
  • deploy: keep canaries, previews and revives off published host ports (b88325a)
  • deploy: report a completed one-shot service as rolled out (6d22f18)
  • deploy: report a deploy stuck in a crash loop as failed (173683f)
  • deploy: report a one-shot past its completion budget as failed (2abdcab)
  • deploy: require-mode snapshots need a target and a failed snapshot no longer asks to proceed (ebb00c5)
  • deploy: skip or refuse pre-deploy snapshots when the estimated size is over the cap before backing up (6458b96)
  • deploywatch: ignore a one-shot service that exited 0 (e38401a)
  • domains: refuse a domain on an app with no HTTP port (8e72c92)
  • exec: wait for a restarting app instead of failing at once (e69fe4a)
  • green CI lint, fan-in budgets and the editor exec allowlist (8c0d67f)
  • import: import config emits a file apps create accepts (b6bb144)
  • installer token gate no longer relies on a guessed cloud-init variable (c038d39)
  • jobs: name the group's services when jobs run targets an app group (f799561)
  • label at top level in the command tree, pooler flags in help, refresh schema and doctor count (6cef254)
  • mcp: app tool output no longer fails on a null env (715ed1a)
  • mcp: deploy_app wait follows the deploy it started (ca040c9)
  • ports: close published port holes and dial the tcp binding (22226c1)
  • ports: proxy and probes dial the service port, not the first binding (8cad70d)
  • ports: reserve the mesh's configured WireGuard port (ca37316)
  • publish-lock: publishing a held build rechecks its host ports (5406ac6)
  • PUT app counts Unicode-folded keys as sent (0a24bb0)
  • quota: count /dev/shm of apps without a memory limit in usage (e04797a)
  • reconcile: exited port-less service no longer reports Ready (4644fe1)
  • reconcile: honor depends_on service_completed_successfully (b853c41)
  • reconcile: judge a completed dependency by its current release only (ed55ad6)
  • reconcile: keep a worker crash restart from failing its deploy (f32f6ae)
  • reconcile: let a long one-shot finish instead of killing it (47ae3c7)
  • reconcile: stop counting a never-started one-shot as completed (1ea59f5)
  • reconcile: stop rerunning a one-shot service that exited 0 (b1a9356)
  • restore, verify, download and delete work on local and node backup targets (02656cd)
  • spec: keep run-to-completion on app.yaml and compose build deploys (cc46fbd)
  • stacks: accept a UDP-only app with no HTTP port (7eb7531)
  • trim MCP tool descriptions back under the token budget and register stacks toolset (b637ab0)
  • ui: restart no longer reports a false failure while recovering (7877ba7)
  • unset GIT_* env in pre-push so Go tests see a clean git context (ecfaa0f)
  • upgrade help lists --dry-run, shutdown test tolerates config pushes (2bc5eff)
  • upgrade: dry-run shows schema move and rollback, emergency-token prints the API URL (57d8253)
  • v2 routes visible to route guards, one-shot job ref authz, rehydrate 500 handling (ab05fb5)
  • volumes: require read:sensitive for file edits and audit real outcomes (10befe3)
  • web: 44px tap targets for first-run secondary links on phones (3f0451a)
  • web: 44px tap targets on phones for first-app and confirm buttons (8fefeeb)
  • web: compact first-run path cards on narrow screens (d05350c)
  • web: firewall rows keep bind and state together, loopback reads Local only (fcd570e)
  • web: first app live state states its status once (acf2f0c)
  • web: focus Cancel first and make Stop confirm solid destructive (ea78aba)
  • web: hide the published ports hint while its error shows (f4184fb)
  • web: keep a link's hash across the sign-in redirect (4fe904f)
  • web: keep the assistant button clear of page actions on phones (4d41269)
  • web: live title and real scheme on the first-app screen (2fbb728)
  • web: map authelia and rsshub marks, list five known-missing logos (0c4be3f)
  • web: map RustDesk mark and list Radicale as known-missing (c4954e5)
  • web: mount rollback-with-data dialog on demand, list gatus as missing logo (b70b5df)
  • web: one compact HTTPS prompt in the first-app flow (4be8a97)
  • web: one compact HTTPS prompt on first run (ee87213)
  • web: one HTTPS prompt on the first-app card and no no-op shortcut (d1557e6)
  • web: only link https release notes from the update strip (1bd0acd)
  • web: published port chips carry the container mapping inside (7b62acd)
  • web: show a crash-looping first deploy as failed (9903725)
  • web: show one open action for a live first app (f96bbc5)
  • web: show server deploy outcome on deploy history rows (68cd270)
  • web: sign-in keeps deploy links and the first-run setup token (6b672cf)
  • web: trust the server deploy outcome for crash-looping apps (e7a27a1)
  • web: wrap long notes and tokens in the template result dialog (387c9f9)

Performance

  • api: take the host port lock only for deploys that claim one (716a251)
  • let parallel agents lint at once with a shared cache and bounded lock wait (04af603)
  • mcp: slim compact tool schemas, free about 1.5k tokens (1855bea)

Documentation

  • add deploy and debug from an AI agent flows to MCP recipes (eed5305)
  • adr: plan UDP ports, then gated NET_ADMIN and sysctls (3bc187c)
  • adr: propose promote from pull request comments (e17647e)
  • adr: require resolved-human self-approval check for PR promote (40287c0)
  • api: regenerate the API reference with rehydrate routes (0e203f8)
  • api: regenerate the API reference with v2 and tunnel routes (58e0c6c)
  • backup: document copy verification, manifest sidecar and local targets (f55b59a)
  • catalog: mark seven new templates verified (db53b46)
  • ci: deploy from GitLab CI and CircleCI with OIDC, no stored token (856c015)
  • ci: GitLab safe defaults, audit entries and downgrading (57ccb0c)
  • ci: tested pipeline files for GitHub OIDC, GitLab and CircleCI (d625495)
  • compose: document run-to-completion restart and completed depends_on (e399a51)
  • compose: document shm_size and platform hardening keys (58e2eca)
  • compose: document UDP published ports and what is not yet supported (e93a5ad)
  • compose: fix UDP ports page link and DNS example (f519c7e)
  • console: add CLI console page and list both beta features in status (523e8c1)
  • console: document the allowlist, drift tests and per-mode limits (836d37e)
  • databases: explain the Postgres pooler, pooled and direct URLs (76a7350)
  • deploy_template tool, PUT keep semantics and template Access details (f2db211)
  • deploy: add the pre-deploy database snapshot guide (86bef24)
  • deploy: describe rolling back with data from the dashboard (cf8a043)
  • describe the template description field for authors (6cfeb36)
  • explain previous-release hold and rollback pins (b92be07)
  • explain retained deploy containers and when they stop (5780b0e)
  • kubectl style CLI verb mapping (3e68761)
  • labels: labels and namespaces guide (c40d4f3)
  • note that chat approvals trust the channel, not a person (0bde83b)
  • recovery: whole-server recovery guide (3fbb5ef)
  • refresh the MCP tool surface numbers (55fb6ad)
  • self-hosted guide no longer says autoscaling is missing (aee69c4)
  • setup: show the setup link with the token in the hash (8c01eeb)
  • stacks: published ports and restart in app documents (c5acde9)
  • udp: examples verified by running them (54dcf05)
  • volumes: add the volume files guide and env limits (cb16fbe)

This PR was generated with Release Please. See documentation.

RetriggerView in GreptileConfidence Score: 5/5

This PR appears safe to merge.

Summary

Prepares release 0.8.7.

  • The release record now identifies Levelrail as version 0.8.7.

No actionable issues found. This PR changes release metadata and notes, not application code.

Reviews (3) · Last reviewed commit: "chore: release main" · Reviewed by Greptile

@coderabbitai

coderabbitai Bot commented Oct 28, 2026 •

Copy link
Copy Markdown

Important

Review skipped

Bot user detected.

To trigger a single review, invoke the @coderabbitai review command.

Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: bded2ff0-050d-4614-bb51-7f3395c715a3

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@github-actions github-actions Bot added area/ci .github/, scripts/ type/docs Documentation only size/m 50-199 lines changed labels Oct 28, 2026
@glinr-bot

glinr-bot Bot commented Oct 28, 2026

Copy link
Copy Markdown
Contributor Author

glinr-bot

Rule release-pr matched. All gates of rule "release-pr" pass.

Gate Result Detail
not a draft pass
from this repository, not a fork pass
touches no protected path pass
has no blocking label pass
author is glinr-bot[bot] pass glinr-bot[bot]
title starts with "chore: release" pass

Shadow mode: would only comment. Nothing was changed.

greptile-apps[bot]
greptile-apps Bot previously approved these changes Oct 28, 2026
@glinr-bot
glinr-bot Bot force-pushed the release-please--branches--main branch from bdfe446 to 4faf605 Compare October 28, 2026 20:45
@greptile-apps
greptile-apps Bot dismissed their stale review October 28, 2026 20:45

Dismissed because a newer commit was pushed; Greptile will re-review the current head.

@github-actions github-actions Bot added size/l 200-499 lines changed and removed size/m 50-199 lines changed labels Oct 28, 2026
greptile-apps[bot]
greptile-apps Bot previously approved these changes Oct 28, 2026
@glinr-bot
glinr-bot Bot force-pushed the release-please--branches--main branch from 4faf605 to fa5c498 Compare October 29, 2026 06:19
@greptile-apps
greptile-apps Bot dismissed their stale review October 29, 2026 06:19

Dismissed because a newer commit was pushed; Greptile will re-review the current head.

@github-actions github-actions Bot removed the size/l 200-499 lines changed label Oct 29, 2026
@thegdsks thegdsks self-assigned this Oct 29, 2026
@thegdsks
thegdsks merged commit 9d8d46e into main Oct 29, 2026
24 checks passed
@thegdsks
thegdsks deleted the release-please--branches--main branch October 29, 2026 14:58
@glinr-bot

glinr-bot Bot commented Oct 29, 2026

Copy link
Copy Markdown
Contributor Author

🤖 Created releases:

🌻

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/ci .github/, scripts/ autorelease: tagged type/docs Documentation only

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant