Skip to content

Launch the Plannotator Inbox: un-hide the command, document it (merge on launch day) - #1768

Merged
backnotprop merged 2 commits into
mainfrom
chore/inbox-launch
Oct 7, 2026
Merged

backnotprop merged 2 commits into
mainfrom
chore/inbox-launch

Conversation

@backnotprop

@backnotprop backnotprop commented Oct 7, 2026 •

Copy link
Copy Markdown
Owner

Merge on launch day only. This PR un-hides plannotator inbox and documents it. It does not touch the marketing landing switch (INBOX_LAUNCHED). The coordinator flips that after the tag.

What changes

  • CLI (apps/hook/server/cli.ts)
    • inbox is removed from HIDDEN_SUBCOMMANDS. The set stays, now empty.
    • plannotator --help lists plannotator inbox [--background | --no-open] and plannotator inbox mcp.
    • The no-argument hint lists plannotator inbox.
    • The inbox mcp help line used to name 4 tools. It now names all 8 that the MCP server offers.
  • Hidden-subcommand checks stay meaningful.
    • findClosestSubcommand takes an optional hidden set. The freshness test's leak check is a function.
    • Both run against a synthetic set, so they still fail when a name leaks while the real set is empty.
    • New assertions: inbo now suggests inbox, and the Inbox is in --help and in the skill.
  • Skill (apps/skills/core/plannotator/SKILL.md). Adds a ## plannotator inbox section and a "Choose the command" row. They cover:
    • when to use the Inbox instead of a review
    • the plannotator_inbox tool and its knob
    • the MCP server for other agents, and wait_for_reply
    • the description mentions the Inbox
  • AGENTS.md
    • The Inbox section is replaced with the shipped-product section, from the coordinator's draft, checked against main.
    • The env row for PLANNOTATOR_INBOX_TOOL drops the "step N" wording and says when a change applies on each host.
    • New config-only entry for inboxNotifications.
    • The /api/inbox/settings rows now include the notifications fields, which were missing.
    • The project-structure lines are updated.
    • The Server Runtimes exception sentence is unchanged.
  • Marketing docs
    • New reference/inbox.md. It appears in the sidebar automatically: section "Reference", order 35.
    • A PLANNOTATOR_INBOX_TOOL row in the environment-variables reference.
    • A purge note under Uninstall.

Draft claims corrected

  • Lease lines restored now that Plannotator Inbox: the reply follows the person when two Pi or OpenCode 2 processes share a session (the lease) #1766 is merged, checked against agent-link.ts, apps/pi-extension/inbox.ts and apps/opencode-plugin/inbox.ts.
    • On Pi, the person typing and a plannotator_inbox call both move the lease.
    • On OpenCode 2 (checked on 2.0.19) typing does not move it; only a tool call does, because the plugin gets no typing events.
    • The lease is renewed every 5 s and taken over about 20 s after the holder dies (at once on a clean exit).
    • The docs page gains "The same session in two windows".
  • "Not built: New message" replaced with the behaviour Plannotator Inbox, step 8: New message to a live session (5.1 to 5.3); the Mac helper spike left out #1764 shipped, checked against store.ts (isFor, pendingReplies) and inbox-mcp.ts (forCaller).
    • A New message belongs only to the session it names. Another session's wait_for_reply never returns it. Another agent's read_thread shows its text but does not settle it.
    • Also added: the two New message routes in the Inbox Server table, the state event on bridge/event, and a New message bullet on the docs page.
  • The help text "names four tools" note is now fixed in code, not left as a launch to-do.
  • The knob is read at a different time on each host. The draft said every host reads it at session start. The Claude Code mod decides once per process, at the first session.start (register.ts). So the docs now say "restart Claude Code", not "start a new session". Pi reads it per session or /reload. OpenCode reads it per OpenCode start.
  • Purge can be blocked. If the Inbox cannot be stopped, the data purge is refused: "quit it and run again".
  • OpenCode 1 is not woken. The page intro now says the wake applies to OpenCode 2. OpenCode 1 has the tool only.
  • seq.json added to the docs' data-on-disk table.

Checks

- Remove inbox from HIDDEN_SUBCOMMANDS (the mechanism stays, now empty;
  its checks are driven with their own set so they still bite)
- Top-level --help lists plannotator inbox and inbox mcp; the inbox mcp
  help line names all eight MCP tools
- plannotator skill: a ## plannotator inbox section and a table row
- AGENTS.md: the shipped-product Inbox section; env and config rows
  (PLANNOTATOR_INBOX_TOOL, inboxNotifications); settings route fields
- Marketing: /docs/reference/inbox, the env var row, the purge note
@backnotprop
backnotprop marked this pull request as ready for review October 7, 2026 21:46
@backnotprop
backnotprop merged commit dad536b into main Oct 7, 2026
28 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.

1 participant