Repository navigation
Vulnerability fixes (5376): 13 image bumps + pgvector CVE in 14 bundling templates - #685
Merged
Merged
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WZ5WWhTn9mEkPY7cLt1cr4
26.6.3 is open to an unauthenticated account takeover via the reset-credentials flow (CVE-2026-18963, Critical; work item 5376). 26.8.1 fixes it and scans to 1 Critical / 1 High (OpenJDK eMudhra distrust + font CPU, no upstream fix yet), down from 7 / 48. No setting the chart uses changed in 26.7 or 26.8. README: "Upgrading from 1.5.0" (no values change; schema migration means no rollback to 1.5.0, back up first). Briefing image line updated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WZ5WWhTn9mEkPY7cLt1cr4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WZ5WWhTn9mEkPY7cLt1cr4
…lable quay.io/minio/minio now refuses anonymous pulls and docker.io/minio/minio is gone, so every 1.0.0–1.3.1 install fails ErrImagePull on a fresh pull (work item 5376). Pin pgsty/silo:RELEASE.2026-10-18T00-00-00Z, the maintained AGPL fork (same S3 API, MINIO_* env and on-disk format; scan 0 Critical / 3 High). - start script runs `silo` or `minio`, whichever the image has (Silo has no `minio` on PATH; a user's own upstream image keeps working), FATAL if neither - README: intro names Silo; "Upgrading from 1.3.x"; values comment - wizard: image description; the unpullable-image info rule also covers quay - catalog summary/keywords; briefing image trap rewritten + 1.4.0 entry Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WZ5WWhTn9mEkPY7cLt1cr4
…zard note, briefing); Links to Silo docs A Silo node won't join a pool still running mostly MinIO, so the 1.3.x → 1.4.0 rollout fails a share of S3 requests until about half the nodes run Silo (measured on 6 replicas; data byte-identical after). The min.io doc links now redirect to MinIO's commercial AIStor docs, so Links point at silo.pigsty.io. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WZ5WWhTn9mEkPY7cLt1cr4
…ade fixes Test finding: releases installed through the 1.5.0 Console wizard store `image: quay.io/keycloak/keycloak:26.6.3`, so `helm upgrade -f` with the old values moved the chart to 1.5.1 while still running the vulnerable image. keycloak.validateImage now fails for quay.io/keycloak/keycloak tags below 26.7.2 (unparseable tags and other registries pass); wizard rule mirrors it. tw carry already moves the stored image to 26.8.1. Default render byte-identical to ea66b21. README "Upgrading from 1.5.0": change or remove a pinned `image`; a rollback reports healthy but every login returns HTTP 500 (recover: upgrade again or restore); 2+ replicas serve throughout, replicas: 1 is briefly unavailable. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WZ5WWhTn9mEkPY7cLt1cr4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WZ5WWhTn9mEkPY7cLt1cr4
Copied from PR #626's head (f076085) so the new version carries its reviewed wizard.yaml and in-place README fixes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WZ5WWhTn9mEkPY7cLt1cr4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WZ5WWhTn9mEkPY7cLt1cr4
- image pgvector/pgvector:0.8.7-pg18; appVersion, lastModified. - pgvector.validateImage refuses an official pgvector tag below 0.8.7: a wizard install stores image in the release values, so an upgrade reusing them would keep 0.8.6. Mirrored by a rule on the wizard's image field. - README: Upgrading from 1.0.0; version mentions. Briefing updated. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WZ5WWhTn9mEkPY7cLt1cr4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WZ5WWhTn9mEkPY7cLt1cr4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WZ5WWhTn9mEkPY7cLt1cr4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WZ5WWhTn9mEkPY7cLt1cr4
The example backend only answers paths no location matches; a missing target returns /fail with a 502 rather than stopping the proxy; a routing change rolls the proxy without a forced redeployment; an upstream 5XX keeps its status code. Wizard notes, README, values comment and briefing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WZ5WWhTn9mEkPY7cLt1cr4
The CVE message keeps the release's -pgNN suffix (a pg17 volume must not be told to use -pg18), in the wizard rule and the chart fail; the wizard rule matches every tag the chart refuses (0.8.6.1, 0.8.6rc1); an upgrade note says \dx keeps the old vector version until ALTER EXTENSION vector UPDATE. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WZ5WWhTn9mEkPY7cLt1cr4
Container port read-only at 80 with a blocking rule; the target picker warns rather than blocks on a workload that does not exist yet (the route answers 502 until it does); drop an item rule the picker pre-empts; note the example backend image is unpinned; softer rollout wording. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WZ5WWhTn9mEkPY7cLt1cr4
…opens The chart-files annotation file-nginxConf sent every install and upgrade to the classic YAML screen. nginxConf is now an ordinary value: empty renders the generated file, set renders the user's file in its place (tpl, as before). The classic screen already stored the file under that key, so an edited config carries over; the wizard migration clears an unedited copy of a shipped default. Wizard section, README and briefing. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WZ5WWhTn9mEkPY7cLt1cr4
Upgrade note on Custom nginx.conf explaining where a pre-1.1.3 file went; the rollout note also fires for a custom-config change; the custom-config warning says the example workload still runs; Locations says a custom file replaces it. The target picker goes back to mustExist: error (warning blocks the same way, so 75c8f62's change did nothing). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WZ5WWhTn9mEkPY7cLt1cr4
It could never apply: the proxy scales on CPU and the platform refuses Capacity AI with that metric. The workload keeps capacityAI: false; the wizard drops the value with a note. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WZ5WWhTn9mEkPY7cLt1cr4
Copied from 1b0c144 (head of PR #629: 2.0.0's reviewed wizard.yaml and in-place fixes). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WZ5WWhTn9mEkPY7cLt1cr4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WZ5WWhTn9mEkPY7cLt1cr4
Seeded from 1644e41 (head of unmerged PR #628: 1.2.0's reviewed wizard.yaml + in-place README fix). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WZ5WWhTn9mEkPY7cLt1cr4
…CVE-2026-103484) Default image controlplanecorporation/patroni-postgres:0.7 -> 0.8 (spilo-17 4.0-p3, PGDG pgvector 0.8.0 -> 0.8.7). pg-ha.validateImage refuses patroni-postgres tags 0.1-0.7, mirrored by a wizard rule on image. README upgrade note; briefing updated. appVersion stays "17" (it tracks the PostgreSQL major, not the image tag). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WZ5WWhTn9mEkPY7cLt1cr4
…VE-2026-103484) - Default image controlplanecorporation/patroni-postgres:0.7 -> 0.8 (spilo-17 4.0-p3 with PGDG pgvector 0.8.0 -> 0.8.7; ca-certificates/curl refreshed). Used by the Patroni container and the WAL-G sidecar. - pg-ml.validateImage refuses patroni-postgres plain-version tags 0.1-0.7 (with or without docker.io/); digests, other registries and non-version tags pass. Mirrored by a wizard rule on the image field, plus an upgrade note on the extension version record. - README: "Upgrading from 2.0.0" section; image default updated. - Chart.yaml: version 2.0.1, lastModified 2026-10-23. appVersion stays "17" (it tracks the PostgreSQL major, not the image tag). - Briefing (seeded from 1b0c144, PR #629's version): image default and a 2.0.1 section. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WZ5WWhTn9mEkPY7cLt1cr4
…gvector 0.8.7, CVE-2026-103484) - image default pg18.4-ts2.28.3 -> pg18.6-ts2.31.0: pgvector 0.8.5 -> 0.8.7, PostgreSQL 18.4 -> 18.6, TimescaleDB 2.28.3 -> 2.31.0. The image keeps the 2.28.3 library, so existing databases run unchanged until ALTER EXTENSION timescaledb UPDATE. - tsdb-ha.validateImage refuses the pg18 timescale/timescaledb-ha tags built before pgvector 0.8.7 (pinned <= ts2.30.1, frozen pg18-ts2.0..2.29); mirrored wizard rule. - README "Upgrading from a version before 1.2.1"; wizard upgrade note; example tag in the pg18 rule. - Briefing: default image, pg17 fallback caveat, 1.2.1 history. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WZ5WWhTn9mEkPY7cLt1cr4
…every Patroni member The startup gate waited for every member to answer :8008 before starting HAProxy, and the proxy workload had no readiness probe. A chart upgrade redeploys the proxy while Patroni is rolling, so the new proxies were counted ready and the old ones retired while the new ones sat in the gate: writes were refused for ~75-130 s although the leader never moved (measured on all three Patroni charts in 5376 testing). - HAProxy re-resolves server names at runtime (resolvers mesh, copied from pgedge 3.0.0), so a placeholder address from the mesh DNS heals itself; that was the gate's only reason to exist. - The start script waits at most 60s for ANY member's Patroni API, then starts regardless. - readinessProbe on /healthz :8404 (a leader is routable), so an upgrade keeps the old proxy replicas serving until a new one can reach the primary. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WZ5WWhTn9mEkPY7cLt1cr4
…ery Patroni member The startup gate waited for every member to answer :8008 before starting HAProxy, and the proxy workload had no readiness probe. A chart upgrade redeploys the proxy while Patroni is rolling, so the new proxies were counted ready and the old ones retired while the new ones sat in the gate: writes were refused for ~75-130 s although the leader never moved (measured on all three Patroni charts in 5376 testing). - HAProxy re-resolves server names at runtime (resolvers mesh, copied from pgedge 3.0.0), so a placeholder address from the mesh DNS heals itself; that was the gate's only reason to exist. - The start script waits at most 120s for ANY member's Patroni API, then starts regardless. - readinessProbe on /healthz :8404 (a leader is routable), so an upgrade keeps the old proxy replicas serving until a new one can reach the primary. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WZ5WWhTn9mEkPY7cLt1cr4
…on every Patroni member The startup gate waited for every member to answer :8008 before starting HAProxy, and the proxy workload had no readiness probe. A chart upgrade redeploys the proxy while Patroni is rolling, so the new proxies were counted ready and the old ones retired while the new ones sat in the gate: writes were refused for ~75-130 s although the leader never moved (measured on all three Patroni charts in 5376 testing). - HAProxy re-resolves server names at runtime (resolvers mesh, copied from pgedge 3.0.0), so a placeholder address from the mesh DNS heals itself; that was the gate's only reason to exist. - The start script waits at most 60s for ANY member's Patroni API, then starts regardless. - readinessProbe on /healthz :8404 (a leader is routable), so an upgrade keeps the old proxy replicas serving until a new one can reach the primary. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WZ5WWhTn9mEkPY7cLt1cr4
…nts to what testing measured The replica names are per-replica mesh addresses that exist from workload creation (measured 2026-10-26), so no placeholder address was observed; runtime DNS stays as a safety net. The resolvers comment moves out of the heredoc so it is no longer written into haproxy.cfg and the start log. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WZ5WWhTn9mEkPY7cLt1cr4
…s to what testing measured The replica names are per-replica mesh addresses that exist from workload creation (measured 2026-10-26), so no placeholder address was observed; runtime DNS stays as a safety net. The resolvers comment moves out of the heredoc so it is no longer written into haproxy.cfg and the start log. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WZ5WWhTn9mEkPY7cLt1cr4
github-actions Bot
added a commit
that referenced
this pull request
Oct 28, 2026
5376: vulnerability fixes across 11 templates (keycloak, minio, pgvector, nginx, Patroni charts, open-webui, n8n, uptime-kuma, umami)
… step; wizard wording The workload uses replicaDirect, so the quota that applies is replicas-per-replica-direct-workload (6 by default, measured in the test env and production); the default 6-node install fits. Fix the wizard note (threshold > 6), README Prerequisites, catalog prerequisite (now required: false, when replicas above 6) and briefing; drop the duplicate info rule. Move the 1.3.x -> 1.4.0 maintenance-window hazard from a top-level info rule to a Cluster-step warning note. Label the image field "Server image"; place the port-forward note after "Who can connect". Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WZ5WWhTn9mEkPY7cLt1cr4
…; upgrade warning on Cluster step) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WZ5WWhTn9mEkPY7cLt1cr4
… on Sign-in step) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WZ5WWhTn9mEkPY7cLt1cr4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WZ5WWhTn9mEkPY7cLt1cr4
…t-over rules) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WZ5WWhTn9mEkPY7cLt1cr4
…d-older rejected; Python 4.7+/JS 5.4+ direct) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WZ5WWhTn9mEkPY7cLt1cr4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WZ5WWhTn9mEkPY7cLt1cr4
…t (16 x 15 s) CI run 40750208015: after the 1.4.0 -> 1.4.1 upgrade the bases API returned non-JSON for 90 s while NocoDB was still restarting (the live round measured ~2 min). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WZ5WWhTn9mEkPY7cLt1cr4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WZ5WWhTn9mEkPY7cLt1cr4
…order) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WZ5WWhTn9mEkPY7cLt1cr4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WZ5WWhTn9mEkPY7cLt1cr4
|
@jacobecox template e2e tests failed, so this PR cannot merge yet. See the report above and the run logs. |
…pgrade note) Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WZ5WWhTn9mEkPY7cLt1cr4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WZ5WWhTn9mEkPY7cLt1cr4
…pgrade note) Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WZ5WWhTn9mEkPY7cLt1cr4
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WZ5WWhTn9mEkPY7cLt1cr4
|
@jacobecox template e2e tests failed, so this PR cannot merge yet. See the report above and the run logs. |
…le Patroni rollout (20 x 30 s) CI run on ac8cd6b read AVAIL 0.8.0 after 6 tries: the old leader restarts last. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WZ5WWhTn9mEkPY7cLt1cr4
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Work item 5376: the 10-22 Trivy scan of every template's latest version. Every fix is in one PR, so it is one merge (maintainer request 10-27).
Each template's branch is merged in unchanged (
--no-ff, one merge commit per template), so its original commits and review diffs still apply. Each template lives in its own directory and no two branches touch the same file. Each original PR has been closed but keeps the full write-up: release-notes review, guard tables and test-round evidence. They are linked below.How to review one template:
git diff <copy-commit>..origin/jacob/5376-vulnerability-fixes -- <template>/versions/<new>/. The copy commit is the verbatim copy of the previous version, so this shows only the real change, per the two-commit rule.The changes
996e5ba4pgsty/silo)9e39640018b0e655nginxConfas a value, Capacity AI removedfdbcf8f95b6a3beae05fab06321a547eb7bef49dN8N_WEBHOOK_URL7c7349f4683f4d62af6faefa51179bdblangfuse.migration.writeMode/historicBackfill)092cfa4bCommon to every image bump:
{template}.validateImagerender-timefailrefuses the vulnerable tags. It is mirrored by a wizard rule, because the Console storesimagein release values and ahelm upgrade -fwould otherwise keep the old tag.pgvector in the 14 templates that bundle postgres-highly-available
Their bundled HA database ran
controlplanecorporation/patroni-postgres:0.7(pgvector 0.8.0, CVE-2026-103484). postgres-highly-available 2.8.1 is not published until this PR merges, so each template keeps its vendored subchart version and overrides the image topatroni-postgres:0.8(maintainer decision 10-27). Each adds{svc}.validatePostgresHAImage(refuses tags 0.1–0.7 and an empty image when HA is on; the subchart's own default is still 0.7), mirrored by a wizard rule, plus a README "Upgrading from …" note (ALTER EXTENSION vector UPDATE;where the extension exists). HA is the default in chatwoot, glitchtip, grafana, metabase, unleash, temporal, keycloak and n8n; cdc-pipeline is HA-only; listmonk, nocodb, polaris, twenty and umami default to plainpostgres:18(no pgvector) and are affected only in HA mode. Only chatwoot createsvectoritself.jacob/chatwoot-1.3.1jacob/glitchtip-1.4.1jacob/grafana-1.5.1jacob/metabase-1.5.1jacob/listmonk-1.6.1jacob/nocodb-1.4.1jacob/polaris-1.3.1jacob/twenty-1.4.1jacob/unleash-1.5.1jacob/temporal-2.1.1jacob/cdc-pipeline-1.1.2jacob/keycloak-1.5.1jacob/n8n-1.5.0jacob/umami-1.5.0Live round per template (HA mode in every row): upgrade from the previous version with data created through the app → all three Patroni members on
:0.8/ pgvector 0.8.7, data intact; the READMEALTER EXTENSIONstep run verbatim; the guard refusing:0.7and an empty image on the live release with nothing touched; a fresh install +drift-diff.py(no new drift: every field identical to the previous version, deferred per the 10-22 ruling) + two no-op upgrades; teardown with janitorclean ✓. All 14 PASS. HAProxy never restarts (helm may printUpdatedfrom a tag bump). The interruption is either the DB leader change (seconds) or, for single-replica stateful-style app tiers (chatwoot, n8n, listmonk, umami, nocodb, twenty), the app's own restart; each README says which.E2E: all 14 onboarded to
tests/(none had a suite before), each run locally green in the round; this push is their first CI run. Each includespgvector-0-8-7-availableandevery-patroni-member-on-0-8(catches a partly rolled cluster).Known platform issue, not filed (maintainer: being fixed): in 2 of ~16 HA rollouts one Patroni member stayed
initializingwith its volumeunbound; a re-run passed.Verification already done (per template, in its original PR)
clean ✓.helm template) andtw lintgives 0 errors and 0 warnings.validate_catalog.py→92 valid catalog entries … 0 with problems.Console wizard rounds (test console, 10-28)
helm template, stored values =tw render/tw carry, teardown clean ✓): keycloak, pgvector, nginx, postgres-highly-available, postgres-multi-location, timescaledb-highly-available (earlier), and minio, open-webui, langfuse, ollama, umami, n8n. Findings fixed in this PR:tw lint/tw render/helm templatepass, and in the console the refused image blocks Install and clears on the default.CI: green on
3f1b44d3(all 16 e2e suites). Fixes from the first runs: nocodb's sign-in check now waits out the post-upgrade restart; the postgres-highly-available pgvector check waits for the whole rollout. Drift warnings are the pre-existing probe fields, deferred (incl. langfuseminReadySeconds, maintainer 10-28).Maintainer rulings (10-29)
open-webui MCP sign-in HANDOFF: not needed, since 1.4.0 does not change the MCP integration.
umami
app.twoFactorKeySecretName: kept (tested end to end).langfuse
migration.writeMode/historicBackfill: kept (tested end to end).langfuse backfill step 5: documented only, no knob.
Drift (pre-existing probe fields, langfuse
minReadySeconds): deferred.Seeds from the wizard PRs (pgvector 1.0.0: add wizard descriptor #626, postgres-multi-location 2.0.0: add wizard descriptor #629, timescaledb-highly-available 1.2.0: add wizard descriptor #628, uptime-kuma 1.2.0: add wizard descriptor #655, ollama 1.1.2: add wizard descriptor #657) all merged via Install wizards for the latest version of 36 templates (5362) #681 unchanged.
Not in this PR:
supabase/postgrestag ships pgvector 0.8.7 (all ≤ 0.8.2); the image refresh and probes of suspected 1.1.1 defects are a follow-up;After merge: CHANGELOG entries go into changelog: PHP2Shell notice; credentials as secrets (5284 + follow-ups); 5376 vulnerability fixes; ghost, mysql, redis, neo4j, debezium-server, postgres-HA, cdc-pipeline, kafka, redis-cluster, searxng, nats #612; then the docs pages.
🤖 Generated with Claude Code
https://claude.ai/code/session_01WZ5WWhTn9mEkPY7cLt1cr4