Skip to content

feat: thread resolution with accept/reject decisions#4

Open
badaverse wants to merge 8 commits intomainfrom
feat/thread-resolution
Open

feat: thread resolution with accept/reject decisions#4
badaverse wants to merge 8 commits intomainfrom
feat/thread-resolution

Conversation

@badaverse
Copy link
Copy Markdown
Owner

Summary

  • Add accept/reject decisions and modification instructions when resolving review threads
  • Extend PATCH /api/threads/[tid] with decision, instruction fields and auth check
  • Inline resolve form in BlockThread UI with Accept/Reject toggles, instruction textarea, and decision-aware badges
  • Export endpoint includes resolution data (decision labels, instructions, resolved-by) for CLI consumption

Changes

  • DB: 4 nullable columns added to blockThreads (decision, instruction, resolved_by_email, resolved_by_name)
  • API: PATCH validates decision values, sets resolver identity on resolve, resets all fields on reopen
  • UI: Inline resolve form replaces instant-resolve button; badges show accepted/rejected/resolved; left border color reflects decision; collapsible instruction display
  • Export: Decision-aware labels ([Accepted]/[Rejected]/[Resolved]) with instruction and resolved-by in output

Test plan

  • Resolve a thread with Accept + instruction — verify emerald "accepted" badge, instruction in collapsible, border color
  • Resolve with Reject — verify rose "rejected" badge and border
  • Resolve with no decision — verify "resolved" badge (backward compat)
  • Reopen a resolved thread — verify fields reset to null
  • Run /planclave-import <plan-id> — verify export includes decision labels and instructions
  • Type check passes: npx tsc --noEmit

🤖 Generated with Claude Code

badaverse and others added 8 commits March 26, 2026 18:40
Design for adding accept/reject decisions and modification instructions
when resolving review threads, consumed by both web UI and CLI plugin.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
6-task plan covering DB schema, API, BlockThread UI, plan detail page,
export endpoint, and e2e verification.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…lockThread

- Adds decision/instruction/resolvedBy fields to Thread interface
- Toggleable resolve form with Accept/Reject buttons (emerald/rose colors)
- Optional instruction textarea in resolve form
- Decision-aware status badge: accepted (emerald), rejected (rose), resolved (emerald fallback)
- Left border color reflects decision state
- Shows resolved-by name and collapsible instruction for resolved threads

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…il page

- Adds decision/instruction/resolvedBy fields to Thread interface
- Updates handleResolve to accept optional decision and instruction params
- Passes decision and instruction to PATCH API conditionally

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant