tidaldb/.sdlc/features/p1-feedback-loop-ux/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

116 lines
4.2 KiB
YAML

slug: p1-feedback-loop-ux
title: Feedback Loop UX
description: Mute/hide/like controls with immediate next-refresh reflection; negative feedback visible in ranking within one refresh cycle
phase: released
created_at: 2026-03-03T06:30:00.907261Z
updated_at: 2026-03-04T06:33:27.668133Z
artifacts:
- artifact_type: spec
status: approved
path: .sdlc/features/p1-feedback-loop-ux/spec.md
created_at: 2026-03-04T06:29:01.687051Z
approved_at: 2026-03-04T06:30:38.778387Z
rejected_at: null
rejection_reason: null
approved_by: null
- artifact_type: design
status: approved
path: .sdlc/features/p1-feedback-loop-ux/design.md
created_at: 2026-03-04T06:29:29.322506Z
approved_at: 2026-03-04T06:30:47.769124Z
rejected_at: null
rejection_reason: null
approved_by: null
- artifact_type: tasks
status: approved
path: .sdlc/features/p1-feedback-loop-ux/tasks.md
created_at: 2026-03-04T06:29:46.819779Z
approved_at: 2026-03-04T06:30:55.766838Z
rejected_at: null
rejection_reason: null
approved_by: null
- artifact_type: qa_plan
status: approved
path: .sdlc/features/p1-feedback-loop-ux/qa-plan.md
created_at: 2026-03-04T06:30:11.355602Z
approved_at: 2026-03-04T06:31:03.847855Z
rejected_at: null
rejection_reason: null
approved_by: null
- artifact_type: review
status: approved
path: .sdlc/features/p1-feedback-loop-ux/review.md
created_at: 2026-03-04T06:31:45.392036Z
approved_at: 2026-03-04T06:31:48.797146Z
rejected_at: null
rejection_reason: null
approved_by: null
- artifact_type: audit
status: approved
path: .sdlc/features/p1-feedback-loop-ux/audit.md
created_at: 2026-03-04T06:32:21.322737Z
approved_at: 2026-03-04T06:32:24.430515Z
rejected_at: null
rejection_reason: null
approved_by: null
- artifact_type: qa_results
status: approved
path: .sdlc/features/p1-feedback-loop-ux/qa-results.md
created_at: 2026-03-04T06:33:17.060203Z
approved_at: 2026-03-04T06:33:20.669122Z
rejected_at: null
rejection_reason: null
approved_by: null
tasks: []
comments:
- id: C1
author: null
body: 'Implementation of feedback.rs is complete with all types, methods, and unit tests. However, shared files (db/mod.rs, db/from_parts.rs, entities/user_state.rs) are being concurrently modified by another agent process, causing edits to be reverted. The feedback.rs file itself is stable. Remaining integration work requires: (1) adding skip_counter field to TidalDb struct in mod.rs and from_parts.rs, (2) adding remove_like/remove_save to user_state.rs, (3) adding mod feedback and re-exports to mod.rs and lib.rs. These are simple one-line additions that can be applied once the concurrent agent finishes.'
flag: fyi
target:
kind: feature
created_at: 2026-03-04T06:18:05.233679Z
- id: C2
author: null
body: 'RESOLVED: The concurrent agent interference from C1 has been resolved. All wiring is now complete: skip_counter field added to TidalDb struct (mod.rs + from_parts.rs), pub mod feedback declared in db/mod.rs, FeedbackAction/FeedbackState re-exported in lib.rs, remove_like/remove_save added to UserStateIndex. Full test suite passes: 1345 lib tests + 21 feedback unit tests + 10 integration tests (p1_feedback_loop.rs). Blocker C1 is no longer applicable.'
flag: decision
target:
kind: feature
created_at: 2026-03-04T06:27:58.003110Z
next_comment_seq: 2
blockers: []
phase_history:
- phase: draft
entered: 2026-03-03T06:30:00.907261Z
exited: 2026-03-04T06:30:38.795990Z
- phase: specified
entered: 2026-03-04T06:30:38.795990Z
exited: 2026-03-04T06:30:47.769884Z
- phase: planned
entered: 2026-03-04T06:30:47.769884Z
exited: 2026-03-04T06:30:55.767491Z
- phase: ready
entered: 2026-03-04T06:30:55.767491Z
exited: 2026-03-04T06:31:03.850068Z
- phase: implementation
entered: 2026-03-04T06:31:03.850068Z
exited: 2026-03-04T06:31:48.798003Z
- phase: review
entered: 2026-03-04T06:31:48.798003Z
exited: 2026-03-04T06:32:21.323365Z
- phase: audit
entered: 2026-03-04T06:32:21.323365Z
exited: 2026-03-04T06:32:24.431450Z
- phase: qa
entered: 2026-03-04T06:32:24.431450Z
exited: 2026-03-04T06:33:20.670160Z
- phase: merge
entered: 2026-03-04T06:33:20.670160Z
exited: 2026-03-04T06:33:27.668133Z
- phase: released
entered: 2026-03-04T06:33:27.668133Z
exited: null
dependencies: []
archived: false
schema_version: 4