trunk-merge/pr-4034/f5d16664-8ca4-4334-bf7a-84ad50b97014 - #4037
Closed
trunk-io[bot] wants to merge 21 commits into
Closed
trunk-merge/pr-4034/f5d16664-8ca4-4334-bf7a-84ad50b97014#4037trunk-io[bot] wants to merge 21 commits into
trunk-io[bot] wants to merge 21 commits into
Conversation
The cloud workflow holds a run at in_progress while it babysits CI after
opening the PR ("Keeping CI green"). Under the Trunk merge queue that wait
ends only when someone comments /trunk merge, so a run can claim to be
working for hours after the agent stopped: two tasks in the code space had
been spinning for 104 and 220 minutes, one with all 29 checks green.
The dot now goes quiet once a PR exists, and the badge stack shows the PR
even when its GitHub state is unresolved. latest_run.output.pr_url is
written the moment the PR opens, while prState needs a lookup a cloud-only
task never gets (TaskPrStatusService discards fresh state when the task
has no local workspace row). A task that opened a PR must not look like it
did nothing, so the badge appears uncoloured rather than not at all.
Not sure this is the right cut. It treats "has a PR" as terminal, which is
a guess about intent: a run that opens a draft PR and keeps pushing to it
is genuinely still working, and this now draws it as quiet. The real fix is
upstream in products/tasks, where the run should reach a terminal status
rather than being held open for a merge the queue won't perform unattended.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BYPVPkN4Lm3gygchrpcoqr
The sidebar list is one list now: pins sit in it with everything else, marked by a badge in the row's own stack rather than living in a section of their own, and canvases carry the same menu tasks do. Rows - Pinned items merge into the sessions list, sorted ahead of newer ones so a pin can't fall off the recents cap. - The pin joins the row's badge stack in the vocabulary's amber; it goes first, which in a reversed stack puts it leftmost and underneath. - Canvas badges are violet, matching the canvas colour everywhere else, and are named on hover like the task badges beside them. - The row's "…" is gone: at rest a row shows status, not controls. Row menu - Actions move into the hover card, built from the same item list the right-click menu uses. - Canvases get that menu: pin, and delete through the existing deleteCanvasWithUndo window. Filing and command-centre cells are task shaped, so they're dropped rather than shown dead. - The card is quill's Card/Item parts throughout — no hand-rolled shadow — and is controlled so it survives its own "File to…" flyout. Chrome - Space rows drop the cube glyph; #me keeps its lock and the Spaces heading keeps its icon. - Project switcher moves to the top of the sidebar, above the nav row. - "New session" leads the space pane's list of pages. - Back row, header buttons and the row menu trigger use quill buttons rather than hand-rolled ones; rows use quill's focus ring. - The "Created by" filter is hidden in #me, where it can only answer "you", and its value is neutralised so a stale filter can't empty the list with no control left to undo it. Unread - Counts and unread dots read amber, the same colour the status dots use for "something is owed to you". Red is left for failure. Fixes a 4px clip on the ⌘-slot hints: quill's `.quill-button kbd` hangs 4px into a button's padding, and the row's truncate wrapper cut it off. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JrvaQrZNBNSexddG78u4Nt
The card was carrying quill's card padding on top of its own sections, which read as a lot of air around four short lines. Its padding is off now and each section pays for its own inset, so the rules run edge to edge and the action rows highlight full width. - Deleting a canvas confirms first, with the same copy the artifacts grid and the canvas header use — it goes for everyone in the space. The undo window still follows the confirm. - A canvas waiting out that window flashes a red dot labelled "Deleting…". It stays in the list rather than vanishing, so the row has to say what is happening to it. - "File to…" opens on hover in the card, the way a submenu does on right-click. Delete is quill's destructive button. - Menu separators are gone from both surfaces. - The quiet dot reads "All caught up" rather than "Nothing owed to you". Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JrvaQrZNBNSexddG78u4Nt
Unread was amber picked by hand; it's `--primary` now — yellow in dark, orange in light — so the count badges, the unread dots and the row's own dot are one colour, and the numeral takes `--primary-foreground` rather than a contrast token chosen per theme. The pin keeps its own amber: primary means "there is something here for you", and a pin is a shelf, not a claim on your attention. Also stops every badge in a row's stack offering a pointer cursor — quill gives an avatar rendered as a button one, which promised a click that did nothing. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JrvaQrZNBNSexddG78u4Nt
Three things the review turned up: - Canvas rows share `useChannelTaskStatus`, which passes an empty task id to `useTaskPrStatus` — every canvas row was spending a round trip to be told nothing. No id now means no query. - The row's menu didn't carry the space it's listed under, so "File to…" ticked nothing and filing a task to where it already lives reported a move that didn't happen. - `TaskRowMenuList` builds its item components from the callbacks it's given, so an inline `onAction` remounted every button in the hover card on each render of the row. Also gates the pending-delete lookup on canvases, which are the only things that can be in that map. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JrvaQrZNBNSexddG78u4Nt
It was a scratch page for reading the task-status vocabulary while it was being written; the vocabulary is settled and the page has no reader. Takes the route, its view, the Settings entry that opened it and the tab target with it. The dot-ring spinner stays — it's a primitive the rows use, and only the comment pointing at its old home changes. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01JrvaQrZNBNSexddG78u4Nt
…d icon gets primary color for easy finding
…ullRequest) → yellow solid (Pending - no work in flight)
|
React Doctor found 5 issues in 4 files · 5 warnings. 5 warnings
Reviewed by React Doctor for commit |
trunk-io
Bot
deleted the
trunk-merge/pr-4034/f5d16664-8ca4-4334-bf7a-84ad50b97014
branch
July 31, 2026 10:40
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.
This pull request was created and is being managed by Trunk Merge.
This pull request is based on the main branch at SHA 32c01893132880b09a3d79ec5a489bb556b2fdac.
See more details about each PR in the batch here:
When CI completes, this pull request will be closed automatically.
Pull Requests Being Tested
This pull request is testing a batch with the changes from pull requests 4034 and 4008 - batching documentation.