coulomb-social/docs/session-pickup.md
tegwick 57a329949f Audit actual scope and implement safe corpus transfer tooling
Assistant: codex
Assistant-Model: gpt-6.1-sol
Assistant-Session: 01a10e2d-a5ef-7e92-b03d-b1694e915680
2026-10-06 09:54:33 +02:00

4.2 KiB

Current pickup — 2026-10-06

WP-0007 audits scope and implements validated corpus import with explicit identity membership mapping. WP-0008 tracks live persistence/restore, actual cohort migration and access/cutover acceptance. Public registration residual CSOC-IN-0001 is closed (2026-08-14 evidence); CSOC-IN-0002 is closed with independent replay and same-email identity separation regressions. CSOC-IN-0003/0004 remain open.

Read SCOPE.md, history/20261005T223104Z-scope-intent-assessment.md and docs/migration/corpus-import.md. Run the tests and import dry-run before any private corpus work. The older pickup below is historical and does not override current work records or authorize deployment.


Session pickup — coulomb-social

Last closed: 2026-08-13
Domain: communication · Repo: coulomb-social
Hub topic: 36c7421b-c537-4723-bf75-42a3ebc6a1dc

Where we left off

All numbered workplans CSOC-WP-0001…0006 are finished. Stage-1 product path for spaces/pages is in code; one Bubble space was rehearsed onto the thin content plane. No active workplan — next work should open a new WP or pick up an intake residual.

Just landed (git main) Ref
PageOps CONTENT_ROOT + member CRUD / copy / transfer CSOC-WP-0006 · affed64
import_content_tree + reichelag rehearsal write-up CSOC-WP-0001-T04 · 8447943
ADRs 0003/0004, Bubble export tooling (local XDG) earlier commits

Start next session

cd ~/coulomb-social
cat .custodian-brief.md
cat docs/session-pickup.md          # this file
ls workplans/
curl -s "http://127.0.0.1:8000/messages/?to_agent=coulomb-social&unread_only=true" | python3 -m json.tool
make test                           # expect green

Local content (gitignored):

Path Role
var/content/ default CONTENT_ROOT
var/content-rehearsal/ reichelag import smoke (optional; recreate via import)
~/.config/coulomb-social/auth/ Bubble session + corpus (secrets/private; never commit)
…/exports/corpus-202608131015057/trees/reichelag/ sample ADR-0004 tree

Re-import rehearsal:

export CONTENT_ROOT="$PWD/var/content-rehearsal"
uv run python manage.py import_content_tree \
  ~/.config/coulomb-social/auth/exports/corpus-202608131015057/trees/reichelag \
  --tenant tenant:coulomb --member-subject <subject> --replace
  1. Deploy stage-1 to app.coulomb.social
    Ship PageOps + migration 0002_space_visual + CONTENT_ROOT volume; smoke create space/page on the live host. Runbook: docs/deploy.md, docs/identity/smoke.md (PageOps section).

  2. Multi-space bulk import residual
    Walk full local corpus (71 spaces / 109 articles); deepen thin-space crawl if needed; document lossiness. Command already exists: import_content_tree.

  3. New workplan — authoring / content-plane git
    Thin-git commit/push path; outline explode/implode; live includes (see docs/architecture/, capability model features still todo/partial).

  4. Platform-gated residuals (not blocked on this repo alone)

    • CSOC-IN-0001 — public Create account when NK registration URL lives
    • CSOC-IN-0002 — identity negative matrix after Case B
    • Bubble members → NetKingdom membership map (no password import)
  5. Apex cutover — still not next; needs product parity + registration + deliberate founder gate (docs/decisions/2026-08-12-feature-cut-stage-1.md).

Do not re-do

  • Re-inventory Bubble public meta (empty types) — use session export path
  • Re-open stage-1 must-set without founder decision
  • Commit Bubble corpus trees or ~/.config/coulomb-social/auth/**

Key docs

Doc Why
docs/capability/model-v0.yaml Stage-1 feature statuses
docs/migration/rehearsal-reichelag-2026-08-13.md Lossiness table
docs/adr/ADR-0003-*.md / ADR-0004-*.md Page SoR + thin git
docs/intakes/csoc-residuals.md Open intakes

Pleasure note

Long chain through assessment → ADRs → export → PageOps → import rehearsal. Rebuild on app.coulomb.social can grow from an empty store; Bubble stays reference + export source until a future parity gate.