Skip to content

fix(desktop): stabilize composer during session switches and resizing - #5513

Draft
colaforniaw wants to merge 10 commits into
apache:mainfrom
colaforniaw:fix/composer-session-switch-stability
Draft

colaforniaw wants to merge 10 commits into
apache:mainfrom
colaforniaw:fix/composer-session-switch-stability

Conversation

@colaforniaw

@colaforniaw colaforniaw commented Sep 19, 2026

Copy link
Copy Markdown
Contributor

Summary

Switching Sessions could briefly show controls from the previous Session, while narrow Composer widths could compress the footer into the send button. An empty Composer could also show the branch icon through the translucent disabled Send button.

This change keeps the Composer footer on one row with a 520px minimum conversation width, preserves fixed space for Send, prevents stale session branch state from painting during a switch, and gives the Send/Stop slot an opaque backing while keeping the existing disabled appearance.

The Workbar remains under user control; narrow widths do not automatically move or collapse it.

Before / After

Scenario Before After
Narrow window: Composer footer
media-before.mp4
Kapture.2026-09-20.at.16.19.50.mp4
Session switch: stale controls and usage flicker
switch-flicker-before.mp4
switch-flicker-after.mp4

Verification

  • Manual visual verification confirmed the Composer remains single-line, the Send button no longer reveals the branch icon, and Session switching no longer shows stale branch state.
  • git diff --check passed.
  • npm --workspace @maka/desktop run check:architecture -- --base d0dd3edf202f120c5ea950825160dfd02b426145 --strict-base passed, including 112 architecture checker tests.
  • Final typecheck and focused tests were not rerun after the last visual fixes; they should be run before merge.

AI use

  • No generative tool made a substantive contribution
  • Generative tooling made a substantive contribution

Tool(s) and scope: Codex assisted with the Composer behavior, layout, usage state, and regression coverage. The commit carries Generated-by: Codex.

Checklist

  • Tests cover the change and fail without it
  • Lint, format, typecheck and the affected suites pass locally

Does this PR entail a change in behavior?

  • Yes — described under Summary above
  • No

@github-actions github-actions Bot added the effort/L Under 1000 readable lines label Sep 19, 2026
@colaforniaw
colaforniaw force-pushed the fix/composer-session-switch-stability branch 2 times, most recently from 2cc6674 to 3d0581a Compare September 20, 2026 06:22
colafornia added 9 commits September 21, 2026 14:41
Keep the composer and model controls stable as session state changes, and restore drafts before paint. Preserve permission and usage controls while their session-specific data resolves, with a compact pending usage state.

Set a 520px minimum conversation width and keep footer controls on one line as available space narrows. Add regression coverage for the layout and session transition behavior.

Generated-by: Codex
Constrain the left footer slot to the width left by the fixed send action and let the model label shrink sooner in narrow conversations.

Generated-by: Codex
Apply width constraints to the Selector Field wrapper and preserve the start of model labels when truncating. Place the pending usage accessibility state on its value node and update the affected assertions.

Generated-by: Codex
@colaforniaw
colaforniaw force-pushed the fix/composer-session-switch-stability branch from 6cf3727 to 411f0cf Compare September 21, 2026 07:06
@colaforniaw
colaforniaw force-pushed the fix/composer-session-switch-stability branch from 63f7faa to c03fedf Compare September 21, 2026 09:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

effort/L Under 1000 readable lines

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant