Pinned publication revisions + "Cite this motif" #130

Open
opened 2026-07-15 20:35:38 +00:00 by claude-bot · 0 comments
Contributor

Feature idea (Fable ideation, rank #7) · Effort: M · Value: Med

Pitch
Snapshot a motif at publish time ("v1, 2026-07-15"), keep the public URL pointing at the pinned revision while she keeps working, and emit a copyable citation block (plain + BibTeX) on public pages.

Why it matters
Public pages are live database views - if someone cites a motif page and she reorganizes it next week, the citation dangles. For research meant to be referenced (the ActivityPub/publishing investment says it is), stable citable versions are table stakes; "what changed since I published" is also a useful diff for her own process.

How it fits
The raw material exists: audit_log stores full prev/next JSONB for every edit (migrations 002/009), and entry-level restore already reads it (routes/entries.ts ~214-246). Add a motif_revisions table (motif_id, revision, snapshot JSONB, published_at) written by a "publish revision" action; routes/public.ts serves the pinned snapshot when one exists, with a "newer draft exists" note; slugs/redirects (migration 018) keep URLs stable. Citation block is pure rendering.

Why it was likely missed
Publishing was scoped as visibility (private/unlisted/public, migration 017) - a switch, not a publication event. Versioning only matters once external readers/federated followers exist, which arrived in v6/v7.

Acceptance criteria

  • A motif can be published as a pinned revision; the public URL serves that snapshot until re-published.
  • A "newer draft exists" affordance is shown to the owner.
  • Public pages render a copyable citation (plain + BibTeX).

From the 2026-07-15 codebase audit - Fable feature-ideation pass. Companion report: docs/.internal/report-2026-07-15.md (gitignored).

**Feature idea** (Fable ideation, rank #7) · **Effort:** M · **Value:** Med **Pitch** Snapshot a motif at publish time ("v1, 2026-07-15"), keep the public URL pointing at the pinned revision while she keeps working, and emit a copyable citation block (plain + BibTeX) on public pages. **Why it matters** Public pages are live database views - if someone cites a motif page and she reorganizes it next week, the citation dangles. For research meant to be referenced (the ActivityPub/publishing investment says it is), stable citable versions are table stakes; "what changed since I published" is also a useful diff for her own process. **How it fits** The raw material exists: `audit_log` stores full prev/next JSONB for every edit (migrations 002/009), and entry-level restore already reads it (`routes/entries.ts` ~214-246). Add a `motif_revisions` table (motif_id, revision, snapshot JSONB, published_at) written by a "publish revision" action; `routes/public.ts` serves the pinned snapshot when one exists, with a "newer draft exists" note; slugs/redirects (migration 018) keep URLs stable. Citation block is pure rendering. **Why it was likely missed** Publishing was scoped as visibility (private/unlisted/public, migration 017) - a switch, not a publication *event*. Versioning only matters once external readers/federated followers exist, which arrived in v6/v7. **Acceptance criteria** - [ ] A motif can be published as a pinned revision; the public URL serves that snapshot until re-published. - [ ] A "newer draft exists" affordance is shown to the owner. - [ ] Public pages render a copyable citation (plain + BibTeX). --- _From the 2026-07-15 codebase audit - Fable feature-ideation pass. Companion report: `docs/.internal/report-2026-07-15.md` (gitignored)._
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
rbrooks/TeaLeaves#130
No description provided.