feat: role conversations and tasks as chats with a fixed composer #18

Merged
morten-olsen merged 2 commits from mc/f6b1529e-19fc-4a59-b782-7a170ed3a807 into main 2026-10-07 19:16:11 +02:00
Contributor

Summary

Implements the agreed design on the task (Designer's proposal): both screens become a chat.

  • Shared chat frame (ChatPane): only the list scrolls, the composer is fixed (safe-area aware). Opening lands on the last message. An agent's reply (or a pending review) is scrolled to the top of the view with room under it; if you have scrolled up, a "New reply" / "New activity" pill appears instead. Sending always brings you to the end.
  • Composer is a bar: Enter sends, Shift+Enter a new line, grows to ~6 lines, 44px Send on touch.
  • Role conversation: transcript is a header button opening a dialog (full screen on mobile); Following is a header popover; working state / failure is a slim row above the composer with Stop / Start afresh.
  • Task: title, description (clamped to 3 lines, "Show more"), activity, then what waits for you (review card, open PRs) in the flow, then the composer. Properties, merged/closed PRs, runs (one-line rows opening the same transcript dialog) and images are in the side panel; below lg it is a right sheet, closed by default, opened by an ⓘ button with a badge counting items needing you.

Evidence

  • pnpm -r check, eslint, depcruise, web unit tests: pass.
  • Not verified: Playwright e2e and visual behaviour. The container's headless Chromium cannot start (missing libglib-2.0), so the scroll behaviour, mobile sheet and dialog were not seen rendered. Please look at them (or the Designer) before relying on them. Existing e2e selectors (Leave a comment…, Waiting for review) are kept.

Merge danger

Web-only; no API or data changes. Rollback: revert this commit.

🤖 Generated with Claude Code

## Summary Implements the agreed design on the task (Designer's proposal): both screens become a chat. - **Shared chat frame** (`ChatPane`): only the list scrolls, the composer is fixed (safe-area aware). Opening lands on the last message. An agent's reply (or a pending review) is scrolled to the top of the view with room under it; if you have scrolled up, a "New reply" / "New activity" pill appears instead. Sending always brings you to the end. - **Composer** is a bar: Enter sends, Shift+Enter a new line, grows to ~6 lines, 44px Send on touch. - **Role conversation**: transcript is a header button opening a dialog (full screen on mobile); Following is a header popover; working state / failure is a slim row above the composer with Stop / Start afresh. - **Task**: title, description (clamped to 3 lines, "Show more"), activity, then what waits for you (review card, open PRs) in the flow, then the composer. Properties, merged/closed PRs, runs (one-line rows opening the same transcript dialog) and images are in the side panel; below `lg` it is a right sheet, closed by default, opened by an ⓘ button with a badge counting items needing you. ## Evidence - `pnpm -r check`, eslint, depcruise, web unit tests: pass. - **Not verified: Playwright e2e and visual behaviour.** The container's headless Chromium cannot start (missing `libglib-2.0`), so the scroll behaviour, mobile sheet and dialog were not seen rendered. Please look at them (or the Designer) before relying on them. Existing e2e selectors (`Leave a comment…`, `Waiting for review`) are kept. ## Merge danger Web-only; no API or data changes. Rollback: revert this commit. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
feat: role conversations and tasks as chats with a fixed composer
All checks were successful
ci/woodpecker/pr/docs Pipeline was successful
ci/woodpecker/pr/quality Pipeline was successful
ci/woodpecker/pr/image Pipeline was successful
ci/woodpecker/push/quality Pipeline was successful
ci/woodpecker/push/docs Pipeline was successful
4f3dea5171
The composer is fixed under the list, a page opens on its last message and
an agent's reply is scrolled to the top of the view. The role transcript moves
to a dialog and Following to a header popover. A task shows what waits for a
person (review, open pull requests) at the end of the conversation, with
properties, merged pull requests, runs and images in a side panel that is a
sheet on small screens.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
fix: a new comment is not hidden under what awaits review, loading shows a skeleton
All checks were successful
ci/woodpecker/push/quality Pipeline was successful
ci/woodpecker/pr/quality Pipeline was successful
ci/woodpecker/push/docs Pipeline was successful
ci/woodpecker/pr/docs Pipeline was successful
ci/woodpecker/pr/image Pipeline was successful
b3aa39b439
The newest entry, not the pending block, is brought to the top after the
first view; what you send resets the room under the anchor. The conversation
shows a skeleton and a disabled composer while it loads, header buttons are
44px on touch, and a failed send no longer leaves the next arrival treated as
yours.

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
morten-olsen deleted branch mc/f6b1529e-19fc-4a59-b782-7a170ed3a807 2026-10-07 19:16:11 +02:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
ai/mission-control!18
No description provided.