Verified in the real web client

The long task drawer is contained now.

The bug was real: the expanded task list could grow to its full content height, putting the header controls beyond reach. The fix bounds only the list, gives it its own vertical scroll, and leaves collapse and dismiss controls fixed above it.

Fixed and verified
BeforeUser report
Before: a long task list grows taller than the narrow viewport and its controls cannot be reached.
After390 × 844 viewport
After: the task list scrolls inside a bounded drawer while collapse, dismiss, composer, and branch controls remain visible.

What changed

The task rows now live in an independently scrolling region. The drawer header remains outside that region and includes an explicit collapse chevron.

557 → 338 px

Content height versus visible task-list height; scrolling confirmed.

16 / 16

Every seeded task remains in the list, including the final row.

6 / 6

Focused component tests passed, plus format, lint, and web typecheck.

Implementation

The list uses max-height: min(24rem, 40dvh), overflow-y: auto, and contained overscroll. The header and composer controls are not part of the scrolling element.

Measured result

At 390 × 844, the drawer header and dismiss control stayed at y 378–398, the scroll region occupied y 404–742, and the composer remained fully visible through y 792.