fix: thread composer send button sits mid-row instead of flush right#101
Conversation
|
Codex review: needs changes before merge. Reviewed July 19, 2026, 2:21 AM ET / 06:21 UTC. Summary Reproducibility: no. independent current-main browser reproduction was run; however, the supplied CSS grid structure and the PR's before/after UI evidence make the optional-icon placement path source-reproducible with medium confidence. Review metrics: 1 noteworthy metric.
Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Next step before merge
Security Review findings
Review detailsBest possible solution: Land the conditional grid layout and its matching rebuilt assets after removing the release-owned Do we have a high-confidence way to reproduce the issue? No independent current-main browser reproduction was run; however, the supplied CSS grid structure and the PR's before/after UI evidence make the optional-icon placement path source-reproducible with medium confidence. Is this the best way to solve the issue? Yes, conditionally matching the grid columns to the rendered children is the narrowest maintainable fix; the branch should not also change the release-owned changelog. Full review comments:
Overall correctness: patch is correct AGENTS.md: found, but no applicable review policy affected this item. Codex review notes: model internal, reasoning high; reviewed against 7314f189bc97. Label changesLabel changes:
Label justifications:
Evidence reviewedAcceptance criteria:
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
What Problem This Solves
Fixes an issue where the send button in thread reply composers (the thread panel and the new
/embed/thread/view) rendered mid-row instead of flush right, leaving dead space after it.Why This Change Was Made
.composer-rowalways declared three grid columns (upload icon, textarea, send), but the upload icon only renders in the main channel composer. Without it, auto-placement shifted the textarea into the icon'sautocolumn and stranded the send button in the1frcolumn. The template is now two columns by default, with the third icon column restored via:has(.composer-icon)when the icon exists — so the columns always match the rendered children.User Impact
The reply composer's send button now sits flush right in thread panels and embedded threads. The main channel composer is unchanged.
Evidence
Embed after the fix, and the main channel composer (upload icon present) showing no regression:
Before (mid-row button): see the light/dark screenshots on #100.
pnpm fmt:ts:checkpasses; embedded dist rebuilt viapnpm build.