Files
deepseek-harness/apps
imccyu 8c2f5d85b2 fix(ui-conversation): keep the docked composer seat stable (#7591)
* fix(ui-conversation): keep the docked composer seat stable

The active composer seat now keeps one stacking rank (z-index 9) in every
state, a direct compositing reason (will-change: transform), the scroll
floor without relying on a View to fill the column (margin-top: auto), and
no scroll-anchoring role. Composer tooltips portal to the body because the
seat is the containing block for fixed descendants. The width handle keeps
z-index 0 while dragging.

The docked statistics row reserves one reading's height before its
projections arrive, and the header without a Session keeps the blank
Session's 40px row on every platform so both Hero states center the input
card at the same height.

Fixes #7590

* docs(ui-conversation): state the composer fixed-overlay contract

Composer-hosted slots now document that fixed overlays must portal to the
document body, because the docked composer is their containing block; the
client slot catalog is regenerated from that JSDoc. The README also records
that gutter tables cover a captured width-handle drag and that the
composer's backdrop blur is verified only in Chromium. Local comments note
the grayscale text antialiasing of the permanent composer layer, why the
statistics row uses a minimum height, why the sessionless header keeps an
empty title row, and that the Hero offset test assumes the default plugins.

Refs #7590

* docs(ui-conversation): state the back-to-bottom offset as geometry

The composer and back-to-bottom stacking comments now state the resting
16px gap instead of claiming the control never overlaps the input card.

Refs #7590
2026-10-30 12:36:21 +08:00
..
2026-10-29 20:42:48 +08:00
2026-10-29 20:42:48 +08:00
2026-10-29 20:42:48 +08:00