Context
crit is gaining a per-round timeline feature in its Stage 1 work. As part of round-faithful comment scoping, comments now carry `review_round` (already present here too) — and the next iteration adds `resolved_round` to support hiding comments that were resolved in earlier rounds when the user scrubs back through the timeline.
This issue tracks adding the same field on the crit-web side so the data model stays aligned and the share/sync flow keeps round-faithful state.
Scope
- Add `resolved_round: integer` field to the `comments` table (replies are comments with `parent_id`, so they get it for free).
- When `resolved` flips from false → true, set `resolved_round` to the review's current `review_round`.
- When `resolved` flips back to false, clear `resolved_round` (or leave it for audit; decide consistent with crit).
- Surface in `/api/reviews/:token` payload so the frontend timeline can filter on it.
- Mirror the field name and semantics exactly as crit ships it — coordinate before merging if possible.
Why
Round-faithful playback is the whole reason the timeline exists. Without `resolved_round`, scrubbing back to a historical round still shows the current resolution state of every comment, which breaks the "what did the user see at round N" mental model.
Related
- crit Stage 1 worktree: `round-timeline-stage1` branch
- Coordinated change in crit lands first; this issue is the follow-up to keep crit-web aligned.
Context
crit is gaining a per-round timeline feature in its Stage 1 work. As part of round-faithful comment scoping, comments now carry `review_round` (already present here too) — and the next iteration adds `resolved_round` to support hiding comments that were resolved in earlier rounds when the user scrubs back through the timeline.
This issue tracks adding the same field on the crit-web side so the data model stays aligned and the share/sync flow keeps round-faithful state.
Scope
Why
Round-faithful playback is the whole reason the timeline exists. Without `resolved_round`, scrubbing back to a historical round still shows the current resolution state of every comment, which breaks the "what did the user see at round N" mental model.
Related