Page saves keep every revision. An explicit purge drops only inactive revisions older than a timezone-aware cutoff, keeps live bytes and deleted page history, and stops if a stored hash does not match. Interrupted copies and moves resume from a journal without deleting a changed source or granting destination access. Private corpus review remains open. Assistant: grok Assistant-Session: 01a12cc2-e3b2-77a3-8aef-9cc60e577fee
3.6 KiB
| id | type | title | domain | repo | status | owner | topic_slug | created | updated | origin | origin_ref | state_hub_workstream_id |
|---|---|---|---|---|---|---|---|---|---|---|---|---|
| CSOC-WP-0013 | workplan | Sharing, portability and content-storage acceptance | communication | coulomb-social | active | codex | coulomb-social | 2026-10-08 | 2026-10-11 | residual | CSOC-WP-0008 | 70370f4e-7cba-5b0a-853b-fedcd2bd49a5 |
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.
T01 — Finish unambiguous storage enforcement
id: CSOC-WP-0013-T01
status: progress
priority: high
state_hub_task_id: "4d18a390-c82a-5d6b-8509-1b1704975150"
Decide and enforce the existing global-slug invariant at SQL/storage boundaries, including admin/import concurrency and legacy collision migration refusal. Preserve tenant/member denial and protected journeys. Prepare migration/rollback proof before a guarded rollout.
2026-10-11: spaces_space_slug_global_uniq is in the model and migration 0003.
The migration raises before adding the constraint when any slug is duplicated
and does not rename, merge, or delete those rows. Admin save, space create and
import map the constraint failure to the existing validation errors. Rollback
is manage.py migrate spaces 0002, which drops only the global constraint.
Tests cover parallel inserts, a missed import pre-check, an admin race,
inactive slug reservation, migration refusal, and the legacy fail-closed reads.
The live database has not been migrated.
T02 — Complete content fidelity and revision lifecycle
id: CSOC-WP-0013-T02
status: progress
priority: high
state_hub_task_id: "8d06cdee-e0ce-5c3e-bf98-705deed0ee62"
Review custom Markdown/raw HTML and body-linked assets with privately nominated corpus examples. Define revision retention/purge and failed multi-file copy/move crash recovery without losing source or incoming-address authorization. Current immutable revisions, stale-edit refusal, supported Markdown attachments and aliases are deployed; preserve them.
2026-10-11: Supported Markdown is fenced code, tables, newline breaks and sane
lists. Raw HTML, script, event handlers and non-http(s)/mailto URLs are removed.
Relative asset URLs stay. No private corpus has been nominated, so this is not
corpus acceptance. Revisions are not purged on save. purge_revisions deletes
only inactive revisions older than an explicit timezone-aware cutoff, keeps the
live page bytes, and keeps every revision of a deleted page. A hash mismatch
aborts the purge before any deletion. Copy and move write a journal under
CONTENT_ROOT/.recovery. The next content write finishes a confirmed move or
discards an unconfirmed destination. The source is deleted only when its bytes
still match the journal. Alias changes do not grant destination access. The
live content root has not been purged or recovered.
T03 — Review productive sharing and personal portability
id: CSOC-WP-0013-T03
status: todo
priority: high
state_hub_task_id: "8edd7661-17b0-5aa0-b177-6170aa159623"
Review owner Share space/revocation, reader/outsider denial, account-local export, successor ownership and local exit semantics with the user. Keep platform identity outside app deletion. Record UC-003/004/005/006 verdicts independently; weekly-call acceptance is UC-008 only.
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.