Skip to content

trunk-merge/pr-3935/453abf01-887a-476d-9371-4460bf717dff - #3940

Closed
trunk-io[bot] wants to merge 85 commits into
mainfrom
trunk-merge/pr-3935/453abf01-887a-476d-9371-4460bf717dff
Closed

trunk-merge/pr-3935/453abf01-887a-476d-9371-4460bf717dff#3940
trunk-io[bot] wants to merge 85 commits into
mainfrom
trunk-merge/pr-3935/453abf01-887a-476d-9371-4460bf717dff

Conversation

@trunk-io

@trunk-io trunk-io Bot commented Jul 29, 2026

Copy link
Copy Markdown
Trunk Merge Pull Request Banner

This pull request was created and is being managed by Trunk Merge.

This pull request is based on the main branch at SHA f0e2ed4cbae34f27718733715409d230ef02a57d.

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 3935 and 3719 - batching documentation.

Dependencies

This pull request depends on the changes from pull requests 3640 and 3922.

jonathanlab and others added 30 commits July 23, 2026 15:21
…-task-sessions

# Conflicts:
#	packages/ui/src/features/sessions/components/chat-thread/ChatThread.tsx
#	pnpm-lock.yaml
Generated-By: PostHog Code
Task-Id: c1bbe3cf-742b-4b24-bf96-d11a18b4cf22
Generated-By: PostHog Code
Task-Id: c1bbe3cf-742b-4b24-bf96-d11a18b4cf22
Generated-By: PostHog Code
Task-Id: c1bbe3cf-742b-4b24-bf96-d11a18b4cf22
Generated-By: PostHog Code
Task-Id: c1bbe3cf-742b-4b24-bf96-d11a18b4cf22
Keep the extracted domain declaration as the single source after rebasing onto current main.

Generated-By: PostHog Code
Task-Id: c1bbe3cf-742b-4b24-bf96-d11a18b4cf22
Generated-By: PostHog Code
Task-Id: c1bbe3cf-742b-4b24-bf96-d11a18b4cf22
12 updated, 12 removed
Run: 9e2a836d-06fa-4eb0-80ab-9cafd1241ac9

Co-authored-by: jonathanlab <32547391+jonathanlab@users.noreply.github.com>
adamleithp and others added 26 commits July 29, 2026 09:49
The per-message context menu sits inside SessionView's own menu and
wins the event, so right-clicking a message was the one spot in the
session where "Show raw logs" went missing. Carry the toggle (reading
the same sessionViewStore state) alongside "Copy message".

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BYPVPkN4Lm3gygchrpcoqr
Introduce a compound PageHeader primitive (header shell, heading, title,
chip, description, actions, sub-nav, filters) and adopt it on Inbox,
Activity, Loops, the space Artifacts / Context / Loops pages. Each
adoption keeps its previous header on the flag-off branch: space pages
switch with the spaces layout (useChannelsLayout), Inbox and the global
Loops list with project-bluebird.

Space wayfinding now reads "{space} / {page}" everywhere, with labels and
icons resolved from one CHANNEL_PAGES table that the sidebar rows share,
so the two can't drift. ChannelBreadcrumb renders every segment as a
button (uniform padding/height), marks non-navigable segments aria-disabled
without the disabled dimming, gained an optional middle segment
("{space} / Loops / {loop}"), and opens the rename editor on a single
click at matching type scale.

Artifacts gains list / grid / masonry views with live canvas previews,
persisted per device; the freeform preview moves out of the dashboards
grid so both surfaces share it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BYPVPkN4Lm3gygchrpcoqr
…acts

# Conflicts:
#	packages/ui/src/features/canvas/components/WebsiteChannelLoops.tsx
The sandbox document painted with a hard light fallback
(background: var(--background, #fff)) during the window before its
stylesheets loaded and before the host's init/set-theme message toggled
`.dark` — so every canvas preview scrolling into view flashed white over
a dark app. It now stays transparent until the tokens land, and the host
sets color-scheme on the iframe so the UA's base canvas is dark too.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BYPVPkN4Lm3gygchrpcoqr
…-task-sessions

# Conflicts:
#	packages/core/src/cloud-task/cloud-task.ts
#	packages/core/src/cloud-task/schemas.ts
#	packages/workspace-server/src/services/agent/agent.ts
The options menu kept quill's default width, which clipped "Unpin from
channel" mid-word; it now sizes to its longest item like the channel-list
menus do. The label itself follows the layout — space under the new one,
channel under the old.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BYPVPkN4Lm3gygchrpcoqr
The dialog said the delete "cannot be undone" while the action routes
through deleteCanvasWithUndo, which holds it for 8s behind an Undo toast.
Say what actually happens instead, and call the container a space under
the new layout, like the menu above it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BYPVPkN4Lm3gygchrpcoqr
- one useBluebirdFlag hook so the dev default isn't repeated per call site
- type view_mode on the channel-action event instead of a bare string
- drop the two redundant comments on the analytics event union
- memoize the Activity feed and its mark-all-read button

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BYPVPkN4Lm3gygchrpcoqr
Generated-By: PostHog Code
Task-Id: e18a8b14-426f-437f-98e2-db55475ea06e
- loop scenes with no space keep an identifying header instead of an
  empty row (greptile P1)
- artifacts body left-aligns under its header rather than centring
- grid cards stretch to a common height, so a PR tile no longer ends
  short beside a canvas thumbnail
- canvas previews get a skeleton while deferred and an icon + "Nothing
  built yet" when empty, instead of a bare line of text
- the Activity nav entry is a quill icon button (28px) like its
  neighbours, not a hand-rolled 32px one

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BYPVPkN4Lm3gygchrpcoqr
Replaces the ButtonGroup of outline buttons and its hand-rolled
data-[active] styling: ToggleGroup owns the pressed state, so the
selected view styles itself. Tooltips share one provider with no open
delay, since the icons are the only labelling.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BYPVPkN4Lm3gygchrpcoqr
…u copy

Two review fixes:

groupIntoTurns emits the user message as a standalone row, so the turn
footer's copy carried the agent's prose without the prompt it answers.
Each AgentTurn now records the user-initiated row that opened it, and
both bodies pass it ahead of the turn's items to buildTurnCopyText.

The context-menu "Copy message" wrote to the clipboard synchronously
from the closing menu, which rejects in Electron while focus is being
restored — silently leaving the clipboard's previous contents. It now
goes through the deferred copyFromContextMenu helper (same as
SessionView's outer menu) and surfaces both outcomes as toasts.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Q2H7r8hPC6pFCDrnYkMSRD
The list was capped at 680px and the cards at 1400px, which stranded
whitespace to the right of the header on a wide window. Every layout
here is a scannable list rather than prose, so drop the caps; the grid
and masonry gain a fourth column past 2xl now that they have the room.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BYPVPkN4Lm3gygchrpcoqr
- call useChannelsLayout unconditionally, not inside a ternary, in the
  two places that derive a "space"/"channel" noun from it
- move inboxTabFromPath / inboxScopeApplies to core beside the tab routes
  they read, so the tab bar file exports components only
- render the Activity feed as a memo'd child instead of JSX built in a
  useMemo above the parent's early return

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01BYPVPkN4Lm3gygchrpcoqr
Preserve the repository and inbox migration while adopting the previously merged composer and shared-contract changes.

Generated-By: PostHog Code
Task-Id: c1bbe3cf-742b-4b24-bf96-d11a18b4cf22
@trunk-io trunk-io Bot closed this Jul 29, 2026
@trunk-io
trunk-io Bot deleted the trunk-merge/pr-3935/453abf01-887a-476d-9371-4460bf717dff branch July 29, 2026 12:12
@github-actions

Copy link
Copy Markdown

React Doctor found 18 issues in 5 files · 18 warnings.

18 warnings

src/app/task/index.tsx

src/features/loops/components/LoopDetailView.tsx

src/features/pi-sessions/PiSessionView.tsx

src/features/sessions/components/CloudSessionLifecycle.tsx

src/features/tasks/composer/TaskChatComposer.tsx

Reviewed by React Doctor for commit 59910af.

@posthog

posthog Bot commented Jul 29, 2026

Copy link
Copy Markdown
Contributor

👋 Visual changes detected for this PR.

Review and approve in PostHog Visual Review

If these changes are unexpected, they may be caused by a flaky test or a broken snapshot on master. Don't approve — rerun the job or wait for a fix.

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.

5 participants