Pin reviewed verification candidate and record exact live activation gate
Some checks are pending
CI Smoke / container-smoke (push) Waiting to run
CI Smoke / host-smoke (push) Waiting to run
Transactional mail acceptance / mail (push) Successful in 27s
Build and Publish Container Image / build-and-push (push) Successful in 10s

Assistant: codex
Assistant-Model: gpt-6.1-sol
Assistant-Session: 01a11538-05ea-7b63-b3c7-a2df5f38898d
This commit is contained in:
tegwick 2026-10-07 19:35:39 +02:00
parent 7258505917
commit f69291659c
3 changed files with 50 additions and 3 deletions

View file

@ -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

View file

@ -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.

View file

@ -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.