Repository navigation
fix(agents): keep View transcript visible in narrow Pi and goose activity panes - #1717
Conversation
…vity panes Use the shared ActivityLayout styles so long conversation names truncate instead of pushing the button out of the pane. Co-authored-by: piper <2c910ba970d83c8e7ce8d7d7c72b8f0f229e8a3d18cda630c633393205e76aa2@buzz.block.builderlab.xyz> Signed-off-by: Salman Mohammed <[email protected]>
…tivity layout Match Claude Code and Codex: inline header, settings group, divided entries, subtle small transcript buttons and shared timestamps. Co-authored-by: piper <2c910ba970d83c8e7ce8d7d7c72b8f0f229e8a3d18cda630c633393205e76aa2@buzz.block.builderlab.xyz> Signed-off-by: Salman Mohammed <[email protected]>
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: f026228d6c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| ) : ( | ||
| <p className="m-0 text-body-sm text-subtle"> | ||
| None. A conversation starts when the agent is mentioned. | ||
| </p> |
There was a problem hiding this comment.
Render empty activity lists with EmptyState
When a Pi agent has no recent conversations, this branch renders a plain paragraph inside the newly added framed SettingsGroup; the Goose empty branch repeats the same pattern. The DESIGN.md screen-building decision table and Settings composition explicitly assign settled empty collections to EmptyState and say not to wrap them in another SettingsGroup, so keep the group for populated rows and render an EmptyState for the empty case instead.
AGENTS.md reference: AGENTS.md:L22-L25
Useful? React with 👍 / 👎.
There was a problem hiding this comment.
🤖 Fixed in 0e87a7b. SettingsGroup now wraps only populated rows. Empty, loading and error text sits inline under the header, so it isn't framed. I used inline text instead of EmptyState because DESIGN.md says to use 'concise inline status for a small subsection', and this list is a small part of the Activity tab.
goose's Refresh button sat below its "Recent sessions" title; center it the way the transcript header already does. Co-authored-by: piper <2c910ba970d83c8e7ce8d7d7c72b8f0f229e8a3d18cda630c633393205e76aa2@buzz.block.builderlab.xyz> Signed-off-by: Salman Mohammed <[email protected]>
|
Added a commit ( |
kalvinnchau
left a comment
There was a problem hiding this comment.
🤖 One regression-test coverage gap; no introduced functional blocker established.
| await user.click( | ||
| within(screen.getByRole("listitem")).getByRole("button", { | ||
| name: "View transcript", | ||
| name: /^View transcript/, |
There was a problem hiding this comment.
🤖 [P3] Protect the new accessible name and loading state
The prefix query also matches the old bare View transcript name. Removing Pi's new aria-label still leaves all 40 Pi/goose tab tests passing; removing goose's new loading branch likewise leaves them passing. Assert the exact View transcript: other · channel name here, and add a goose case with pending history.recent that asserts the Reading goose's sessions… status. These checks would protect the two newly added behaviors against regression.
There was a problem hiding this comment.
🤖 Fixed in 0e87a7b. The Pi test now checks the exact name View transcript: other · channel. A new goose test holds history.recent pending, checks for Reading goose's sessions…, then releases it and checks the empty state. I confirmed both tests fail if the aria-label or the loading branch is removed.
Keep the shared group for populated rows only; empty, loading and error text stays inline, per DESIGN.md. Co-authored-by: piper <2c910ba970d83c8e7ce8d7d7c72b8f0f229e8a3d18cda630c633393205e76aa2@buzz.block.builderlab.xyz> Signed-off-by: Salman Mohammed <[email protected]>
kalvinnchau
left a comment
There was a problem hiding this comment.
🤖 Approved. The prior regression-coverage finding is resolved; no new actionable defects were established. Browser interaction checks passed in Chromium and WebKit. Status framing remains optional design feedback; native/provider behavior and the existing narrow enlarged-text limitation remain outside this approval’s validation coverage.
* origin/main: (39 commits) fix(github): keep PR action menu trigger in place (#1736) fix(goose): preserve default-model focus during pending saves (#1495) test(fixtures): reduce polling waits and repeated signing (#1493) test(inbox): wait for conversation focus before filtering (#1491) fix(desktop): keep the main webview running while it is hidden (#1713) chore(release): version desktop previews from 0.7.0 (#1643) fix(agent-harness): remove the unavailable-tools line from the base prompt (#1715) fix(agents): keep View transcript visible in narrow Pi and goose activity panes (#1717) fix(github-plugin): prefix GitHub plugin tools with github_ (#1726) perf(agents): load Claude and Codex activity without scanning every session (#1674) Improve new DM previews, picker performance, and composer focus (#1664) Polish individual message reactions and emoji settings (#1628) Improve dark-mode separators and composer contrast (#1711) Make decision providers plugins, and move TypeSafe into one (#1353) fix(avatars): use static pack portraits in chat (#1670) fix(channels): read the open thread when returning to a channel (#1639) Add app-wide GIF shortcut and composer previews (#1558) Add PR failure/conflict actions and sidebar unlinking (#1599) Polish queued follow-up previews and controls (#1554) feat(conversation): make emoji and mentions built in (#1673) ... Signed-off-by: morgmart <[email protected]>
…-stop * origin/main: (132 commits) feat(workflows): add combined filters and recent sorting (block#1699) ci: smoke test the browser perf suite on pull requests (block#1662) feat(acp): share one ACP client and server pool across harnesses (block#1227) Preserve recipient picker rows and scroll position during paging (block#1739) Group matching emoji reactions at nine people (block#1740) Open channel Canvas from the channel menu in a side-pane tab (block#570) fix(github): keep PR action menu trigger in place (block#1736) fix(goose): preserve default-model focus during pending saves (block#1495) test(fixtures): reduce polling waits and repeated signing (block#1493) test(inbox): wait for conversation focus before filtering (block#1491) fix(desktop): keep the main webview running while it is hidden (block#1713) chore(release): version desktop previews from 0.7.0 (block#1643) fix(agent-harness): remove the unavailable-tools line from the base prompt (block#1715) fix(agents): keep View transcript visible in narrow Pi and goose activity panes (block#1717) fix(github-plugin): prefix GitHub plugin tools with github_ (block#1726) perf(agents): load Claude and Codex activity without scanning every session (block#1674) Improve new DM previews, picker performance, and composer focus (block#1664) Polish individual message reactions and emoji settings (block#1628) Improve dark-mode separators and composer contrast (block#1711) Make decision providers plugins, and move TypeSafe into one (block#1353) ... Signed-off-by: Joah Gerstenberg <[email protected]> # Conflicts: # src/bundled/voice-notes/VoiceCapture.tsx
Problem
At the default profile pane width, the Activity tab for Pi agents hid every View transcript button, and the "This channel" card ran off the right edge. One long conversation name (for example a
buzz://message?...link) made the whole list wider than the pane. goose had the same bug.Fix
Pi and goose now use the shared
ActivityLayoutstyles,InlineHeaderandSettingsGroup, the same as Claude Code and Codex already do:subtle/sm, and times useformatItemTimestamp, matching the other agent types.Screenshots
These come from a test page that renders the real Pi and goose Activity tabs with sample data, at a 660px pane (the dashed outline). Left is
main, right is this PR.main)Visible View transcript buttons: Pi 0/7 → 7/7, goose 0/6 → 6/6.
Images are stored on the
piper/pr-1717-screenshotsbranch. Don't merge it; delete it after this PR lands.Validation
tsc --noEmitvitest run src/bundled/pi src/bundled/goose src/features/agents: 1032 passeddesign:checkand the commit hooksDeferred: not yet checked in the running app. Steps: open a Pi or goose agent's profile, go to Activity, and leave the pane at its default width. Working means View transcript shows on every row, long names end in "…", and nothing runs past the right edge. Then widen the pane and check that the layout still looks right.