Skip to content

fix(plannotator): recover orphaned reviews and report already-active refusals - #11

Merged
patleeman merged 2 commits into
mainfrom
bb/fix-plannotator-orphaned-review-9-thr_y5ev7v28ks
Oct 13, 2026
Merged

patleeman merged 2 commits into
mainfrom
bb/fix-plannotator-orphaned-review-9-thr_y5ev7v28ks

Conversation

@patleeman

Copy link
Copy Markdown
Owner

Fixes #9

Thanks @irium for the detailed report. The diagnosis in app.tsx and the suggested fix were spot on, and this PR follows them closely.

Changes

  • Panel fallback. When the Plannotator panel action opens without params, PlannotatorPanel calls getActiveReview(threadId) and renders the pending review, including Cancel review. A param-less panel also follows review-opened signals and a new review-closed signal, so it returns to the empty state when the review ends. Server-opened tabs still close as before.
  • Distinct refusal. A second plannotator_review_plan call while a review is pending now returns {"status":"already_active","reviewId":"<pending id>", ...} with isError: true. It no longer returns decision: "cancelled". The skill and README explain this.
  • No forced refocus. As the issue recommends, PlannotatorFocusBridge still does not reopen a tab the user closed. The review is recovered through the panel action.
  • Version bumped to 0.3.1.

Tests

  • app.test.tsx: a param-less panel recovers and cancels the active review, and it follows open and close signals, ignoring other threads.
  • server.test.ts: a second call returns already_active with the pending review ID and no decision. The pending review stays recoverable and cancellable, and review-closed is published.
  • All three new tests fail on main and pass with this change. Package typecheck and the full test suite (45 tests) pass, and so does pnpm check:compat.

🤖 Generated with Claude Code

patleeman and others added 2 commits October 12, 2026 20:00
…refusals

- The Plannotator panel action now asks the server for the thread's pending
  review when it opens without params, so a review whose tab was closed can
  still be approved, annotated, or cancelled. It follows review-opened and a
  new review-closed realtime signal.
- A second plannotator_review_plan call while one is pending returns
  status "already_active" with the pending reviewId instead of
  decision "cancelled".
- Bump to 0.3.1.

Fixes #9

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…'s decision

A slow or retried decision send no longer blocks the next review.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@patleeman
patleeman merged commit eac1192 into main Oct 13, 2026
2 checks passed
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.

plannotator: an orphaned plan review cannot be reopened and blocks further reviews in its thread

1 participant