railiance-apps/workplans/RAPPS-WP-0015-coulomb-personal-content-release.md
tegwick dc927d7751
All checks were successful
CI Smoke / host-smoke (push) Successful in 0s
CI Smoke / container-smoke (push) Successful in 1s
Prepare verified combined Coulomb attachment and content release
Assistant: codex
Assistant-Model: gpt-6-astra
Assistant-Session: 01a192e9-c28b-7533-bf25-e2341364c22a
2026-10-31 19:42:01 +01:00

28 KiB

id type title domain repo status owner topic_slug created updated related state_hub_workstream_id
RAPPS-WP-0015 workplan Coulomb-social persistent personal workspace release financials railiance-apps active codex railiance-apps 2026-10-06 2026-10-31
CSOC-WP-0008
79abacf8-361e-51ab-829d-40dec8e142d1

RAPPS-WP-0015 — Personal Coulomb workspace

Owning deployment change for CSOC-WP-0008. Prepare a reviewed upgrade from 7fcd0cf to the tested app with static assets and a 2Gi retained local-path CONTENT_ROOT PVC. Use one replica and Recreate to prevent concurrent old/new filesystem writers. Existing OIDC, PostgreSQL and secret references stay in use.

T01 — Prepare immutable source image

id: RAPPS-WP-0015-T01
status: done
priority: high
state_hub_task_id: "e17488d4-60b8-58b7-a5d8-fbcdc55e1f0c"

Source repo runs make check; collect static assets in the container image; exclude private local data from Docker context. Build/publish SHA-tagged image with revision label and registry digest. Verify the image serves the real clipboard asset through production settings without developer static hosting.

T02 — Validate persistent single-writer chart

id: RAPPS-WP-0015-T02
status: done
priority: high
state_hub_task_id: "4e38dd8e-761b-58c8-8005-8490a49767ab"

Content PVC/mount/CONTENT_ROOT wiring, fsGroup 10001, keep policy and Recreate. Reject multiple replicas, rolling writer strategy and root/mount mismatch. Helm lint/render, server dry-run and diff; confirm resource/disk headroom and that coulomb-social is not currently ArgoCD-managed. Publish the review branch.

T03 — Approved upgrade and recovery point

id: RAPPS-WP-0015-T03
status: done
priority: high
state_hub_task_id: "2ce05439-70dc-53cf-b704-5118687857cb"

Founder approves exact image digest, chart diff, 2Gi PVC and brief Recreate interruption: ADMINISTER @ realm:kubernetes/railiance01, activation=APPROVED. Capture a private pre-upgrade DB recovery point through the documented owner backup path. Apply from railiance01 with Helm --atomic, preserve existing tegwick identity and migration data. Do not run legacy env secret-building scripts or dump live Secret objects. No apex cutover.

T04 — Personal sign-in and content acceptance

id: RAPPS-WP-0015-T04
status: wait
priority: high
state_hub_task_id: "8bc4962a-d0d4-57cd-bf2b-295658b88765"

User signs in interactively as existing personal tegwick account. Confirm local Member matches verified issuer/subject, grant only that member the nominated workspace, and smoke page CRUD/duplicate/clipboard. Prove PVC write ownership, restart durability and paired DB/content restore before real productive transfer. CSOC-WP-0008 continues actual ReichelAg reconciliation and user review.

Prepared evidence — 2026-10-06

Source ac7bac1852c9, make check: 88 passed. Container production WhiteNoise serves /static/spaces/copy-content.js HTTP 200, 2909 bytes, ClipboardItem present. Published immutable registry digest: sha256:bf975939e22b9b0a5d9ac05584ae6265ba201169df6dc48e506ec684b30a9c58. Chart 0.2.0 pins that digest; lint and server dry-run pass; unsafe multiple replicas, RollingUpdate and CONTENT_ROOT mismatch are refused.

The user's actual login fails unknown client_id. Guarded read-only inspection confirms the public coulomb-social client is absent. CSOC-WP-0008-T11 prepares its restoration and shared KeyCape restart; no live change has been made. Existing completed apps-pg daily backup is not a paired application restore. T03/T04 remain waiting for exact live approval and personal acceptance.

Approved deployment receipt — 2026-10-06

Founder approved explicit proposal; decision 8bbce691-a787-4140-9cd4-df06e8635a27, ADMINISTER @ realm:kubernetes/railiance01, activation=APPROVED. Fresh apps-pg Backup csoc-preupgrade-20261006145351 completed 14:54:31Z before app upgrade. Chart changes pushed to main at3f5a909. Helm atomic upgrade from railiance01 succeeded: revision10, chart0.2.0, pinned digest above. App1/1 ready, 2Gi PVC Bound, UID/GID10001 write succeeds, zero pending migrations. Dedicated synthetic content marker survived a fresh pod restart and was removed afterward. Public health/landing/clipboard asset200; login302 correct issuer/client/PKCE.

Missing public OIDC client restored and KeyCape restart succeeded under same go; authorization hands off to Authelia. Interactive tegwick sign-in remains pending user confirmation. T03 done; T04 wait for interactive/product acceptance and paired recovery. No productive import or apex cutover. Application receipt: coulomb-social/docs/release/personal-account-deployed-2026-10-06.md.

User sign-in result — 2026-10-06

The user reaches auth.coulomb.social but tegwick is rejected as wrong username or password. Read-only directory query through the existing provisioner confirms tegwick is present. Live Authelia username attribute is uid; its lookup supports uid or mail. Contained recent-log inspection records a tegwick LDAP invalid- credentials failure, without backend connection error or regulation-ban evidence in that entry. This does not establish why the entered credential is rejected.

The app and client restoration are deployed, but personal sign-in is not accepted. CSOC-WP-0008-T11 remains wait for human credential confirmation/recovery and a successful fresh sign-in. The user was asked whether the same password works on another service. No password was requested/read/exported or reset. Authelia's current notifier is filesystem rather than SMTP: do not promise emailed recovery or expose reset tokens from notification files. Any credential reset must use the owning attended recovery/setup lane under a separate exact approved change.

Personal login 500 correction — 2026-10-06

User confirmed fresh password-reset email receipt, then reported HTTP500 after authentication. In-pod credential-safe read-only probes with empty claims show old USER_ENGINE_BASE_URL redirects302 to users.coulomb.social/api/v1/me; canonical endpoint responds400 to empty claims using the existing service credential. No identity was created. The application's httpx client does not follow redirects and raise_for_status rejects302 before establishing its local session.

Correct USER_ENGINE_BASE_URL in chart defaults and production overrides to https://users.coulomb.social. Preserve immutable image, Secret references, identity issuer/subject/tenant, PVC and access rules. This completes the already approved personal app deployment; founder go/interruption approval is recorded in decision8bbce691-a787-4140-9cd4-df06e8635a27. Use node-side Helm atomic upgrade, server dry-run and exact manifest diff; rollback revision10 if necessary. T04 remains waiting for successful interactive personal workspace acceptance.

Correction deployed as Helm revision11; parsed server dry-run manifest differs only in USER_ENGINE_BASE_URL. Atomic/wait upgrade succeeded, app1/1 and public health/landing200, login302. Root receipt docs/release/personal-login-500-2026-10-06.md in coulomb-social records evidence. Fresh user workspace acceptance remains open.

User confirmed “I reach my workspace” after revision11 correction. Personal sign-in accepted. T04 remains open for content creation/reload, copy/edit/native clipboard and explicit access-denial/product acceptance; login alone does not close that broader product task.

First content-transfer recovery preparation — 2026-10-06

Founder instructed current ReichelAg capture/first transfer (“yes go on”), then prioritized content over UX and a separate UI framework architecture phase. Bounded snapshot operation continued personal-app interruption approval: root scripts/snapshot-content-and-db.py server dry-run passed; app paused, app-scoped coulomb_social_db pg_dump and read-only retained PVC archive captured privately, helper pod removed and app1replica resumed. Operation53.73seconds; app health200. No persistent chart/deployment, data, grants or credential settings changed.

Private pair restored in isolated Docker PostgreSQL:13tables/102rows with empty content, logical rows/sequences match. A separate synthetic populated pair restored13tables/111rows/4files; protocol original/edited copy, assets/render, viewer validCSRF write denial and outsider read denial pass. Ephemeral restore containers/internal networks removed;96repo tests passed. Receipt in product repo docs/release/reichelag-transfer-2026-10-06.md.

Fresh private Bubble protocols require a renewed session; user-attended local browser opened. T04 remains wait for real content/product acceptance. Temporary snapshot custody is not scheduled durable backup acceptance (CSOC-WP-0008-T02).

Real first-cohort import executed

Founder completed attended Bubble web login. First ReichelAG cohort captured without old seed:36articles/36assets (37markdown files with space index), latest dated protocol2026-10-02; all29August IDs plus7new. Fresh20:21:30Z paired point captured privately. Node import helper server dry-run/source hashes/snapshot hashes passed; after pausing writers current DB/content compared equal to paired point. One new space, owner grant only for existing tegwick identity; no replacement. All73source files hash-match and37pages render; app resumed after52.97seconds. New pod verifies visible space/pages/assets/grant; health200. Same revision11 image, credentials and chart configuration retained.

Separate real-content paired rehearsal restored13tables/104rows/73files with all hashes/logical rows/sequences matching, all pages rendered, owner read and ungranted same-tenant read denial.96tests pass. T04 user/clipboard/product acceptance remains open; retained backup custody/rollback remains live CSOC-WP-0008-T02. Receipt: product docs/release/reichelag-imported-2026-10-06.md.

Clipboard fidelity corrective release — 2026-10-07

Founder review found the ReichelAg clipboard differs from Bubble. Root source d521ddc fixes full title, italic abstractor, raw Markdown and legacy footer; private authenticated comparison is exact, and make check passes97tests. Production values pin the new immutable registry digest. Continue the approved personal-app upgrade/interruption scope (decision8bbce691-a787-4140-9cd4-df06e8635a27); only the app image may differ in parsed manifests. Preserve PVC, environment, Secret references, identity and grants. Fresh paired DB/content recovery point captured before upgrade. T04 remains waiting for actual user clipboard/mail review; no protocol contents are changed by this image release.

Corrective release deployed as Helm revision12 with atomic/wait. Server dry-run parsed manifests differ only in the pinned app image. Live loader/template clipboard text equals the original; all74content file hashes unchanged from paired pre-upgrade snapshot; owner access valid. Public health/static200 and served clipboard script equals tested source. T04 remains user product review. Receipt: coulomb-social/docs/release/reichelag-clipboard-2026-10-07.md.

Protocol naming corrective release — 2026-10-07

Founder confirms edit and clipboard behavior, reports default filenames retained after duplicating with a new title and undiscoverable rename controls. Root CSOC-WP-0008-T12 implements server-derived filenames on title-only duplication, explicit override, visible Rename page controls and metadata preservation during rename/edit. Source b13ba9c5815e, full gate98tests passed, pinned immutable digest sha256:dbeaeda1a03622a91683f8db3c1f498e8bf43417cdb077ec740c56f0489baff6. Apply an image-only node Helm atomic/wait upgrade under existing founder app upgrade/interruption go, decision8bbce691-a787-4140-9cd4-df06e8635a27. Fresh paired database/content recovery point captured56.93seconds, app resumed; content and grants must remain unchanged. T04 continues user naming/workflow review.

Naming correction deployed as revision13; node Helm atomic/wait succeeded with app-image-only parsed manifest diff. Live Rename page/title/file controls and new copy-filename logic verified; original clipboard payload still matches. All75content files unchanged from fresh paired snapshot; owner access remains valid. Health/static200. Owning pin commit22c5695; sourceb13ba9c5815e. T04 remains founder naming/workflow review; edit and clipboard copy accepted. Receipt: coulomb-social/docs/release/reichelag-naming-2026-10-07.md.

Private Visual release — 2026-10-07

Founder explicitly approves exact image-only rollout, decision 3f959ed2-4163-4fa5-9f88-f80b2a3d1b89, ADMINISTER @ realm:kubernetes/railiance01, activation=APPROVED. Source017b917e2158, published digest sha256:0e235abc33a1c5613c0e2c9a0f767c871d0fbed6695973ae17cfdcb2dedaaafa. Root make check129passed; private raster covers/body-image routing and bounded Visual copies tested, including actual Chromium writer/viewer/outsider behavior. Packaged UID10001/network-disabled smoke passes. Live-manifest comparison and server dry-run verified image only; current37JPEG signatures all match.

Prepare fresh quiesced paired DB/content backup and verify isolated recovery before node Helm atomic/wait upgrade. Preserve issuer, mailbox, credentials, PVC, metadata/content and grants. Root receipt: coulomb-social/docs/release/private-visuals-2026-10-07.md. T04 and product T05/T09 remain open for actual user Visual/workflow acceptance. No Bubble retirement.

Private Visual release deployed as revision14 under exact founder decision 3f959ed2-4163-4fa5-9f88-f80b2a3d1b89. Fresh quiesced paired capture57.74seconds, app resumed; actual production pair restores13tables/104rows/sequences and 75files with all hashes matching. New-image isolated checks render38pages and 38cover references; viewer read/write denial and outsider page/image denial pass. Rehearsal DB/network removed. Private mode0640 restored files use the workstation non-root owner; production UID10001 and ownership remain intact.

Owning pin2e95944 reviewed source archive deployed from the node. Fresh parsed manifest comparison proves app image only; cluster identity and kubectl/Helm server dry-run pass. All75files match paired point before upgrade. Atomic/wait upgrade20.66seconds; app1/1, exact source017b917/digest0e235abc. Read-only live owner views verify38covers, template and single owner grant; unsaved outsider image404. All75stored file hashes unchanged. Anonymous image login302; public health/static200; served clipboard source matches. Root snapshot helper pin follows release;7focused recovery tests/new server dry-run pass.

T04 user Visual/complete workflow acceptance remains open. Root T02 retained backup custody/retention and production rollback remain open; no durable backup or Bubble retirement claim. Receipt: product docs/release/private-visuals-2026-10-07.md.

Spaces-list Visual correction — 2026-10-07

Founder review confirms page Visual but reports the missing Spaces-list preview. Complete the already approved private-Visual image-only upgrade scope by adding that preview with the existing authenticated asset route and membership-filtered query. Source881a61d10798; full make check129passed including actual writer/viewer list image loading and outsider exclusion. Browser harness now uses a temporary file DB to permit concurrent image request connections; streaming fast tests follow Django client close lifecycle. No checks skipped/serialized.

Pin sha256:91673ba7625f905c7a4d0c3d52b45ccc7e7746f387d1e84aab331d68994c5df9. Fresh paired capture56.03seconds; app resumed. Verify isolated recovery, fresh image-only node dry-run and rollout within decision3f959ed2's approved Visual scope and the founder's direct gap review. T04/T05/T09 remain user acceptance.

Spaces-list correction deployed as revision15: source881a61d10798, owner pin f5fc9ea, digest91673ba7625f905c7a4d0c3d52b45ccc7e7746f387d1e84aab331d68994c5df9. Fresh paired capture56.03seconds; app resumed; actual pair restored13tables/ 104rows/sequences/75files matching,4.14seconds. New-image owner/viewer list cover rendering/reads and outsider list exclusion pass in isolated recovery; rehearsal DB/network removed. Fresh exact image-only/cluster/content guards and server/Helm dry-run pass. Atomic/wait upgrade20.58seconds, app1/1.

