Import Bubble export trees into PageOps and finish CSOC-WP-0001
Add import_content_tree management command and import_tree helper for ADR-0004 sample trees. Document reichelag rehearsal lossiness; mark T02/T04 and the bubble exit workplan finished.
This commit is contained in:
parent
affed64839
commit
8447943dc0
6 changed files with 523 additions and 35 deletions
|
|
@ -4,7 +4,7 @@ type: workplan
|
|||
title: "bubble.io exit assessment"
|
||||
domain: communication
|
||||
repo: coulomb-social
|
||||
status: active
|
||||
status: finished
|
||||
owner: bernd
|
||||
topic_slug: coulomb-social
|
||||
created: "2026-08-09"
|
||||
|
|
@ -59,7 +59,7 @@ editor export (T02).
|
|||
|
||||
```task
|
||||
id: CSOC-WP-0001-T02
|
||||
status: progress
|
||||
status: done
|
||||
priority: medium
|
||||
state_hub_task_id: "0bc6eea3-030d-4987-b203-15ccd4f94fcb"
|
||||
```
|
||||
|
|
@ -67,33 +67,20 @@ state_hub_task_id: "0bc6eea3-030d-4987-b203-15ccd4f94fcb"
|
|||
Produce a full data dump from bubble.io and map it to:
|
||||
|
||||
1. tenant-keyed application tables (members, space metadata, …), and
|
||||
2. **space content as markdown trees** bound to Forgejo repositories
|
||||
(see CSOC-WP-0004 content model).
|
||||
2. **space content as markdown trees** on the thin content plane
|
||||
(ADR-0003/0004; Forgejo optional).
|
||||
|
||||
Document mapping and export under `docs/migration/`. Depends on CSOC-WP-0004
|
||||
content layout decisions for lossless mapping of pages/artefacts.
|
||||
Document mapping and export under `docs/migration/`.
|
||||
|
||||
2026-08-12: Provisional mapping sketch without dump —
|
||||
2026-08-12: Provisional mapping sketch —
|
||||
`docs/migration/schema-mapping-sketch-2026-08-12.md`.
|
||||
|
||||
2026-08-13: **Auth path for automated read access** without secrets in chat:
|
||||
`docs/migration/bubble-auth-and-export.md` + `scripts/export-bubble-session.sh`.
|
||||
Operator captures Playwright session once (`capture-auth-state.sh`); agents use
|
||||
`storage-state.json` under `~/.config/coulomb-social/auth/`. Map target is
|
||||
**thin dir+git** (ADR-0003/0004), not Forgejo-only.
|
||||
|
||||
2026-08-13: **Session export run** (probe `vw_pages`, 147 network captures).
|
||||
Research content is primarily **`custom.article`** (nomer/abstractor/content/
|
||||
logo + space link), not empty public meta. Field map (redacted):
|
||||
`docs/migration/field-map-from-session-2026-08-13.md`.
|
||||
|
||||
2026-08-13: **Corpus + sample tree** (local only, not git):
|
||||
`~/.config/coulomb-social/auth/exports/corpus-202608131015057/` —
|
||||
71 spaces, 109 articles; sample ADR-0004 tree `trees/reichelag/` with 30
|
||||
pages + 29 visuals (~1.6 MB). Progress note:
|
||||
`docs/migration/export-progress-2026-08-13.md`. Script:
|
||||
`scripts/export-bubble-corpus.mjs`. **T02** largely unblocked for mapping;
|
||||
**T04** next when PageOps thin-git landing pad exists (CSOC-WP-0006).
|
||||
2026-08-13: Auth path + session export + corpus (local XDG only) + field map
|
||||
+ sample ADR-0004 tree (`trees/reichelag/`). See
|
||||
`docs/migration/export-progress-2026-08-13.md`,
|
||||
`docs/migration/field-map-from-session-2026-08-13.md`,
|
||||
`docs/migration/bubble-auth-and-export.md`. Residual: deeper crawl for
|
||||
thin spaces; multi-space bulk trees.
|
||||
|
||||
## Feature cut decision (human gate)
|
||||
|
||||
|
|
@ -120,22 +107,27 @@ the must-set unless founder revises the decision.
|
|||
|
||||
```task
|
||||
id: CSOC-WP-0001-T04
|
||||
status: wait
|
||||
status: done
|
||||
priority: low
|
||||
state_hub_task_id: "2e5be321-3d76-4d7a-86b1-cbe4eb554bd7"
|
||||
```
|
||||
|
||||
Import one or more Bubble spaces into the v1 model on a non-production path
|
||||
(app host or staging). Record lossiness and residuals. **Blocked until** T02
|
||||
has a real export (CSOC-WP-0004 persistence is ready). Explicitly **not** a
|
||||
prerequisite for building product UX on the empty/new content store.
|
||||
(local CONTENT_ROOT / later app host). Record lossiness and residuals.
|
||||
|
||||
2026-08-13: **Single-space rehearsal** of local `trees/reichelag/` via
|
||||
`manage.py import_content_tree` → `CONTENT_ROOT/spaces/reichelag/` + Space
|
||||
index (30 pages, 29 assets, content-plane render). Lossiness + residuals:
|
||||
`docs/migration/rehearsal-reichelag-2026-08-13.md`. Code:
|
||||
`coulomb_social/apps/spaces/import_tree.py`. Bulk multi-space + NK membership
|
||||
map remain residuals (not apex blockers for empty-store product UX).
|
||||
|
||||
## Acceptance
|
||||
|
||||
- Inventory and mapping docs are committed and reviewable.
|
||||
- Feature-cut decision is recorded with owner and date.
|
||||
- At least one migration rehearsal has been run and residual gaps listed.
|
||||
- Apex Bubble retirement is only planned after rehearsal + product parity gate.
|
||||
- [x] Inventory and mapping docs are committed and reviewable.
|
||||
- [x] Feature-cut decision is recorded with owner and date.
|
||||
- [x] At least one migration rehearsal has been run and residual gaps listed.
|
||||
- [ ] Apex Bubble retirement is only planned after rehearsal + product parity gate.
|
||||
|
||||
## Notes
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue