Skip to content

fix(web): show the attachment tile above the composer - #157

Merged
TheGreatAxios merged 2 commits into
corbitsdev:mainfrom
pratikbuilds:fix/composer-clips-attachment-tile
Nov 4, 2026
Merged

TheGreatAxios merged 2 commits into
corbitsdev:mainfrom
pratikbuilds:fix/composer-clips-attachment-tile

Conversation

@pratikbuilds

@pratikbuilds pratikbuilds commented Nov 4, 2026 •

Copy link
Copy Markdown
Contributor

Fixes #153.

What changed

.composer was a scroll container (max-height: 70vh; overflow-y: auto). The attachment tray (PromptInputFloat) is drawn above the message box with absolute bottom-full, so that scroll container cut it down to a sliver.

The scroll was there to keep the send, stop, attach and mic controls on screen. Only the rows above the box actually need it: the attach and send errors, the earlier-document caution and the suggested replies. The textarea already caps itself at min(200px, 30vh) and scrolls.

This PR:

  • stops .composer from scrolling but keeps its 70vh cap
  • wraps the rows above the box in one .composer-notes region (workspace/index.tsx). That region scrolls once the composer reaches its cap, so the box below keeps its full height, and the attachment tray and model list float above it unclipped.
  • deletes the :has(...) { overflow: visible } exceptions that worked around the old clipping. The model-list exception isn't needed without the clip. The .sbpick and .reviewer-stance exceptions matched nothing: no markup in apps/web/src uses those classes.

The index.tsx diff is mostly reindentation from the wrapper.

Verification

  • bun run lint, format:check and typecheck pass. The web unit tests pass (104).
  • Checked in the running app (Chrome) on a project's workspace composer:
    • Attached a PNG with the paperclip, a second by dropping it on the box and a third by pasting it into the textarea. Each tile showed in full above the box, ending up as a stack of three with a count badge. Removing them cleared the tray.
    • With the attachments held, entered 120 lines of text. The textarea stopped at 200px and scrolled, the tray stayed visible, and mic, attach and send stayed reachable.
    • Repeated the attachment and long-text checks in dark mode.
    • Opened the model profile list on the new-project composer. It floats above the box, unclipped.
    • Worst case for the notes: both errors, the caution, four 80-character suggested replies (the most suggestedReplies allows) and long text at once. In a full window the composer grew to 505px with nothing scrolling. With the cap forced to 350px (70vh of a 500px window), the notes scrolled as one region, the box kept its 214px, and the tile, attach and send stayed visible. With no notes, the empty region takes no space.

The composer scrolled its own overflow at 70vh, which clipped the
attachment tray floating above the message box to a sliver. The
textarea already caps its height and scrolls, so the composer's scroll
no longer kept any control in reach. Drop it, and with it the
overflow exceptions for the send-back picker, model list and reviewer
notes.

Fixes corbitsdev#153
@corbits-triage

corbits-triage Bot commented Nov 4, 2026 •

Copy link
Copy Markdown

Triage: Pass

No changes needed from you. A maintainer will review this pull request.

Comment thread apps/web/src/styles.css Resolved
Without a cap, the errors, the earlier-document caution and the
suggested replies above the box could make the composer taller than a
short pane and push the send, stop, attach and mic controls past its
edge. Put back the 70vh cap and let those rows give way instead: they
share one region that scrolls, so the box below keeps its full height
and nothing clips the attachment tray floating above it.

@corbits-triage corbits-triage Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

No defects reported.

@TheGreatAxios
TheGreatAxios added this pull request to the merge queue Nov 4, 2026
Merged via the queue into corbitsdev:main with commit 3621fb8 Nov 4, 2026
9 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

An attached file is hidden: the composer's scroll clips the attachment tile

2 participants