Files
Michael Ramos 9130d2d6a3 feat(review): open a review on a specific base and diff type (#1484)
Adds two session-only flags to plannotator review, parsed in the shared
parser so every host inherits them together:

- --base <ref> opens the session against a caller-chosen compare target
  (branch, origin/<branch>, tag, SHA, HEAD~N), probed with git rev-parse
  --verify --end-of-options before the server starts so a typo'd ref is a
  startup error with near-match suggestions instead of a silently
  mislabelled merge-base->HEAD diff.
- --diff-type <id> opens the session in one of the nine flat git diff
  modes (REVIEW_OPEN_DIFF_TYPES, pinned against GIT_DIFF_TYPES).

The flags are a seed, never a setting: nothing writes config.json or any
review cookie, and the UI stays fully mutable. Validation is pure in
packages/shared/review-open-state.ts (provider matrix errors on
jj/GitButler/P4/workspace/PR mode, promote-with-notice when the saved
default is base-irrelevant, fatal explicit contradiction).

A flagged base rides explicitBase semantics: the new initialBaseExplicit
server option (both runtimes) seeds baseExplicitlyChosen, suppressing the
startup origin/* upgrade and canonicalization, and openStatePinned rides
/api/diff so the client neither offers the first-run setup dialog (its
one-time cookie is NOT consumed) nor runs the panel-pair self-heal for a
pinned session. The since-base dropdown label now renders from the live
active base, matching the adjacent base picker.

Coverage: Bun CLI, opencode-review bridge, OpenCode embedded plugin, and
the Pi extension (re-vendored; strict validation on the slash-command
path only, programmatic callers unchanged). Skills, command stubs, help
text, and docs updated across every host surface.
2026-09-09 21:35:05 -07:00

1.1 KiB

Plannotator for Droid

Plannotator's Droid plugin ships the manual slash-command workflow only:

  • /plannotator-review [--base <ref>] [--diff-type <type>] [PR_URL] (no args reviews local changes; the open-state flags pin the session's opening diff — session-only, git-only)
  • /plannotator-annotate <file|folder|url>
  • /plannotator-last

It does not attempt plan-mode interception or host-level planning integration.

Install

Install the plannotator CLI first:

curl -fsSL https://plannotator.ai/install.sh | bash

Then add the marketplace and install the plugin:

droid plugin marketplace add https://github.com/backnotprop/plannotator
droid plugin install plannotator@plannotator

For local development:

cd /path/to/plannotator
droid plugin marketplace add "$PWD"
droid plugin install plannotator@plannotator

Notes

  • The plugin expects plannotator on PATH.
  • Review and annotate flows still open the Plannotator browser UI and return the result to the Droid session.
  • The command wrappers set PLANNOTATOR_ORIGIN=droid so the UI can label the host correctly.