diff --git a/deploy/k8s/railiance/deployment.yaml b/deploy/k8s/railiance/deployment.yaml index 723e803..0e56150 100644 --- a/deploy/k8s/railiance/deployment.yaml +++ b/deploy/k8s/railiance/deployment.yaml @@ -42,8 +42,8 @@ spec: terminationGracePeriodSeconds: 15 containers: - name: email-connect - # P05 durable send reservations and non-sending SMTP diagnostics, 2026-09-13. - image: forgejo.coulomb.social/coulomb/email-connect@sha256:e095d7e51c68a29ff6b82d735c734d5d27e0041b937dc958ecee5bcb5ddf5e8b + # Verification retry/restart correction, source 7258505; candidate pending founder go. + image: forgejo.coulomb.social/coulomb/email-connect@sha256:1e613d43734c44c5cd32c6083fda8b4da5d01ef43d10c6ca9c29a33c788cf75c imagePullPolicy: IfNotPresent ports: - name: http diff --git a/docs/verification-retry-review-2026-10-07.md b/docs/verification-retry-review-2026-10-07.md index 9c6be7d..f8b5fec 100644 --- a/docs/verification-retry-review-2026-10-07.md +++ b/docs/verification-retry-review-2026-10-07.md @@ -33,3 +33,43 @@ then compare/reconcile reservation outcomes. Old code ignores verification reservations: an unrestricted rollout undo can duplicate verification mail. Prefer rolling forward with the retry invariant preserved. Additive schema can be read by the old image, but schema compatibility is not delivery safety. + + +## Published candidate and activation packet + +Source: 725850591754039771031d5fa8ba29562d6d4ce7. Image: +forgejo.coulomb.social/coulomb/email-connect@sha256:1e613d43734c44c5cd32c6083fda8b4da5d01ef43d10c6ca9c29a33c788cf75c. +Candidate pin is committed in deployment.yaml; it has not been applied live. +The packaged image passed synthetic retry/restart smoke as UID10001, with +read-only root, temporary SQLite and network disabled. One provider call, +unchanged request receipt and digest-only handle persistence were verified. + +Fresh live observation/server preflight on railiance01: +cluster UID a553c742-0115-43d4-99a4-a5ca56fe0786; node92.205.62.239 Ready, +no pressure; CPU requests3455m/4000m; one Ready email-connect replica still on +sha256:e095d7e51c68a29ff6b82d735c734d5d27e0041b937dc958ecee5bcb5ddf5e8b. Parsed dry-run spec comparison +proves only the container image changes. Both guarded JSON image patch and +non-root read-only-PVC backup helper passed server dry-run. No live object changed. +Existing PVC=email-connect-data, Secret reference=email-connect-runtime. + +Founder decision 8da41538-8482-4c72-b83d-e0fce1b662f0 is open. Scope: +ADMINISTER @ realm:kubernetes/railiance01, activation=APPROVED after founder go. +Do not apply the whole package to make this image correction: preserve live +runtime ownership and use the reviewed guarded image patch. + +Activation sequence: recheck UID/old digest/one replica/headroom; briefly scale +email-connect to zero and wait for its pod to exit, preventing old/new senders +from overlapping. Create the reviewed bounded helper with read-only data PVC and +writable emptyDir /tmp, automountServiceAccountToken=false and no runtime env. +Use stdlib SQLite backup API on the configured database into a private helper +file; stream it to a fresh node-side mode0600 artifact in a mode0700 directory +without printing bytes, addresses, rows or challenge handles. Validate backup +integrity and record only its hash/size. Remove helper, apply JSON test(old +image)+replace(new image), resume one replica and verify rollout/probes plus +no-send authenticated rejection. No production mail is sent for acceptance. +Native authentication SMTP/reset remains outside this receiver change. + +Failure before the patch: remove helper and resume the old one replica. Failure +after new code has served: stop sending and keep the PVC/backup; reconcile before +any old-image rollback because the old verification code ignores reservations. +This packet grants no new caller, platform sender or offsite backup consumer. diff --git a/workplans/EMAIL-WP-0006-verification-retry-safety.md b/workplans/EMAIL-WP-0006-verification-retry-safety.md index 87e651a..70906d8 100644 --- a/workplans/EMAIL-WP-0006-verification-retry-safety.md +++ b/workplans/EMAIL-WP-0006-verification-retry-safety.md @@ -54,8 +54,11 @@ and retry. Harness container/network were removed after validation. ```task id: EMAIL-WP-0006-T03 -status: progress +status: wait priority: high +needs_human: true +decision_id: "8da41538-8482-4c72-b83d-e0fce1b662f0" +intervention_note: "Approve exact email-connect retry correction digest1e613d43 with brief receiver pause and private SQLite backup; existing sender/caller/custody unchanged. See release review." ``` Prepare immutable image, live digest/headroom observation and exact image-only @@ -78,3 +81,7 @@ Owner inbox records RPF-WP-0045 Kubernetes-auth recovery and retirement request credentials or Kubernetes; the obsolete template contains only its retirement pointer. Documented package apply does not recreate the platform-owned store. No live custody change was made. + +2026-10-07 candidate prepared: source7258505, published digest1e613d43734c44c5cd32c6083fda8b4da5d01ef43d10c6ca9c29a33c788cf75c; +UID10001 network-disabled packaged smoke and exact live/server dry-run pass. +Current runtime remains e095d7e5; founder decision 8da41538-8482-4c72-b83d-e0fce1b662f0 open.