Land CSOC-WP-0006 PageOps: member space/page CRUD, copy, transfer

Thin CONTENT_ROOT content plane (ADR-0003/0004) with space visual field,
product UI for Title/Abstract/Visual, page list sidebar, and tests. Update
capability model and smoke checklist; mark WP-0006 finished.
This commit is contained in:
tegwick 2026-08-13 12:46:39 +02:00
parent 00dbb86c93
commit affed64839
24 changed files with 1812 additions and 151 deletions

View file

@ -64,6 +64,24 @@ kubectl -n coulomb-social exec deploy/coulomb-social -- \
| Session details | profile menu diagnostics (no secrets) |
| Refresh content | re-fetch after git edit (or webhook) |
### Stage-1 PageOps smoke (CSOC-WP-0006) — local / after deploy
Content plane: `CONTENT_ROOT` (default `var/content/`) with
`spaces/<slug>/pages/*.md`. Forgejo binding remains optional fallback.
| Step | Expected |
|------|----------|
| `/app/`**New space** | create with Title, Abstract, Visual → detail |
| Space **Edit** | update Title/Abstract/Visual; index frontmatter stays in sync |
| **New page** | Title/Abstract/Visual + markdown body on content plane |
| Page list sidebar | lists index + pages; switch with `?page=` |
| **Copy** | independent slug/title; optional other destination space |
| **Transfer** | page leaves source space, appears in destination |
| **Delete** (non-index) | page removed; index cannot be deleted |
| **Archive space** | hidden from list; soft-archive tree under `.archived-*` |
| Tenant isolation | other tenant 404 on detail / page mutations |
| `make test` | includes `tests/test_pageops.py`, `tests/test_space_crud.py` |
## Case matrix (CSOC-WP-0003-T04)
| Case | Status |