Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a192e9-c28b-7533-bf25-e2341364c22a
34 KiB
| id | type | title | domain | repo | status | owner | topic_slug | created | updated | origin | origin_ref | state_hub_workstream_id |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| CSOC-WP-0014 | workplan | Further cohort reconciliation and Bubble off-ramp | communication | coulomb-social | active | codex | coulomb-social | 2026-10-08 | 2026-10-31 | residual | CSOC-WP-0008 | db6b85dc-f2f0-5283-ac52-3a6af28eb5b5 |
Residual acceptance from CSOC-WP-0008, split at the user's request. Existing implementation/release/acceptance evidence remains in the originating workplan; these tasks own the remaining concrete outputs. Source checks never grant runtime or productive acceptance.
Current execution map — 2026-10-31
T05 records completed capture/tooling preparation; T08 adds verified private Visual capture and draft-tree materialization. T04 now closes the independently verified accepted-cohort date correction. T01 still owns source exceptions, currentness and identity/grant/assets reconciliation. Remaining date verification is T06 and actual further-cohort migration is T07. T02 productive journey/transfer verdicts and T03 the separate cutover decision remain open. Bubble login renewal is currently cleared; four source graph exceptions and one unassigned record remain.
The four-workplan assessment records the scope split and effort estimate. Task counts are not effort percentages. Historical notes retain the evidence trail; this map and the task blocks govern current status. No original acceptance requirement has been dropped.
T01 — Reconcile retained inventory and nominate the next cohort
id: CSOC-WP-0014-T01
status: progress
priority: high
needs_human: true
intervention_note: "Fresh source session verified on 2026-10-31. Four source graph exception groups still need original content/date evidence or explicit disposition: ~/.config/coulomb-social/auth/exports/source-exception-review-20261031/index.html. The user-confirmed Add attachment modal yielded two verified files; private review is ~/.config/coulomb-social/auth/exports/attachment-bundle-20261031/attachments-index.html. The four reviewed scrap relations are explicitly omitted as obsolete legacy data under resolved decision6db14274; they no longer require capture or review. The additional example and two attachment child records need source reconciliation. Bounded capture is terminal; no further login renewal is currently required."
state_hub_task_id: "0002882d-f156-5a5d-b524-d04793f4684d"
Treat 71-space/109-article capture as inventory, not bulk-import authorization. Reconcile fresh/private source, identity and explicit grants, retained/discontinued workflows and assets/links. ReichelAg weekly-call cohort is already live and accepted. Record exact next nominated cohort and non-secret lossiness evidence.
2026-10-27: User specifies all coulomb.social spaces as the eventual migration scope, using deterministic tooling to minimize token cost and LIFO guidance (newest space creation first). Preserve original creation dates of spaces, pages and every chunk. Decision: 4aab0481-8597-5e47-bc8c-46e8d3b524ed. This supersedes the need to nominate just one next space; productive workflow/cohort review and host cutover remain separate gates.
Implemented offline source-hash-bound planner for every captured space, deterministic creation-date ordering/ties and recursive chunk closure with missing-date/body/ reference gaps. Retained capture: 71 spaces, 109 articles; 60 captured graphs complete, 11 with gaps, no unassigned captured articles. This old capture does not prove current source completeness. Import restores source space creation date in SQL and retains page/chunk source date metadata through edit/reimport. Missing or invalid dates refuse before writes. User renewed the Bubble session. Fresh capture exposed numeric-prefixed LOOKUP references; both normalizers now handle them. All-visible-space discovery now uses exact-root cards and visible titles, fresh-source checkpoints and step diagnostics; the live pass is progressing without navigation failures. Prior metadata is used only to guide LIFO ordering, never to seed older article bodies. Next: complete fresh capture/reconciliation, deterministic all-tree conversion, asset/link reconciliation and restartable per-space receipts before productive import. No bulk import performed.
2026-10-27 follow-through: the all-visible pass checkpointed 70 visits but timed out before its final index; records were preserved as partial. Bounded targeted reference continuation completed 34 visits, yielding 70 fresh spaces/162 articles. All 71 known spaces remain queued (67 captured graphs pass), with one stale space, body/date gaps, cross-space chunk relation and one unassigned article explicitly unresolved. No old body seeding, date fabrication or productive import. Native response read bounds/checkpoints now prevent the observed drain stall. Evidence: docs/release/bubble-capture-reconciliation-2026-10-27.json. Next: deterministic all-tree preparation, asset/link reconciliation, source exceptions and explicit tenant/identity/grant mapping before stepwise LIFO cohort transfer.
2026-10-28: Offline all-tree compiler now retains all 71 known spaces in LIFO order, emits 67 draft review trees and preserves every captured text body exactly in private sidecars, including blocked/unassigned records. Proposed slugs derive from source IDs and remain stable across renamed labels/new records. Exact input snapshots, file/body hashes and raw/UTC date manifests bind preparation to source. No import manifest, grants, body rewriting, asset fetching or productive import. Markdown/reference/HTML/Visual link inventory, ambiguous target candidates, unsupported constructs, attachments and contents relations remain explicit review gates, with no exhaustive-parser claim. Contents relations revealed 33 previously uncaptured article references. Targeted continuation completed 57 visits, capturing 244 articles/241 bodies; five references and one response timeout remain recorded. All four prior per-space graph exceptions persist. Non-secret counts/hashes: docs/release/bubble-offline-preparation-2026-10-28.json.
2026-10-30 source recheck: the retained targeted reference capture is terminal
(completed_reference_pass), with 244 articles and five remaining references.
The saved Bubble browser state fails its local usability check; no new browser
capture or server-session acceptance is claimed. Requested renewed attended login
through the existing capture-auth-state.sh workflow; original private checkpoints
remain untouched. No guessed body, date, grant or source exception was substituted.
2026-10-31 renewed-session continuation: the saved session passes local freshness and Bubble opens the signed-in pages view. Five targeted visits recovered one additional article with its body/date: 245 records/242 bodies. Direct-page inspection also identified the initialization-data endpoint missing from the collector; typed space/article initialization is now captured, while user/session envelopes, foreign origins and mismatched identities are excluded. Empty source records do not become invented empty bodies. Twelve synthetic guards and full make check 396 passes verify the change.
The corrected four-reference pass is terminal with no response timeouts. Four
references remain: native initialization returns two empty records, one dated
record without a body field, and one complete article whose referenced space
remains incomplete. The current UI lists all 70 known roots; no new or changed
article fields were found in that list. This does not prove all source records
are captured. The rootless 71st space remains inventory-only; four space graphs
remain blocked by source dates/bodies, cross-space chunk ownership or freshness.
All 71 spaces remain in scope and 67 draft trees are retained. The unassigned article
also remains retained and unresolved. Private review groups
are at ~/.config/coulomb-social/auth/exports/source-exception-review-20261031/index.html.
Original source evidence or explicit dispositions are needed; deletion, an empty
body and new grants have not been inferred. No productive import occurred.
Evidence: docs/release/bubble-source-continuation-2026-10-31.json and its source
manifest. T01 remains progress; the login-renewal gate is cleared.
2026-10-31 access reconciliation: a hash-bound offline inventory now separates
observed, missing, null, empty and unresolved access fields across all 70 fresh
space records and 245 article records; the retained 71st space remains explicitly
inventory-only. Source references normalize to three distinct principals. Nine
Created By references cannot be normalized; absent membership fields remain
unknown rather than empty grants. Space privacy and article visibility each have
two observed values, whose authorization semantics are not established by this
capture. The October 6 accepted import admits tegwick as owner of ReichelAG only;
it does not establish a general source-account or role mapping for other spaces.
Private per-record review: ~/.config/coulomb-social/auth/exports/access-review-20261031/index.html.
Aggregate proof: docs/release/bubble-access-audit-2026-10-31.json. No target
identity mapping, grant proposal or import manifest was inferred. T01 remains
progress until source exceptions and the actual identity/grant/assets/link
reconciliation are resolved; no extra completion task was added for this audit.
2026-10-31 body-resource follow-through: all 18 distinct captured body-link entries
(28 occurrences on one article) retain exact reference attributes through the
current product Markdown/sanitizer path. All 242 captured bodies and 236 prepared
article pages match source bytes; the compiler reproduces all 545 original draft
files unchanged. Destination availability and original Bubble appearance were not
tested. Four _list_custom_scrap fields contain deferred LOOKUP strings rather
than captured record lists. Preparation now retains these values privately and
marks them as unresolved, including an explicit affected-space blocker. They are
separate from the one attachment-flagged article. The immutable original and Visual
bundles remain untouched; the supplemental private report records the new blockers.
Proof: docs/release/bubble-body-resources-2026-10-31.json. Actual scrap/attachment
capture or disposition, identity/grants, source exceptions and productive transfer
remain open. T01 stays progress; link serialization proof is not a transfer verdict.
2026-10-31 resource recovery attempt: 294 retained network documents contain no
typed scrap/attachment records. A fresh, bounded read-only visit of the five
affected articles returned all five parent records unchanged, but no typed
resources or empty-resource envelopes. There were 41 HTTP 200 source responses,
zero read timeouts and two response-read failures; this is not evidence that
resources do not exist. DOM inspection found no links to the four descriptor IDs.
After allowing the UI to settle on one scrap parent and the attachment parent,
the resource-related controls are Add attachment, which were not activated.
The observed read endpoints use encoded request bodies; no guessed lookup or
broader query was submitted. The operator has been asked where existing resources
can be viewed/downloaded, with all five original pages linked in the private
review above. No deletion, empty list or discontinuation inferred. Original
capture and Visual preparation are unchanged. Evidence:
docs/release/bubble-resource-capture-2026-10-31.json. T01 stays progress and the
existing source-resource gaps remain explicit until recovery or disposition.
2026-10-31 confirmed modal follow-through: the user identified Add attachment as both the add and download modal. Opening it and using Open file recovered two original files, one on the retained flagged page and one on the user-supplied example outside the original245article capture. Each UI download exactly matches an independent CDN fetch;2relations,2new attachment child records and original creation/modification timestamps are retained privately. All5previously flagged parent bodies/dates remain unchanged. The known parent draft now carries its attachment and date provenance; its body and existing metadata remain exact. The example stays separately retained pending source reconciliation. The4scrap relations remain unresolved; their empty attachment modals do not prove that scraps are absent. No source mutation, original-evidence overwrite, production import or productive verdict occurred. Capture and private preparation evidence: docs/release/bubble-attachment-recovery-2026-10-31.json. Private downloads/review: ~/.config/coulomb-social/auth/exports/attachment-bundle-20261031/attachments-index.html. All670full-gate checks and7synthetic resource guards pass. This clears the unknown attachment-modal navigation path; it does not waive the remaining source gaps.
2026-10-31 resumed audit: each of the4scrap-bearing pages opens its navigator, but none yields a typed resource record or a scrap control. The raw deferred references do not point to the parent or another captured article. This does not prove absence or obsolescence. A four-case private review now isolates the needed dispositions, under pending decision6db14274-4450-4ae2-b77a-cd4c88369eaa: ~/.config/coulomb-social/auth/exports/scrap-review-20261031/index.html. Public receipt: docs/release/bubble-scrap-navigation-2026-10-31.json. The additional example/attachment records are not referenced by the original reconciliation, so they cannot silently resolve its prior source graph exceptions. The exact image proposal still has no durable execution receipt; no live release or productive acceptance is inferred.
2026-10-31 explicit user disposition: “Lets ignore the scrap cases as they are legacy relicts that are no longer needed.” All four reviewed cases are accepted intentional omissions, under resolved decision6db14274-4450-4ae2-b77a-cd4c88369eaa. Their obsolete scrap content is outside migration/content acceptance scope; no further scrap capture or verdict is required. The exact four-case manifest and raw-reference hashes bind this disposition. Original source evidence, existing page bodies/dates and the two recovered attachments are retained. Other source exceptions, release delivery and productive acceptance are not waived. Public receipt: docs/release/bubble-scrap-disposition-2026-10-31.json; exact private mapping: ~/.config/coulomb-social/auth/exports/scrap-review-20261031/disposition.json. The earlier unresolved-scrap notes are historical and superseded by this return.
T02 — Review remaining journeys and record transfer decisions
id: CSOC-WP-0014-T02
status: todo
priority: high
state_hub_task_id: "9257e4df-4b34-5127-9485-0118b9c203b8"
Maintain docs/usecases/catalog.md confidence and stable UC IDs. Privately compare original/rebuild actor steps for UC-001–007 and user-prioritized hierarchy/discovery/social/marketplace candidates; register synthetic regression contracts when established. Each productive transfer needs a user verdict; reject/gap/defer becomes live work.
T03 — Decide service and host cutover for accepted cohorts
id: CSOC-WP-0014-T03
status: wait
priority: high
needs_human: true
decision_id: "186be722-e2c7-4109-a1e6-d120fe8fca5b"
intervention_note: "Existing cutover decision 186be722-e2c7-4109-a1e6-d120fe8fca5b remains open, after WP-0012 recovery/service and WP-0013 privacy/content returns."
state_hub_task_id: "599b4b6a-829d-5fe5-b52d-ff419e548fa8"
Depends on WP-0012 service/recovery and WP-0013 privacy/content returns. Link service contract §§1–6, current registration Case B, cost/SLO/provenance and accepted differences. Existing open decision186be722-e2c7-4109-a1e6-d120fe8fca5b is retained here for the cutover return, not resolved by closing WP-0008. Retain parallel hosts until an explicit cohort/apex decision; Bubble retirement requires all retained use cases transferred or explicitly discontinued.
T04 — Preserve original dates in the accepted live cohort
id: CSOC-WP-0014-T04
status: done
priority: high
state_hub_task_id: "3018caa3-0f7b-5cc4-85e9-4dc4f41be9f7"
needs_human: false
Current scope after the October 31 tracking audit: The accepted-cohort correction and independent per-source-ID postflight are complete. The original requirement covering every remaining tree/page/chunk and its productive verification continues in live task T06. All-space transfer remains T07. Do not replay the completed date command.
Earlier dated notes below are retained as history, not the current task state.
User requirement from 2026-10-27 (decision 4aab0481-8597-5e47-bc8c-46e8d3b524ed): preserve creation dates of spaces, pages and every chunk. Import now restores SQL Space.created_at and preserves page/chunk source timestamps, requiring them throughout Bubble trees before writes. Tests include missing index/date refusal, timezone-aware/epoch dates, edit/reimport preservation and rollback. Do not invent dates from IDs or mtime.
Still required: resolve remaining tree/source-date exceptions and verify the
per-source-ID date manifest on the productive target. Backfill the
accepted cohort's missing original space date without replacing its content or
losing post-transfer edits, copies or aliases. Source provenance on copied local
pages is not authority to overwrite those copies during a bulk reimport. Current
candidate 17d0eb6 includes the stricter date guard (WP-0013 proof); guarded rollout
still requires paired rollback/recovery evidence.
Do not close on source-level tests alone.
2026-10-28: Draft indexes keep space creation dates separate from their source root article; every article/chunk retains its own dates and ordered relations. Actual private-capture rehearsal imported all 67 draft trees into isolated SQLite with a synthetic owner, outgoing network disabled and no productive identities or grants. All 235 included pages/chunks retained exact file/body hashes and original creation dates; all 67 SQL space dates matched. Six captured text bodies outside those trees remain in the private source sidecars. Evidence is the hash-bound rehearsal embedded in bubble-offline-preparation-2026-10-28.json. This proves draft conversion/import date preservation, not rendering, source completeness, live acceptance or accepted-cohort backfill. Existing live content is untouched.
2026-10-28 accepted-cohort reconciliation: authorized read-only application metadata observation found 39 pages in the accepted space: 36 imported articles, its index and two local pages. All 36 article creation dates match fresh source; no article dates need correction. The old index uses a prefixed LOOKUP source ID, now correctly normalized to its fresh source space. Its missing source creation field and SQL insertion-time creation date need two targeted corrections. Implemented an offline, hash-bound planner requiring explicit SQL/tenant/slug/ source selection. It proposes only SQL created_at and index-field insertion; local edits/copies, every body/asset/alias and grants remain untouched. Duplicate article provenance is audited, never used as overwrite authority. Existing date conflicts/missing source are review blockers. Actual plan has zero date blockers, 36 matching article dates and two excluded local pages, ready_to_apply false. Evidence: docs/release/accepted-source-date-reconciliation-2026-10-28.json. No productive backfill performed; fresh paired rollback/recovery point, quiescence, live hash/SQL preconditions and postflight remain required.
2026-10-29: Added a deterministic byte-preserving index-date patch compiler and rehearsed the exact private accepted-cohort plan against the independently recovered real pair. Only the selected SQL creation date and a disposable index copy changed. Full table comparison and all 82 file hashes prove unrelated rows, grants, 38 other pages and local edits unchanged. Reverse and transaction rollback restore the baseline; stale SQL preconditions refuse replay. The patch module was explicitly overlaid on the packaged image; it is not yet deployed. Evidence: docs/release/source-date-backfill-rehearsal-2026-10-29.json and its companion review note. Production is untouched. A supervised quiesced executor with a durable cross-store recovery journal and fresh backup binding remains required.
2026-10-30: Added a durable cross-store date journal primitive. Intent is fsynced before SQL/file mutation; pending recovery uses committed SQL to restore or finish the byte-preserving index patch and refuses later edits. Private journal storage, complete selected-page hashes, SQL row locking, replay refusal and file ownership/ mode preservation are enforced. Actual child-process exits at intent/SQL/file/ commit boundaries recover correctly on both SQLite and disposable PostgreSQL; 30 focused planner/journal cases pass. No productive/recovered dataset was changed. Review/evidence: docs/release/source-date-journal-review-2026-10-30.md and source-date-journal-rehearsal-2026-10-30.json. The supervised wrapper, verified writer fence, fresh backup binding, recovered-real-pair rehearsal and productive postflight remain required; this primitive does not establish those prerequisites.
Recovered-pair follow-through: scripts/rehearse-source-date-journal.py now verifies the native internal/no-published-port database boundary and uses a fresh disposable PostgreSQL template clone plus copied files. All four real process deaths reconcile correctly on the exact private accepted-cohort plan. Every case compares all 13 tables and 82 files; normal commit changes only the selected SQL date/index and replay refuses. The retained recovery SQL and files remain identical and the disposable clone is removed. Proof: docs/release/source-date-journal-real-pair-2026-10-30.json. Source overlays remain explicit; no new image, productive date correction or admission is inferred. The journal's real-pair rehearsal is complete; the external supervised wrapper, fresh verified backup/fence and productive postflight are still required.
2026-10-30 whole-store executor follow-through: added date_backfill_operation.py around the journal core. It validates exact fresh backup metadata, binds all SQL rows/content-file hashes, takes the existing content lock and all-public-table PostgreSQL exclusive locks, and checks the only permitted date/index delta at SQL/file/commit boundaries. Reconciliation retains the original backup binding even when old and refuses unrelated drift. Extended native recovered-pair tests prove four real process deaths, original-binding recovery a day later, SQL/file/ busy-writer refusal, blocking of a second PostgreSQL writer, successful commit and replay refusal across all13tables/82files. Source remains unchanged; clone removed. Proof: docs/release/source-date-operation-real-pair-2026-10-30.json. The historical metadata clock is explicit; no fresh native backup, external fence, release or productive correction is implied.50 focused and364 full gate cases pass, zero skips. The exact supervised node wrapper, live backup/source bookends, pinned helper/PVC admission, durable journal placement and operator postflight/resume remain open.
2026-10-30 supervisor follow-through: added exact private capsule preparation,
read-only native target observer and founder-terminal node supervisor. The wrapper
binds the physical node/PVC/deployment/Helm/image, source and full dataset, checks
fresh admitted capture/readback bookends, fences application/PVC writers, and runs
the operation through a pinned helper with a durable private host journal. Explicit
recovery handles original-operation busy state, pending/terminal journal outcomes,
lost create/delete/apply/resume replies and terminal helper replacement without
replaying apply or overwriting post-resume writes.19 focused cases pass. Review:
docs/release/source-date-supervisor-review-2026-10-30.md. Native observation and an
admitted date capsule must follow the still-pending storage release; none exists
for production yet. Source/rehearsal completion does not finish this task.
The real helper protocol and controller now pass normal completion and a lost
post-commit reply on disposable recovered-pair clones. Both cases compare all13
tables/82files and recover without a second apply/capture; originals are unchanged
and clones removed. Kubernetes/root/provider actions are explicitly simulated.
Proof: docs/release/source-date-supervisor-rehearsal-2026-10-30.json.
make check:383 passed, zero skips, including required browser journeys.
2026-10-31 current-state follow-through: storage proposal5fd7ccd8 is founder executed and verified atrevision18. Native observation of the selected accepted space sees40pages. The refreshed plan uses the exact prior244article source snapshot; selection, original date, index hash and two operations are unchanged. All36imported dates match and3local pages, including the newly added page, are preserved. Native capsule47829c7a binds revision18/image51281946 and the complete 13table/114row/86file baseline; server admission/dry-run and full-state checks pass. Current recovered-pair real helper/controller normal and lost-commit-reply cases compare13tables/86files, settle with one apply/capture and preserve originals; Kubernetes/root/provider capture remain simulated there. Full make check396passes. Exact founder action awaits decision5eec458c-0f43-483d-a13c-a9d739ea6b08; packet docs/release/source-date-release-review-2026-10-31.md. No date changes, new live capture, writer fence or live helper occurred during preparation. Further tree/ source-date exceptions and per-source productive verification remain in this task.
2026-10-31 native execution accepted: founder proposal47829c7a completed02:10:42Z with correction_status completed and application resumed. Independent native postflight validates the frozen capsule/journal, current exact13table/114row/86file expected fingerprint, original selected SQL/index dates, every other original index byte, absent helper and sole Ready writer.40owner-page/outsider checks and public health pass. A private per-source-ID productive manifest verifies all36 source article dates/bytes and preserves3local pages; public hash/count proof is docs/release/accepted-cohort-date-manifest-proof-2026-10-31.json. Root receipt and postflight are in docs/release/source-date-{receipt,independent-postflight}-2026-10-31.json. Decision5eec458c-0f43-483d-a13c-a9d739ea6b08 is resolved from actual founder execution. Accepted-cohort correction is complete; remaining tree/source-date exceptions and their productive verification keep T04 progress. T01 needs renewed Bubble access; no broad import, source exception resolution or transfer acceptance is inferred. The old date command must not be replayed.
T05 — Capture retained inventory and prepare deterministic draft trees
id: CSOC-WP-0014-T05
status: done
priority: high
state_hub_task_id: "f1c11eb8-20c4-576f-88b8-6b650b11e987"
Bounded all-space and reference continuation retain all 71 known spaces, 245 article records/242 bodies and 67 draft trees, with source hashes/date manifests and isolated import rehearsal. Four source graph groups plus the unassigned record remain explicit exceptions, not invented content. Evidence: docs/release/bubble-offline-preparation-2026-10-28.json and bubble-source-continuation-2026-10-31.json. This completes inventory/tooling preparation only. Source completeness and mappings remain T01; productive transfer is T07.
T06 — Reconcile and verify dates for every remaining source tree
id: CSOC-WP-0014-T06
status: progress
priority: high
state_hub_task_id: "56e17aac-da6a-5f29-9781-5a5ebdd7e022"
Remaining all-space scope split from T04. Preserve original space/page/chunk creation dates in every remaining tree and verify per-source-ID manifests after transfer. Resolve missing/conflicting dates through source evidence or explicit disposition under T01. Existing 67-tree isolated rehearsal and the completed accepted-cohort correction are evidence, not acceptance of all remaining cohorts. Preserve post-transfer local edits, copies, aliases and grants.
T07 — Transfer reconciled remaining cohorts and verify each return
id: CSOC-WP-0014-T07
status: progress
priority: high
state_hub_task_id: "26e9bbab-34cf-5616-94d4-61464027895c"
After each source/identity/grant/assets mapping is ready under T01 and content rules under WP-0013, prepare and execute the authorized stepwise all-space migration in the requested LIFO order with restartable per-space receipts. Verify content, original dates (T06), ownership, explicit grants, assets and links without overwriting later local edits. User productive transfer verdicts remain T02. All spaces are eventual scope; a draft tree is not a productive import. Cutover/retirement remains T03.
2026-10-31 preparation: the corpus command now has an opt-in private receipt directory for new-space imports. Completed boundaries can be resumed without reimporting completed spaces or overwriting their later edits/grants. Source, ordered manifest, mapped member IDs, database configuration and content root are bound to the checkpoint. An interrupted or uncertain space stops for explicit reconciliation; the helper does not infer rollback from an exception. Real process exit tests cover intent, committed SQL before receipt, and a completed boundary. See receipt review. This is offline implementation evidence. Source/identity/grant reconciliation, owner executor integration with writer fencing and a fresh paired backup, native deployment, per-cohort postflight and productive acceptance remain open. No further source cohort was imported into production, and the existing reviewed executor or release packets were not changed.
2026-10-31 uncertain-import follow-through: receipt mode now persists a reserved
Space UUID before writes and creates it exclusively, preventing an existing or
concurrently created same-slug SQL row from being updated/adopted. The new
inspect_content_corpus command classifies matching reserved commits, partial
stores, later edits, foreign identities and legacy unbound receipts without
changing content, SQL or checkpoints. It compares original source dates when
present, uses existing locks and a consistent read transaction, and explicitly
does not authorize retry or claim an external writer fence. Fifteen new cases and
the extended real process-exit inspection pass. Full make check:629 passes with
required browsers and no skips. Disposable PostgreSQL16.14 corpus/receipt/inspection
tests also pass with60 actual read-only/repeatable-read mode checks; all disposable
resources were removed. Review:
uncertain-import inspection.
T07 remains progress: concrete state reconciliation, supervised owner integration,
source/grant admission, native release/import/postflight and productive verdicts
are still required. No live cohort or approved executor was changed.
2026-10-31 matching-commit reconciliation: added an explicit operation that completes one uncertain checkpoint only when its reserved identity, source files, metadata and mapped grants match the exact reviewed inspection. It reacquires existing locks, uses a read-only SQL snapshot, makes destination files durable, rechecks state and atomically retains the original started unit and inspection with the completed checkpoint. It changes no SQL/content and refuses partial, foreign, changed, unbound or unattributed-staging states. Real process exits on both sides of replacement retain inspectable evidence; resumed imports preserve later edits/grants. Full make check passes 648 tests with required browsers and zero failures/errors/skips. Isolated PostgreSQL 16.14 also passes, with 243 read-only/repeatable-read transaction checks and disposable-resource cleanup. Review: matching-commit reconciliation. This advances preparation within T07, which remains progress. Other uncertain states, owner integration and verified external fencing/paired backup, cohort admission, native release/import and productive verdicts remain open. No live checkpoint, source cohort, grant or frozen execution packet was changed.
Completion
Finish when every task above has its stated evidence and acceptance, or hand off any newly discovered residual to a live work record first. Cross-owner dependencies remain their existing canonical records.
T08 — Capture and prepare the retained Visual images
id: CSOC-WP-0014-T08
status: done
priority: high
needs_human: false
state_hub_task_id: "b7464ad5-9087-54a9-b3da-991b87bcefc8"
Completed2026-10-31. The previous67-tree review bundle retained Visual URLs but left its Visual fields empty. Captured242 references through108 distinct HTTPS URLs on the single recorded Bubble CDN;90 distinct binary images are retained privately (168,139,156 downloaded bytes, including repeated content). No cookies, authorization headers, arbitrary origins or redirects are used. Private capture has per-image/aggregate limits and a final completion receipt; partial captures cannot be mistaken for completed output. No browser login renewal was needed.
A separate new bundle links local images on236 eligible draft pages and their67 space indexes. All71 spaces, unassigned records and original gates remain. An independent verifier checks738 output files against manifests, preserves all545 original files modulo303 Visual-only frontmatter changes, and proves unchanged bodies, original dates and all other metadata. All90 images decode in an offline browser. This does not establish original Bubble rendering fidelity, current source completeness, grants, or productive acceptance. Blocked/unassigned Visuals remain retained even when no draft destination exists. Original capture is unchanged.
Evidence: docs/release/bubble-visual-preparation-2026-10-31.json; private bundle ~/.config/coulomb-social/auth/exports/visual-bundle-20261031.24focused checks and full make check570pass, no failures/errors/skips; final verifier and Ruff pass. This extracts completed Visual preservation from T01/T05 without closing the broader mapping/transfer requirement. T01 retains18body links, one attachment flag, four graph exception groups, one unassigned record, source currentness, identity/explicit grants and destination reconciliation. T07 remains unstarted for productive transfer; T02/WP-0013 retain productive fidelity/verdicts.