feat: Claude Code plugin (comment monitor) + viewer comment reframe#16
Merged
Conversation
sideshow watch
sideshow watchce3fd4c to
0598340
Compare
Reframe the viewer around leaving comments rather than messaging an agent: composers read "Leave a comment…" with a "Comment" button, no delivery receipts or "listening" indicators. A per-comment hover-only copy button puts an agent-ready paste block (snippet title + id + comment) on the clipboard.
A continuous long-poll that re-arms forever and prints each new user comment as a single line — the foundation for a Claude Code background monitor. Waits for the first publish when no session exists yet, and backs off on transient errors instead of exiting. After the first poll it carries no client cursor: reading with author=user resumes from the session's server-side agent cursor and advances it via markAgentSeen, so a comment is delivered exactly once across watch, wait, and piggyback. Honoring a local cursor would re-deliver anything a piggybacked write had already consumed. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Ship the remaining phases of the Claude Code plugin plan on top of `sideshow watch`: - Plugin package in `plugin/`: manifest with userConfig (sideshowUrl, apiToken), the sideshow MCP server, and a background monitor that runs `sideshow watch` to stream browser comments to the agent as notifications. A focused skill teaches the notification workflow. Validated with `claude plugin validate`. - Repo-hosted marketplace at `.claude-plugin/marketplace.json` (plugin source `./plugin`). Install: `/plugin marketplace add modem-dev/sideshow` then `/plugin install sideshow@sideshow`. - A "connect Claude Code" integrations modal in the viewer (sidebar footer + onboarding) with the install commands, what the monitor runs, and honest caveats (two commands not one-click; needs Claude Code >= 2.1.105). e2e covers it on chromium + webkit. - `sideshow watch` now falls back to resolving the most recently active session matching cwd (via GET /api/sessions), so the monitor finds the right session even when its process tree doesn't share the local state file written by the agent's CLI calls. README + CHANGELOG document the plugin; the plan file records all four phases done and the remaining release/smoke-test steps. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…olves `npx sideshow@latest` forces a registry fetch, which fails until a release including `watch` is published. Dropping `@latest` makes npx prefer an installed `sideshow` — a global/linked local checkout for dev (`npm link`), or a user's install — and only fetch from the registry as a fallback. Verified the shipped monitor command end-to-end against a local checkout: it resolves the session by cwd and streams comments to stdout. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
0598340 to
9b00bd8
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Builds the comment loop out in two layers.
Viewer
Claude Code plugin
sideshow watchCLI: a continuous long-poll that streams each new user comment as one line (one line = one monitor notification), re-arming forever. Rides the shared server-sideagentSeqcursor (exactly-once across watch / wait / piggyback) and falls back to resolving the most-recently-active session matching cwd.plugin/): MCP server + skill + an always-on background monitor runningsideshow watch. Validated withclaude plugin validate..claude-plugin/marketplace.json):/plugin marketplace add modem-dev/sideshowthen/plugin install sideshow@sideshow.Plan and remaining release/smoke-test steps:
docs/plans/claude-code-plugin.md.Validation:
npm test(65), typecheck, lint, format, and e2e (24, chromium + webkit) all green.🤖 Generated with Claude Code