Orq OS · Design study · Mock data

New Chat Button — 6 Variations

The current floating action button overlaps the composer on mobile — it covers typed text once the chips row and hints stack up (see V1). Every frame below renders the same mobile context: end of a message, the artifacts strip (now with the shipped fade fix), the Queue/Modes row, and the V1 composer. Pick the affordance that should replace the FAB.

V1 Current FAB current · has the bug

44px solid circle, fixed bottom-24 right-5. Floats over the composer whenever the stack grows past ~96px — chips row, attachment previews, or a second text line push it onto the textarea.

…the canary gate now evaluates floor + fees before any reprice, so a bad signal holds instead of publishing.
Artifactsseed_run.log15.3 KBverdicts.py7.7 KBout_rows.json107 KB
QueueModes
Message Claude Code…
⏎ send · ⇧⏎ newline
← overlaps composer
Why it fails: fixed offset can't track the composer's variable height. On tall stacks (attachment preview, queue hint) it lands on the textarea itself. Hidden on mobile as of this PR — this card is the baseline to beat.
V2 Controls-row chip lowest risk

+ New chat becomes a chip pinned to the right end of the Queue/Modes row. Lives inside the layout flow — it can never overlap anything, and adds zero vertical space.

…the canary gate now evaluates floor + fees before any reprice, so a bad signal holds instead of publishing.
Artifactsseed_run.log15.3 KBverdicts.py7.7 KBout_rows.json107 KB
QueueModesNew chat
Message Claude Code…
⏎ send · ⇧⏎ newline
Pros: impossible to overlap; works identically on desktop; one-tap reach from the composer. Tradeoff: less visually prominent than a FAB; competes with Modes pills for row width on very narrow screens (wraps gracefully).
V3 Header compose icon

The mobile-standard "compose" affordance (Messages, Mail): a pencil-square icon button on the right side of the chat header, always visible regardless of scroll or composer state.

Parking repricer — Phase B
Idle
…the canary gate now evaluates floor + fees before any reprice, so a bad signal holds instead of publishing.
Artifactsseed_run.log15.3 KBverdicts.py7.7 KBout_rows.json107 KB
QueueModes
Message Claude Code…
⏎ send · ⇧⏎ newline
Pros: conventional, always in the same spot, zero overlap by construction. Tradeoff: header is already crowded on mobile (model/effort chips scroll); one more icon competes with Complete and pickers.
V4 Floating pill, safe-docked

Keeps the FAB idea but makes it an extended pill (+ New chat) anchored above the whole composer stack with a real gap, and auto-hides while the textarea is focused or the keyboard is open.

…the canary gate now evaluates floor + fees before any reprice, so a bad signal holds instead of publishing.
Artifactsseed_run.log15.3 KBverdicts.py7.7 KBout_rows.json107 KB
New chat
QueueModes
Message Claude Code…
⏎ send · ⇧⏎ newline
Pros: keeps the prominent, labeled FAB feel; hides exactly when it would get in the way. Tradeoff: needs focus/keyboard listeners to stay safe — the most logic of any option; still floats over the artifacts strip when it appears.
V5 Docked corner FAB

A smaller 34px rounded square that docks onto the composer box's top-right corner with a canvas-colored keyline — deliberately attached to the composer rather than free-floating over it.

…the canary gate now evaluates floor + fees before any reprice, so a bad signal holds instead of publishing.
Artifactsseed_run.log15.3 KBverdicts.py7.7 KBout_rows.json107 KB
QueueModes
Message Claude Code…
⏎ send · ⇧⏎ newline
Pros: reads as "attached to the composer," not spilled onto it; small target but always the same spot; moves with the box as it grows. Tradeoff: 34px is below the 44px touch-target guideline; icon-only (label via tooltip/title).
V6 Docked in the strip row

A 26px + button pinned to the right end of the strip row above the composer — the spot the current FAB visually collides with, but inside the layout. When no artifacts exist it sits in the Queue/Modes row instead (same as V2, icon-only).

…the canary gate now evaluates floor + fees before any reprice, so a bad signal holds instead of publishing.
Artifactsseed_run.log15.3 KBverdicts.py7.7 KB
QueueModes
Message Claude Code…
⏎ send · ⇧⏎ newline
Pros: tiny, in-flow, and exactly where your eye was drawn by the old FAB. Tradeoff: two possible homes (strip vs. chips row) makes the position conditional; icon-only is less discoverable for a primary action.