Read-only live core view verifies owner list preview/private image bytes and unsaved outsider exclusion; single owner grant/all75file hashes unchanged. Public health/static200; clipboard unchanged. Root snapshot helper pin follows release;7tests/new server dry-run pass. Original release gate129passed, including actual writer/viewer list-image loading and outsider exclusion with independent test DB request connections; no skipped/serialized browser traffic.

This completes the omitted list preview identified in direct founder review, within the approved private-Visual image-only scope. T04 and root T09 wait for founder list/full workflow acceptance; retained backup operations remain T02. Product receipt docs/release/private-visuals-2026-10-07.md includes both revisions.

Sharing/portability image release — 2026-10-08

Founder instruction: Please deploy commit and sync. Exact image-only authority is recorded by product decision8e692284-6289-4594-bb21-88346f174806: ADMINISTER @ realm:kubernetes/railiance01, activation=APPROVED. Source dd83c90; owner pin2202e69; immutable digest9a646d8e01a61ba5316d3c2eb0273064e17f2d0300ad07af766ccedda65ecb18. Product182-test Ruff/real-browser gate and packaged non-root/no-network smoke pass. Fresh paired capture56.21s/app resumed; actual isolated13tables/104rows/sequences/ 75files match, recovery4.31s. New image renders38pages/38Visuals and verifies sharing/export/restored viewer write denial and outsider page/image denial; isolated DB/network removed. Private pair retained for existing custody handoff.

Parsed manifests prove three unchanged resources with only the app image changed. Node cluster/PVC/image/pressure and live specs match; CPU1/1000m semantic equality was corrected after the preflight stopped, with no upgrade on failed guards. Namespace-correct kubectl/Helm server dry-run and pre-upgrade75file hashes pass. Atomic/wait upgrade18.64s deploys revision16, one Ready replica at exact digest. Postflight live specs and all75stored file hashes match; existing owner grant unchanged. Read-only UID10001 owner controls/export and38pages/Visuals, unsaved outsider denial, public health/static200 and clipboard source match all pass. No production identity/session/grant or content change is used for tests.

Product snapshot helper pin follows release;9focused safety tests and fresh server dry-run pass. No Secret, issuer, mail, caller, PVC, offsite schedule or Bubble/apex change. T04 remains wait for productive complete user acceptance; product WP-0008/WP-0010 retain their broader open tasks. Product receipt: docs/release/sharing-portability-review-2026-10-08.md.

T05 — Deliver the identity-binding and operator-export image

id: RAPPS-WP-0015-T05
status: done
priority: high
needs_human: false
decision_id: "75b94bb6-4709-495f-91fe-43e53e2867ed"
intervention_note: "Founder executed9f1daf6c; revision19 and complete independent postflight, source/helper/values reconciliation and current-point consumer recovery/export are verified. No rerun required."
state_hub_task_id: "9f657a95-ce0e-5805-b754-a64e38827c73"

Owner execution dependency for CSOC-WP-0012-T03 and CSOC-WP-0015-T04. This is separate from completed storage release 5fd7ccd8 and date correction 47829c7a. Candidate source 23ffe2c/image 522bcd7f is published and packaged-source verified; 441 source tests and 25 packaged identity/export tests pass. The retained isolated recovery verifies 85 client files and 40 owner/40 outsider views without app overlays. Current production remains revision 18/image 51281946; default live Helm values are unchanged until the verified execution return.

Prepared separate image-only launcher/node/probe, candidate values and snapshot pin. The controller requires both existing slug constraints and migration 0003, compares complete business/migration-history/content fingerprints, makes a fresh admitted primary backup/readback, then performs atomic Helm upgrade and postflight. Rollback verifies the previous live specification, Ready replica and recognized helper; no data restore/schema downgrade or automatic replay. The old storage launcher is not reused. 19 synthetic safety tests, Ruff, compile and Helm lint pass.

Sealed read-only preflight 9f1daf6c passes at 2026-10-31T03:41:35Z: revision 18, 12 business tables/92 rows/86 files, exact migration history, unchanged helper pins, CPU 68%/memory 76%, image-only chart/server-preview checks and no Argo adoption. The expected live spec preserves the unmanaged restart annotation; raw kubectl apply remains dry-run only. Receipt: docs/evidence/2026-10-31-coulomb-image-release-preflight.json. Founder packet: coulomb-social/docs/release/identity-export-release-review-2026-10-31.md. The new execution has not occurred. No node helper, Helm release, timer or data changed. Existing recovery rehearsal predates the date correction; independent retrieval/restore/export of the new execution point remains consumer follow-through.

Done when founder execution and independent postflight are verified, the native receipt and actual image/helper pins are reconciled into owner/product source, and the product records reference that exact release. This does not accept the remaining productive journeys or service/offboarding obligations for the consumer.

2026-10-31 handoff: controller commit 84a5aa0 is published on owner main. The canonical workstation launcher reproduces proposal 9f1daf6c with live_changes: false; the founder packet is ready for attended execution. Consumer follow-through remains CSOC-WP-0012-T03 and CSOC-WP-0015-T04.

2026-10-31 founder image-release return: proposal9f1daf6c completed at07:15:24Z, Helm revision19/image522bcd7f. Independent complete-spec/Ready/identity checks, all80packaged source hashes, unchanged92business rows/86files/migration history, 40owner renders/40outsider denials, public endpoints and refreshed helperdcc8dd2a all pass. Live owner values/product pins are reconciled. Fresh07:13 primary point is mirrored, independently retrieved and restored (13tables/114rows/86files); packaged client export verifies85files without source mutation. Full make check 441passes, zero skips. Release decision75b94bb6 is resolved only for that exact execution; RAPPS-WP-0015-T05 is complete. Productive flow and service/offboarding acceptance remain open. Return: docs/release/identity-export-release-return-2026-10-31.md.

T06 — Preserve private custody when freezing future release evidence

id: RAPPS-WP-0015-T06
status: done
priority: high
needs_human: false
state_hub_task_id: "5357f194-ae4d-599e-9a87-08e8d585a124"

Source correction for CSOC-WP-0012-T13 after backup installation preflight exposed 0755 intermediate capsule directories from completed releases. The current image controller creates each component with mode0700 through no-follow directory file descriptors, checks private ownership/mode and refuses unsafe existing state. It does not chmod historical directories or replay the completed release. Files remain0600. The old storage capsule remains frozen; it is not a current release path.

Validation: 24 focused release safety cases pass, including a nested chart under umask022 and refusal of broad, symlinked, ancestor-symlinked and non-directory parents without mutation. Ruff and git diff --check pass. Product receipt: coulomb-social/docs/release/backup-producer-custody-validation-2026-10-31.json. The historical eight-entry repair and recurring service acceptance remain product T04/T09. No cluster operation occurred; future release proposals bind the new source.

T07 — Deliver the combined content and author attachment release

id: RAPPS-WP-0015-T07
status: wait
priority: high
needs_human: true
wait_kind: human
blocking_reason: "Combined packet e96752ec passes full native preflight after independently verified inactive installation8f442bf0; founder-terminal execution and independent return remain required."
depends_on:
- CSOC-WP-0012-T08
state_hub_task_id: "8f448934-bdfe-539f-8cab-a739ec752491"

Deployment-owner follow-through for CSOC-WP-0013-T05. Candidate source f306dbf is published at sha256:d3f2f5bb90f0ba79f4e1d8098d2eb06f8940b8789e5ecb851914bbab364597ec. Only packaged pageops.py differs from verified revision19/image522bcd7f. All80 packaged sources match the commit; Python/runtime distribution versions match; no migration is added. Product full gate546 and packaged lifecycle29 pass. The previous image reproduces exactly four partial-attachment recovery failures under real child-process exits. Product evidence: docs/release/content-lifecycle-candidate- {build,provenance,tests}-2026-10-31.json and the baseline-tests receipt.

Prepare an exact current-target image-only packet using the existing release controller, including its private directory fix from T06. Verify current release, full dataset/migration fingerprints and complete candidate/previous-image recovery checks. Bind fresh paired rollback capture, postflight and snapshot image-pin refresh. Keep historical capsules and existing pending backup repair/installation/ route packets intact. Then obtain the attended execution and independently verify its durable return. Current verified revision19 remains authoritative until that return; no image deploy is implied by publication. Productive review stays with CSOC-WP-0013-T05/T03. Retention policy c3a191f2 is accepted; no cutoff or purge was authorized. Do not replay the completed identity image release.

2026-10-31 preparation return: exact20-member proposal sha256:c9c3231620721ef3ea9b2bf22fc6c62fe3ed8efb91386cf7ec96acc6959dae08 is prepared with a separate plan/values/snapshot/evidence set. The existing launcher accepts an explicit reviewed plan; historical frozen capsules stay intact.40 controller tests, Ruff and Helm lint pass. Native image-only server preview preserves the complete current specification and unmanaged metadata. Candidate/previous-image checks on the independent07:13 recovery point render40owner pages, deny40outsiders, verify85export files, and preserve all13tables/86files. Current target remains revision19;93business rows reflect a new session plus login timestamp changes. Content and migration history match the retained point; private values are not exposed.

Ordering is material: the pending installer8f442bf0 pins snapshotdcc8dd2a. Deploying this image first would stale that reviewed packet. The new controller therefore requires that exact completed installation receipt and currently inactive/disabled backup units before creating its release journal, then pins all12 installed Python helpers. Native full preflight correctly refuses the absent installation receipt; it is not a pass and no image execution occurred. Historical custodyfa2763d1, route4d848106 and installer8f442bf0 packets are unchanged. After their returns, re-run the full image preflight before admitting execution; finish native service proof/schedule activation afterward. Consumer review commands and exact scope: coulomb-social/docs/usecases/sharing-portability-review.md, lifecycle release section. Evidence: content-lifecycle-release-{target,row-drift,preflight,proposal,preparation} JSON files in the consumer docs/release directory. T07 is now external wait for T08; product policy is settled, and productive lifecycle acceptance remains open.

2026-10-31 combined candidate: the route and inactive installation now have founder-executed independent returns. User requested plain attachment actions, including author add/remove (product decision78175c34), and accepted the three custom-topic rendering cases for now. The new source1139a6d combines the original crash-recovery correction, ordered-list starts and revisioned attachment actions. Image7906f461 has exact packaged provenance and unchanged runtime dependencies; no schema migration. Main gate670, isolated source gate568 and packaged110 pass. The retained independently recovered pair remains unchanged across candidate/old 40owner/40outsider views and85file selected-client export, all13tables/86files.

New immutable plan: release/coulomb-content-acceptance-1139a6d.json. Exact proposal: sha256:e96752ecfa7adef2fd1d9da48902c8e63de124ccfd272fe20ba79b758b3ca4a3. Full native read-only preflight passes at revision19 with unchanged93business rows/86files, complete desired specification, Helm/server previews, installed source prerequisite and inactive units. Historical c9c32316 remains unchanged; use the new combined proposal only. Founder-terminal execution remains required. The reviewed action captures a fresh pair before atomic Helm rollout and refreshes the snapshot image pin after unchanged-data/view checks. No timer activation, production restore, purge or mail. Productive acceptance remains with WP-0013. Review/command: coulomb-social/docs/release/content-acceptance-review-2026-10-31.md.