Repository navigation
Plannotator Inbox: the first run says less (words of record, one rhythm, equal cards) - #1761
Merged
Merged
Conversation
…hm, equal cards) The empty state as the owner ruled it built: 'No agent has written yet', one line per Plannotator connection card with 'Use MCP instead' opening the host's command below the row, 'Other agents' with one line, and one short note per harness tab (no lead, no eyebrow). Headers carry no comma; the e2e asserts the words, the rhythm, equal card heights and the reveal below the row.
… line and says merge; Goose note verified; code wraps at spaces)
… own, not the runner's temp dir
1 task
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.
Story
The owner saw the built first run and called it jumbled, with too much narrative labelling. The record now carries his ruling ("Addendum: the empty state, as the owner saw it built",
.product/approved/plannotator-inbox-window-2026-10-07/approval.md): the words of record, verbatim, no comma in any header, one vertical rhythm, equal cards, and the revealed command opening below the row. This PR makes the window say exactly that, with no new behaviour.What changed
packages/inbox/components/EmptyState.tsx: headingNo agent has written yet. Three cards, each the host mark and name (Claude Code,Pi,OpenCode) and one line (Plannotator's mod / extension / plugin writes here. Nothing to install.), then a small text linkUse MCP instead. The link reveals that host's command with Copy in one box BELOW the card row (one open at a time, the same link closes it; the open card's border takes a primary tint). The check-mark headline is gone. ThenOther agentsandAdd the Inbox as a local MCP server., then the tabs.packages/inbox/components/ConnectPicker.tsx: the selected tab shows the artefact (command with Copy, deeplink button, or file snippet under its path), ONE short note, and the foldedAnother way. The eyebrow repeating the harness name and the lead line are gone.CodeBoxloses its narrowwrapform, which only the old in-card reveal used.packages/inbox/harnesses.ts:HarnessPanelis now{ artefacts, note?, another? }. Every harness keeps its command and fallback exactly; each note is cut to one sentence. Codex's note is the record's words:Also adds it to the Codex app and the IDE extension. Restart them after.TheAnother waysummaries lose their commas, because they are part of a button's label.packages/inbox/inbox.css:.ib-emptyis a flex column with one gap (--ib-rhythm: 28px) between the heading, the cards, Other agents and the tabs. The cards stretch to one height, with the line taking the slack so the links line up. The reveal sits 12px under the row. The warning-tinted note box, the eyebrow, the lead and the wrap rules are removed.ConnectPicker, so it shows the same panel: artefact, one note, Another way. Nothing else in Settings changed.AGENTS.md(Inbox section): the first-run sentence now describes what is built.The record section it makes real
"Addendum: the empty state, as the owner saw it built (2026-10-07)", every bullet:
No agent has written yet: done.Use MCP insteadlink revealing the host's command with Copy, no check-mark headline: done.Other agentswithAdd the Inbox as a local MCP server., the tabs, the command box with Copy and one short note (Codex's verbatim),Another waykept, no eyebrow: done.Proofs
Built and compiled as LANE-RULES "Build" says (
bun run --cwd apps/review build && bun run build:hook, thenbun build apps/hook/server/index.ts --compile --no-compile-autoload-bunfig --define '__CLI_VERSION__="0.0.0-dev"' --outfile .local/plannotator). ThenPLANNOTATOR_BROWSER=none bun run test:e2e:inbox: all four specs (inbox, notifications, decisions, attachments), 43 passed.The first-run flow in
tests/e2e/inbox.spec.tsnow asserts, against the compiled binary in headless Chromium:Other agentsand its line.Another way, no eyebrow. Copy puts the command on the clipboard.scrollWidth <= clientWidth. The box wraps (pre-wrap,overflow-wrap: anywhere) and Copy stays top-aligned beside the text.notifications.spec.tsmatches the new heading exactly.Captures at 1440 by 900 (
.local/proof/in the worktree):1.3-first-run-codex-light.pngand-dark.pngUse MCP insteadrevealed below the row:1.3-first-run-claude-code-light.pngand-dark.png1.4-first-run-cursor,1.5-first-run-claude-appand7.1-settings, which shows the compact picker.Gates
bun run typecheck: green.bun run check:release-version: green (v0.28.7).bun test packages apps/hook tests scriptsunder a tempPLANNOTATOR_DATA_DIRand HOME: 5787 pass, 1 fail. The failure is environmental.annotate-cli.test.ts"exits 1 with one line..." fails only because this session exportsFORCE_COLOR=3, which puts ANSI codes in front ofResolved:, so the test'sstartsWith("Resolved:")filter misses that line. WithFORCE_COLORunset the file is 13 of 13 green. This PR does not touch that file.scripts/dom-test-allowlist.test.ts): green. No DOM-gated test file was added.packages/inboxunit tests (harnesses.test.ts: every panel has an artefact and every JSON snippet parses): green.packages/uiandpackages/coreare unchanged, so nosmoke:packagerun. The guide chain is untouched.Left out, and deviations
Merge it into mcpServers in Claude > Settings > Developer > Edit Config, then quit and reopen Claude. claude.ai connectors cannot reach this computer.The e2e asserts it.Opens Goose to add the extension.; the research does not verify that Goose asks for a confirmation.word-break: normal; overflow-wrap: anywhere), so a long path still wraps in full.Another waysummaries drop their commas (... > STDIO then Restart) because they sit inside a button label, and the ruling says no header or label carries a comma.