tidaldb/.sdlc/features/m9-retroactive-purge/manifest.yaml
jordan cc0b894480 sdlc: accept the schema_version 3 -> 4 migration
`sdlc` 0.5.1 rewrites every feature manifest on read - `sdlc state` alone did
this - so the migration cannot be avoided, only recorded. It is idempotent:
repeated reads produce no further churn (verified by checksum).

What schema 4 drops, so it is findable later:
- feature-level `id` (now derived from `slug`) and `updated_at`.
- per-task history: `created_at` is re-stamped with the migration instant and
  `completed_at` is nulled, so task timing before 2026-08-16 is not recoverable
  from these files.
- m9-community-profile-sync additionally loses 18 phase-history and artifact
  timestamps (`entered`/`exited`/`approved_at`, 2026-03-04).

The pre-migration record is this commit's parent:
  git show HEAD~1:.sdlc/features/m9-community-profile-sync/manifest.yaml

Committed separately from any state transition so the loss is one reviewable
diff rather than noise inside a feature change. `.sdlc/` is CLI-owned; nothing
here was hand-edited.
2026-08-16 12:39:22 -06:00

150 lines
3.9 KiB
YAML

slug: m9-retroactive-purge
title: Retroactive Signal Purge
description: 'On explicit purge request: remove user''s contributed signals from community aggregates with deterministic re-materialization, preserving correctness'
phase: released
created_at: 2026-03-03T06:29:37.992175Z
updated_at: 2026-03-04T01:51:20.644600Z
artifacts:
- artifact_type: spec
status: approved
path: .sdlc/features/m9-retroactive-purge/spec.md
created_at: 2026-03-03T06:29:37.992175Z
approved_at: 2026-03-04T01:51:20.644600Z
rejected_at: null
rejection_reason: null
approved_by: null
- artifact_type: design
status: approved
path: .sdlc/features/m9-retroactive-purge/design.md
created_at: 2026-03-03T06:29:37.992175Z
approved_at: 2026-03-04T01:51:20.644600Z
rejected_at: null
rejection_reason: null
approved_by: null
- artifact_type: tasks
status: approved
path: .sdlc/features/m9-retroactive-purge/tasks.md
created_at: 2026-03-03T06:29:37.992175Z
approved_at: 2026-03-04T01:51:20.644600Z
rejected_at: null
rejection_reason: null
approved_by: null
- artifact_type: qa_plan
status: approved
path: .sdlc/features/m9-retroactive-purge/qa-plan.md
created_at: 2026-03-03T06:29:37.992175Z
approved_at: 2026-03-04T01:51:20.644600Z
rejected_at: null
rejection_reason: null
approved_by: null
- artifact_type: review
status: approved
path: .sdlc/features/m9-retroactive-purge/review.md
created_at: 2026-03-04T01:51:20.644600Z
approved_at: 2026-03-04T01:51:20.644600Z
rejected_at: null
rejection_reason: null
approved_by: null
- artifact_type: audit
status: approved
path: .sdlc/features/m9-retroactive-purge/audit.md
created_at: 2026-03-04T01:51:20.644600Z
approved_at: 2026-03-04T01:51:20.644600Z
rejected_at: null
rejection_reason: null
approved_by: null
- artifact_type: qa_results
status: approved
path: .sdlc/features/m9-retroactive-purge/qa-results.md
created_at: 2026-03-04T01:51:20.644600Z
approved_at: 2026-03-04T01:51:20.644600Z
rejected_at: null
rejection_reason: null
approved_by: null
tasks:
- id: T1
title: 'T1: CohortContributionLog'
description: null
status: completed
created_at: 2026-08-16T15:43:26.081106Z
started_at: null
completed_at: null
blocker: null
depends_on: []
- id: T2
title: 'T2: Ledger Retraction Methods'
description: null
status: completed
created_at: 2026-08-16T15:43:26.081108Z
started_at: null
completed_at: null
blocker: null
depends_on: []
- id: T3
title: 'T3: Tag::PurgeManifest Storage Key'
description: null
status: completed
created_at: 2026-08-16T15:43:26.081109Z
started_at: null
completed_at: null
blocker: null
depends_on: []
- id: T4
title: 'T4: PurgeCoordinator and PurgeManifest'
description: null
status: completed
created_at: 2026-08-16T15:43:26.081110Z
started_at: null
completed_at: null
blocker: null
depends_on: []
- id: T5
title: 'T5: TidalDb Struct Fields'
description: null
status: completed
created_at: 2026-08-16T15:43:26.081111Z
started_at: null
completed_at: null
blocker: null
depends_on: []
- id: T6
title: 'T6: Wire Contribution Log into Signal Hot Path'
description: null
status: completed
created_at: 2026-08-16T15:43:26.081116Z
started_at: null
completed_at: null
blocker: null
depends_on: []
- id: T7
title: 'T7: Public API db/purge.rs'
description: null
status: completed
created_at: 2026-08-16T15:43:26.081117Z
started_at: null
completed_at: null
blocker: null
depends_on: []
- id: T8
title: 'T8: Integration Tests'
description: null
status: completed
created_at: 2026-08-16T15:43:26.081118Z
started_at: null
completed_at: null
blocker: null
depends_on: []
comments: []
next_comment_seq: 0
blockers: []
phase_history:
- phase: draft
entered: 2026-03-03T06:29:37.992175Z
exited: 2026-03-04T01:51:20.644600Z
- phase: released
entered: 2026-03-04T01:51:20.644600Z
exited: null
dependencies: []
archived: false
schema_version: 4