What's Changed
- ci: bump e2e upgrade base and auto-track it by @adriankabala in loft-sh/loft-enterprise#7419
- fix: Fix 404 errors being logged on the details page of a stopped kub… by @PRTTMPRPHT in loft-sh/loft-enterprise#7446
- ci: use per-base pr branch for go-licenses report by @Piotr1215 in loft-sh/loft-enterprise#7389
- fix: Remove some dead code by @PRTTMPRPHT in loft-sh/loft-enterprise#7420
- feat: Add loading spinner to pod logs when the pod is still starting by @PRTTMPRPHT in loft-sh/loft-enterprise#7424
- fix: Ensure auto-generated access rule is disabled in tenant cluster … by @PRTTMPRPHT in loft-sh/loft-enterprise#7422
- fix(metrics): de-duplicate identical series when merging metric sources by @Piotr1215 in loft-sh/loft-enterprise#7457
- fix(e2e): guarantee durable on-failure diagnostics for standalone and auto-nodes specs by @roehrijn in loft-sh/loft-enterprise#7431
- feat(ui) - node profile table actions by @andyluak in loft-sh/loft-enterprise#7462
- fix(observability): parameterize the fleet app deploy namespace by @johannesfrey in loft-sh/loft-enterprise#7456
- fix(ci): resolve prerelease platform base by semver, not publish date by @sowmyav27 in loft-sh/loft-enterprise#7461
- fix(e2e): ensure argocd templates exist only by @seanschneeweiss in loft-sh/loft-enterprise#7464
- fix(accesskeys): trust owner reference on transient cache miss by @roehrijn in loft-sh/loft-enterprise#7429
- fix(ui): update default observability connector namespace to vcluster-platform by @johannesfrey in loft-sh/loft-enterprise#7477
- ci(backport): bump backport pin and wire linear-token by @Piotr1215 in loft-sh/loft-enterprise#7376
- fix(observability): synthesize grafana sso email fallback for emailless admin by @johannesfrey in loft-sh/loft-enterprise#7480
- test(e2e): harden A11/A12 connected snapshot/restore against readiness flake by @roehrijn in loft-sh/loft-enterprise#7433
- fix(observability): meaningful error message for missing observability by @seanschneeweiss in loft-sh/loft-enterprise#7481
- fix(argocd): avoid name collisions when multiples platforms share an ArgoCD backend and have identically by @flomedja in loft-sh/loft-enterprise#7152
- build(deps): drop redundant k8s.io/client-go fork replace by @lizardruss in loft-sh/loft-enterprise#7474
- fix(observability): stop setting empty MANAGEMENT_SERVER_NAME on gateway by @johannesfrey in loft-sh/loft-enterprise#7493
- fix(observability): disable prometheus config-reload sidecar incompatible with mtls by @johannesfrey in loft-sh/loft-enterprise#7489
- fix(observability): make FIA listen address scrapable by OTEL by @seanschneeweiss in loft-sh/loft-enterprise#7498
- fix(templates): handle float64 number parameter values in FillParameters by @andyluak in loft-sh/loft-enterprise#7423
- fix(ui): correct node profiles navigation and allow-all selection by @andyluak in loft-sh/loft-enterprise#7473
- fix(ui): private node profiles use 0.36 types and correct placement by @andyluak in loft-sh/loft-enterprise#7510
- fix(observability): fall back to 0 for empty quarantined nodes stat by @seanschneeweiss in loft-sh/loft-enterprise#7476
- CTO-156 vMetal UX improvements by @squ94wk in loft-sh/loft-enterprise#7511
- fix(observability): consistent filtering for GPU dashboard by @seanschneeweiss in loft-sh/loft-enterprise#7478
- fix: Fix observability tab visibility to check for available connector by @PRTTMPRPHT in loft-sh/loft-enterprise#7486
- refactor: introduce AppInstances and remove Task + HelmRelease API by @FabianKramm in loft-sh/loft-enterprise#7448
- chore: Add UI prerequisites to README.md by @PRTTMPRPHT in loft-sh/loft-enterprise#7522
- fix(observability): normalize trailing slash in grafana platformHost by @johannesfrey in loft-sh/loft-enterprise#7524
- fix: Add clear button for certificate secret names in observability form by @PRTTMPRPHT in loft-sh/loft-enterprise#7516
- fix(argocd): fix nvsentinel default image version and Int parameter templating by @flomedja in loft-sh/loft-enterprise#7499
- fix(observability): otlp endpoint param required, improve description by @seanschneeweiss in loft-sh/loft-enterprise#7526
- fix(argocd): Persist argoCD connection to avoid creating new connection at each request by @flomedja in loft-sh/loft-enterprise#7523
- chore(observability): remove unused node-exporter, kube-state-metrics by @seanschneeweiss in loft-sh/loft-enterprise#7532
- chore(cve-fixes): bump vulnerable deps in otel, opentofu, kube, opencost, prometheus, and kine by @neogopher in loft-sh/loft-enterprise#7512
- fix(observability): exclude control plane cluster from fleet tenant panels by @johannesfrey in loft-sh/loft-enterprise#7533
- fix(e2e): use explicit name for central-hostpath-mapper appinstance by @adriankabala in loft-sh/loft-enterprise#7544
- test(e2e): flake-proof hostpath-mapper path check and metrics access-key setup by @sowmyav27 in loft-sh/loft-enterprise#7450
- test(e2e): node profile e2e tests by @sowmyav27 in loft-sh/loft-enterprise#7444
- fix(argocd): enable DCGM XID and NVLink error metrics by @seanschneeweiss in loft-sh/loft-enterprise#7552
- fix: Fix some minor display issues in cluster details view by @PRTTMPRPHT in loft-sh/loft-enterprise#7554
- fix(sleepmode): let onboarded tenant clusters auto-sleep despite argocd polling by @flomedja in loft-sh/loft-enterprise#7539
- fix: Fix infinite loading state of nodes table for pending tenant clu… by @PRTTMPRPHT in loft-sh/loft-enterprise#7565
- ci(code-freeze): authenticate freeze/unfreeze with org admin token by @Piotr1215 in loft-sh/loft-enterprise#7564
- fix(editor): stop flagging valid Helm-templated values as YAML errors by @andyluak in loft-sh/loft-enterprise#7561
- ci(e2e): certify pr ginkgo suite on release tags by @sowmyav27 in loft-sh/loft-enterprise#7290
- ci: bound pre-release base version below the upgrade target by @anvesh-loft in loft-sh/loft-enterprise#7571
- ci: grant pull-requests: write to trigger_e2e_ginkgo caller by @sowmyav27 in loft-sh/loft-enterprise#7572
- refactor(e2e): use shared specpriority from e2e-framework by @roehrijn in loft-sh/loft-enterprise#7549
- licenses: update loft licenses by @zerbitx in loft-sh/loft-enterprise#7442
- CTO-151 Metal3 Netris integration by @squ94wk in loft-sh/loft-enterprise#7569
- ci: fix tilde expansion breaking base resolver for pre-release targets by @anvesh-loft in loft-sh/loft-enterprise#7583
- feat(ui) - tenant graph view by @andyluak in loft-sh/loft-enterprise#7502
- Bump metal3 chart default version by @squ94wk in loft-sh/loft-enterprise#7600
- fix: ts ipam overflowing by @FabianKramm in loft-sh/loft-enterprise#7603
- fix(api): allow schemeless host in get kubeconfig request by @r0bnet in loft-sh/loft-enterprise#7484
- Fix: delete dead lock for NodeClaim with non-existent NodeEnvironment by @squ94wk in loft-sh/loft-enterprise#7608
- fix(backport): reference existing LINEAR_TOKEN secret so sub-issue linking runs by @Piotr1215 in loft-sh/loft-enterprise#7491
- Tidy up cluster table links column by @vaidaslamanauskas in loft-sh/loft-enterprise#7277
- Fix up some details on breadcrumb & upgrade bar by @vaidaslamanauskas in loft-sh/loft-enterprise#7233
- feat: vcluster device operator + kubevirt refactor by @FabianKramm in loft-sh/loft-enterprise#7582
- fix(observability): dont nest platform in grafana iframe by @seanschneeweiss in loft-sh/loft-enterprise#7577
- test(node-profiles): preload k8s node bundle to remove GH-download flake by @sowmyav27 in loft-sh/loft-enterprise#7609
- fix: device operator & app instance improvements by @FabianKramm in loft-sh/loft-enterprise#7620
- Fix: Netris TOCTOU race by @squ94wk in loft-sh/loft-enterprise#7624
- fix: Fix permissions for tenant cluster instance actions by @PRTTMPRPHT in loft-sh/loft-enterprise#7551
- fix: Fix permission checks in get started section of status page by @PRTTMPRPHT in loft-sh/loft-enterprise#7555
- fix: Fix visibility of sidebar actions to treat sidebar focus correctly by @PRTTMPRPHT in loft-sh/loft-enterprise#7612
- fix: Fix missing active state on more dropdown in the sidebar by @PRTTMPRPHT in loft-sh/loft-enterprise#7614
- fix: app instance improvements by @FabianKramm in loft-sh/loft-enterprise#7626
- ci: remove repository_dispatch trigger from license-staging workflow by @Piotr1215 in loft-sh/loft-enterprise#7602
- fix: snapshot stuck in progress by @jjaferson in loft-sh/loft-enterprise#7436
- fix(tailscale): process networkpeer deletes delivered as tombstones by @rlmcpherson in loft-sh/loft-enterprise#7616
- fix(loftrouter): bound reconnect rate so an unhealthy instance can't storm a router by @Piotr1215 in loft-sh/loft-enterprise#7556
- App instances by @FabianKramm in loft-sh/loft-enterprise#7632
- test(e2e): scheduled snapshot retention, store verification, and restore round-trip by @rlmcpherson in loft-sh/loft-enterprise#7623
- feat: add namespace strategy by @FabianKramm in loft-sh/loft-enterprise#7643
- test(e2e): cover app instance release name, owner access, immutability and log RBAC by @sowmyav27 in loft-sh/loft-enterprise#7641
- chore(observability): request, limits for collector, grafana, prometheus by @seanschneeweiss in loft-sh/loft-enterprise#7617
- feat(api): observability integration, connector, endpoint secret by @seanschneeweiss in loft-sh/loft-enterprise#7633
- fix(e2e): fix helm client ingress-nginx cleanup flake (ENGQA-1487) by @sowmyav27 in loft-sh/loft-enterprise#7658
- fix: show real versions and the failing stage in pre-release slack alerts by @anvesh-loft in loft-sh/loft-enterprise#7659
- fix: app instances fixes + improvements by @FabianKramm in loft-sh/loft-enterprise#7651
- feat: Change navigation to group some pages and free space in the sid… by @PRTTMPRPHT in loft-sh/loft-enterprise#7645
- feat: Move cron tooltip into description for snapshots by @PRTTMPRPHT in loft-sh/loft-enterprise#7661
- chore: Remove some unused files by @PRTTMPRPHT in loft-sh/loft-enterprise#7657
- fix: Replace deprecrated query lib call in CreateCustomClientDialog by @PRTTMPRPHT in loft-sh/loft-enterprise#7656
- feat: Change all "CRD" labels to read "CR" by @PRTTMPRPHT in loft-sh/loft-enterprise#7655
- fix: Fix trial indicator appearance when primary color is the same as… by @PRTTMPRPHT in loft-sh/loft-enterprise#7652
- fix: Fix app readme taking up too much horizontal space by @PRTTMPRPHT in loft-sh/loft-enterprise#7650
- fix: Fixed a redirect loop when platform is unhealthy by @PRTTMPRPHT in loft-sh/loft-enterprise#7648
- fix: Fix capitalization in "Show YAML" items by @PRTTMPRPHT in loft-sh/loft-enterprise#7646
- fix: Add validation to namespace field in global secrets by @PRTTMPRPHT in loft-sh/loft-enterprise#7663
- fix: send one pre-release report with a section per suite by @anvesh-loft in loft-sh/loft-enterprise#7670
- fix(renovate): group vitest and @vitest/browser updates by @vcauesantos in loft-sh/loft-enterprise#7666
- fix(toggles): make clicking toggle labels toggle the control by @andyluak in loft-sh/loft-enterprise#7562
- fix: Add missing validation errors to quick starts by @PRTTMPRPHT in loft-sh/loft-enterprise#7665
- ci: grant checks and statuses read to the auto-approve caller by @sydorovdmytro in loft-sh/loft-enterprise#7675
- feat(ui): warn when node profiles require a vCluster upgrade by @andyluak in loft-sh/loft-enterprise#7677
- fix: Ensure audit logging pages are properly feature gated by @PRTTMPRPHT in loft-sh/loft-enterprise#7668
- fix: Remove duplicate backing store selection in cluster creation wizard by @PRTTMPRPHT in loft-sh/loft-enterprise#7669
- fix: Fix refetch behavior of clusters list by @PRTTMPRPHT in loft-sh/loft-enterprise#7676
- test(e2e): add Azure Blob scheduled-snapshot variant to auto_snapshots by @adriankabala in loft-sh/loft-enterprise#7297
- fix: Fix some minor issues with copy in sleep mode section by @PRTTMPRPHT in loft-sh/loft-enterprise#7684
- fix: check version order before installing anything by @anvesh-loft in loft-sh/loft-enterprise#7660
- test(e2e): test cases for fleet observability by @seanschneeweiss in loft-sh/loft-enterprise#7630
- chore: bump default vcluster version to 0.36.1 by @deniseschannon in loft-sh/loft-enterprise#7696
- adds: support for s3 encryption by @jjaferson in loft-sh/loft-enterprise#7629
- Updates chart info and logo to match vcluster by @cbron in loft-sh/loft-enterprise#6892
- feat(ci): select e2e labels when creating prs by @adriankabala in loft-sh/loft-enterprise#7704
- feat(pkg/accesskeys): create metrics-writer access key by @seanschneeweiss in loft-sh/loft-enterprise#7634
- test(e2e): remove flaky phase assertion in argocd re-enable by @seanschneeweiss in loft-sh/loft-enterprise#7647
- chore(deps): move etcd module set back to v3.6.14 by @johannesfrey in loft-sh/loft-enterprise#7706
- feat(stack): add storage api types for StackInstance and StackTemplate by @flomedja in loft-sh/loft-enterprise#7713
- Make Multus DaemonSet resources configurable by @squ94wk in loft-sh/loft-enterprise#7721
- Handle intermittent node provider errors gracefully by @squ94wk in loft-sh/loft-enterprise#7718
- chore: Upgrade to TypeScript 7, vite 7, vitest 4 by @PRTTMPRPHT in loft-sh/loft-enterprise#7619
- fix(apiserver): stop applying caller access-key scope to reviewed sar subjects by @johannesfrey in loft-sh/loft-enterprise#7728
- chore(deps): bump docker/login-action from 3 to 4 by @dependabot[bot] in loft-sh/loft-enterprise#6867
- feat: auto snapshots for standalone - credentials endpoint by @mfranczy in loft-sh/loft-enterprise#7712
- ci: remove dev-vcluster slack notifications by @sydorovdmytro in loft-sh/loft-enterprise#7745
- fix: retention policy counting scheduled snapshots by @jjaferson in loft-sh/loft-enterprise#7642
- test(e2e): cover a platform token on a tenant cluster's direct endpoint by @adriankabala in loft-sh/loft-enterprise#7744
- chore(renovate): sync backport base branches to active releases by @loft-bot in loft-sh/loft-enterprise#7560
- test(e2e): fix flaky specs from nightly 30136058233 by @sowmyav27 in loft-sh/loft-enterprise#7625
- chore: Update DefaultVClusterVersion to 0.37.0-alpha.1 by @deniseschannon in loft-sh/loft-enterprise#7762
- feat(tenant): add the tenant management resource by @lizardruss in loft-sh/loft-enterprise#7671
- feat: auto snapshots for standalone - snapshots reconcilation by @mfranczy in loft-sh/loft-enterprise#7715
- add e2e test coverage for node profiles by @neogopher in loft-sh/loft-enterprise#7653
- feat(stack): add management API and validation for StackInstance and StackTemplate by @flomedja in loft-sh/loft-enterprise#7716
- refactor: join command retry + template by @FabianKramm in loft-sh/loft-enterprise#7674
- fix: delete failed initial release on retry by @FabianKramm in loft-sh/loft-enterprise#7772
- Support macvtap binding for KubeVirt Multus interface by @squ94wk in loft-sh/loft-enterprise#7778
- ci: rerun only failed e2e specs in the PR and nightly suites by @adriankabala in loft-sh/loft-enterprise#7775
- fix(deps): update dependency js-cookie to v3.0.7 [security] (main) by @renovate[bot] in loft-sh/loft-enterprise#7397
- fix(deps): update dependency dompurify to v3.4.12 [security] (main) by @renovate[bot] in loft-sh/loft-enterprise#7409
- fix(ui): drop snapshots beta badge, document OCI path, make volume snapshots warning actionable by @andyluak in loft-sh/loft-enterprise#7758
- fix: Increase size of hitbox for checkboxes in tables by @PRTTMPRPHT in loft-sh/loft-enterprise#7691
- Add vcluster.com/pause-deploy annotation for node providers by @squ94wk in loft-sh/loft-enterprise#7782
- fix(ui): hide tenancy graph when its inputs cannot be resolved by @andyluak in loft-sh/loft-enterprise#7784
- feat(ui): configure auto snapshots for standalone clusters by @mfranczy in loft-sh/loft-enterprise#7737
- fix: Fix a couple dom structure issues by @PRTTMPRPHT in loft-sh/loft-enterprise#7689
- fix: Fix SheetFooter positioning by @PRTTMPRPHT in loft-sh/loft-enterprise#7690
- fix: Remove dead code in query client by @PRTTMPRPHT in loft-sh/loft-enterprise#7680
- feat: Implement some defaults that should lessen API request pressure by @PRTTMPRPHT in loft-sh/loft-enterprise#7636
- feat(ci): auto-merge renovate branch sync prs by @Piotr1215 in loft-sh/loft-enterprise#7791
- fix: Make sure nodes table is taking status values into account by @PRTTMPRPHT in loft-sh/loft-enterprise#7780
- feat(metering): count non-NVIDIA accelerators in GPU usage by @nprokopic in loft-sh/loft-enterprise#7252
- Add IAM to audit logging by @rmweir in loft-sh/loft-enterprise#7453
- feat(logging): enable file logging for platform by @neogopher in loft-sh/loft-enterprise#7781
- chore(deps): update module github.com/google/cel-go to v0.29.0 [security] (main) by @renovate[bot] in loft-sh/loft-enterprise#7731
- fix(deps): update module oras.land/oras-go/v2 to v2.6.2 [security] (main) by @renovate[bot] in loft-sh/loft-enterprise#7699
- feat(ui) - graph fixes by @andyluak in loft-sh/loft-enterprise#7787
- feat: Add additional filters to bare metal hosts by @PRTTMPRPHT in loft-sh/loft-enterprise#7635
- feat(ui): add log search filtering, match highlights and result counter by @andyluak in loft-sh/loft-enterprise#7566
- feat(tenant): add tenants/config subresource for per-tenant configuration by @lizardruss in loft-sh/loft-enterprise#7681
- feat: Align navigation items between control plane cluster details an… by @PRTTMPRPHT in loft-sh/loft-enterprise#7664
- ci: accept repository_dispatch for platform pre-release checks by @anvesh-loft in loft-sh/loft-enterprise#7789
- fix: debug shell - always show drop down by @mfranczy in loft-sh/loft-enterprise#7391
- kube-ovn NetworkEnvironment integration by @squ94wk in loft-sh/loft-enterprise#7794
- feat(stack): add the stack controller for ArgoCD tasks by @flomedja in loft-sh/loft-enterprise#7723
- feat: Add basic views and interactions for multi tenancy by @PRTTMPRPHT in loft-sh/loft-enterprise#7795
- fix(ui): patch Argo CD applications instead of replacing them by @andyluak in loft-sh/loft-enterprise#7838
- chore: Seal the experimental features for prod localhost sessions by @PRTTMPRPHT in loft-sh/loft-enterprise#7839
- fix(renovate): group vulnerabilities and automate patch updates by @vcauesantos in loft-sh/loft-enterprise#7821
- feat: Add multi progress and legend primitives by @PRTTMPRPHT in loft-sh/loft-enterprise#7841
- feat: Add machine overview visualization components by @PRTTMPRPHT in loft-sh/loft-enterprise#7836
- feat(ui) - node assigment component by @andyluak in loft-sh/loft-enterprise#7872
- feat(ui): recognize Run:ai custom links by label and add its icon by @andyluak in loft-sh/loft-enterprise#7828
- fix(ui): make auto nodes node pool names unique across providers by @andyluak in loft-sh/loft-enterprise#7875
- chore: bump vCluster dependency by @cbron in loft-sh/loft-enterprise#7877
- [release-4.12] feat(stack): add task outputs for stack instances (#7727) by @loft-bot in loft-sh/loft-enterprise#7894
- [release-4.12] ci: bump actionlint reusable workflow pin (#7899) by @loft-bot in loft-sh/loft-enterprise#7904
- [release-4.12] feat(ui): stacks by @loft-bot in loft-sh/loft-enterprise#7897
- [release-4.12] feat(stack): deploy stacks from a virtual cluster's vcluster.yaml (#7869) by @loft-bot in loft-sh/loft-enterprise#7907
- [release-4.12] fix(app-instance): Unblock the AppInstance controller from removing finalizers if it errors with the log secret by @loft-bot in loft-sh/loft-enterprise#7888
- [release-4.12] fix(ui): use the task's timeout field in isPristineTask (#7908) by @loft-bot in loft-sh/loft-enterprise#7909
- [release-4.12] feat(stack): add the App task type for stack instances (#7783) by @loft-bot in loft-sh/loft-enterprise#7912
- [release-4.12] refactor(stack): rename stack inputs to parameters (#7914) by @loft-bot in loft-sh/loft-enterprise#7915
- [release-4.12] fix(ui): hide the Stacks section for vCluster versions without deploy.stacks by @loft-bot in loft-sh/loft-enterprise#7924
- [release-4.12] fix(ui): show the application name for a task with no readable source by @loft-bot in loft-sh/loft-enterprise#7944
- [release-4.12] test: expand Platform file logging coverage (#7831) by @loft-bot in loft-sh/loft-enterprise#7946
- [release-4.12] fix(ui): lock a stack's destination to the page its sheet was opened from | refactor(ui): call a stack's parameters parameters everywhere | fix(ui): keep a stack's applications out of reach of the delete actions | feat(ui) - pr review | feat(ui) - remove broken test by @loft-bot in loft-sh/loft-enterprise#7951
- [release-4.12] fix(ui): show a stack task's status message before it fails by @loft-bot in loft-sh/loft-enterprise#7952
- [release-4.12] feat(stacks): embed run:ai manifests (#7917) by @loft-bot in loft-sh/loft-enterprise#7957
- [release-4.12] fix(sleepmode): set wake service port for Istio virtual service by @loft-bot in loft-sh/loft-enterprise#7959
- [release-4.12] fix(stacks): only accept Retain or Prune as a stack's prune policy (#7960) by @loft-bot in loft-sh/loft-enterprise#7971
- [release-4.12] fix(stack): add stacktemplates to management and core roles (#7968) by @loft-bot in loft-sh/loft-enterprise#7970
- [release-4.12] feat(stacks): Allow jsonPaths to be conditionally rendered. (#7975) by @loft-bot in loft-sh/loft-enterprise#7976
- [release-4.12] fix(stack): use platform.vcluster.com/stack-retry for ui (#7973) by @loft-bot in loft-sh/loft-enterprise#7974
- [release-4.12] fix(stack): reject jsonPaths without braces (#7980) by @loft-bot in loft-sh/loft-enterprise#7983
- [release-4.12] fix(apps): wait for an app's jobs before reporting success (#7996) by @loft-bot in loft-sh/loft-enterprise#7997
- [release-4.12] fix(stack): add get verb to stacktemplates in admin core roles (#7998) by @loft-bot in loft-sh/loft-enterprise#8001
- [release-4.12] chore(cve-fix): bump helm and prometheus to patch CVEs (#7788) by @loft-bot in loft-sh/loft-enterprise#8006
- [release-4.12] fix(ui): mask stack password parameters in the computed configuration by @loft-bot in loft-sh/loft-enterprise#8017
- [release-4.12] fix(stacks): fix stack validation issues and centralize validation functions (#7934) by @loft-bot in loft-sh/loft-enterprise#8016
- [release-4.12] fix(stacks): stop the stack name from making helm release names too long (#8018) by @loft-bot in loft-sh/loft-enterprise#8019
- [release-4.12] fix(agent): reload renewed webhook certificates without restart (#7874) by @loft-bot in loft-sh/loft-enterprise#8023
- [release-4.12] fix(ui): match Run:ai custom link icon by label, not URL by @loft-bot in loft-sh/loft-enterprise#8029
- [release-4.12] migrate certified stacks url away from v2 (#8025) by @loft-bot in loft-sh/loft-enterprise#8044
- [release-4.12] fix(tailscale): reap stale network peers left online by lost cleanup (#7618) by @loft-bot in loft-sh/loft-enterprise#8042
- [release-4.12] fix(stacks): run the certified stack ingress check with the Platform image (#8055) by @loft-bot in loft-sh/loft-enterprise#8056
- [release-4.12] feat(ui) - fix stacks navigation by @loft-bot in loft-sh/loft-enterprise#8057
- [release-4.12] fix: restore volume snapshot sync (#8088) by @loft-bot in loft-sh/loft-enterprise#8109
- [4.12] Update DefaultVClusterVersion to 0.37.0 by @deniseschannon in loft-sh/loft-enterprise#8131
Full Changelog: loft-sh/loft-enterprise@v4.11.2...v4.12.0