Skip to content

feat: show who opened the pull request, and four CLI papercuts - #35

Merged
fiddur merged 2 commits into
developfrom
pr-author-and-cli-nits
Aug 26, 2026
Merged

feat: show who opened the pull request, and four CLI papercuts#35
fiddur merged 2 commits into
developfrom
pr-author-and-cli-nits

Conversation

@fiddur

Copy link
Copy Markdown
Collaborator

The author was already fetched to decide viewerDidAuthor and never shown, so the page could tell you a PR was somebody else's without telling you whose. The toolbar chip reads #14390 by nc-felicia now.

Then four papercuts from the feedback:

  • Replying with an open request left it replayable in silence. reclaimStaleLiveRequests re-arms after 10 minutes, so the same question comes back forever with nothing to indicate it. The reply now warns and names the id to close it with.
  • --timeout 3600 returned at 240s while claiming otherwise. Documented in --help rather than changed, since the cap is undici's headersTimeout and the loop is meant to be re-entered.
  • Tour ids needed a full UUID, and a wrong one came out as a raw SQLite FOREIGN KEY constraint failed. They take an 8-char prefix like thread ids now, and a miss says so.
  • --repo before agent already works — the report that it does not is wrong, diffity --repo <path> agent list has been how this whole session drove it. But agent --help never mentioned it, which is indistinguishable from missing. It does now.

Left alone from the same list: the 100-thread GraphQL page cap, which under-reports safely.

Worth knowing separately: the cli package build does not typecheck, and tsc -p packages/cli reports 1 error on develop today (server.ts:385). Nothing runs it, so it is invisible — same family as the UI's 6. Not touched here.

parser 43, git 44, github 21, ui 388, cli 172. v0.9.10.

🤖 Generated with Claude Code

https://claude.ai/code/session_018PkYQzbsnMihHesafWvXKs

fiddurand others added 2 commits August 25, 2026 15:39
The author was already being fetched to decide `viewerDidAuthor` and
never shown, so the page could tell you a pull request was somebody
else's without telling you whose. The toolbar chip now reads `#14390 by
nc-felicia`.
Four things that cost another agent time today:
Replying into a thread with an open request left it replayable in
silence — stale claims are re-armed, so the same question comes back
round forever. The reply now says so and names the id to close it with.
`--timeout` claimed to wait as long as you asked while every poll
returns at 240s. The help says that now.
Tour ids took only a full UUID, and a wrong one surfaced as a raw
SQLite FOREIGN KEY stack. They resolve by 8-char prefix like thread ids,
and a miss says so.
`--repo` works before `agent` and nothing said so, which reads as a
missing flag. `agent --help` shows the form.
v0.9.10.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018PkYQzbsnMihHesafWvXKs
Self-review: tour ids were fixed in two of the three commands that take
one, and the one left out was `tour-delete`. It also printed "Removed
walkthrough" for an id that matched nothing, a DELETE hitting no rows
not being an error. All three now resolve through one helper.
The toolbar restated the shape of `GitHubDetails` inline instead of
importing it, and had already drifted — `prAuthor` optional there,
required in the API type. Importing it took the UI typecheck from 6
errors to 5.
And a render test for the chip, which was the whole visible point of the
change and the only part with nothing covering it.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018PkYQzbsnMihHesafWvXKs
@fiddur
fiddur marked this pull request as ready for review August 26, 2026 07:40
@fiddur
fiddur merged commit 72d5e5c into developAug 26, 2026
@fiddur
fiddur deleted the pr-author-and-cli-nits branch August 26, 2026 07:40
fiddur added a commit that referenced this pull request Aug 27, 2026
…38)
Both tweaks.
### The count was one list short
The bell was fed `unseenAlerts` — what a note leaves behind *after* its
ten seconds run out. So an answer was invisible to the bell while its
bubble was on screen, and then the number rose at the moment nothing had
actually happened. Both lists reach it now, deduplicated by thread, so
it means "answers waiting" rather than "notes that have timed out".
### The tab now says so
A red mark on the favicon while anything is unread. That is the case
that matters most: a reader in another window cannot see the bell at
all, which is also the case #37 is about.
Built as SVG text rather than drawn on a canvas, because the icon
already is an SVG — the mark inherits its scaling, and its ring can use
the same `prefers-color-scheme` rule the icon already uses, so it stays
legible on a light tab strip and a dark one. The icon is fetched once
and kept, and if it cannot be read the tab is simply left alone.
Checked the geometry rather than eyeballing it: the badged icon parses
as XML, and the ring spans x 200–400, y 10–210 in a 411×395 canvas, so
nothing clips. My first coordinates put the ring 5 units past the right
edge.
### Verified
parser 43, git 44, github 21, ui 414, cli 190. Typecheck 0.
**One honest gap:** the one-line prop wiring in `diff-page.tsx` has no
test, because `DiffPage` is rendered by no test in the repo — it is the
hub, with router and loader dependencies. The *behaviour* is pinned (a
note moving from shown to expired leaves the count unchanged) via
`unreadAlerts` and the bell; only the literal pass-through is not. Same
structural gap I noted on #35.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
https://claude.ai/code/session_018PkYQzbsnMihHesafWvXKs
---------
Co-authored-by: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for freeto 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

@fiddur