7 months ago
93d43c9* fix(desktop): move busy composer guidance into a dedicated status row The steering/busy hints (steer-ready, steer-pending, streaming) now render in a fixed-height PromptInputStatusRow between the textarea body and the footer controls. This prevents the hint copy from colliding with the model chip and submit button when the footer wraps. - Add PromptInputStatusRow component with fixed h-6, single-line, truncated presentation - Make PromptInputFooter non-wrapping (flex-nowrap) so the model area and submit button stay on one line - Add overflow-hidden to PromptInputTools so the model selector truncates instead of pushing the footer wider - Return null from composerBusyHint for idle state, removing the redundant "Press Enter to send" footer copy - Update tests to assert status row presence and idle-state absence Made-with: Cursor * fix(desktop): resolve busy composer overflow by making textarea shrinkable The fixed messageBarHeight (120px) couldn't fit the textarea min-height (52px) + status row (24px) + footer (~48px) + padding. Changed textarea min-h from 3.25rem to min-h-0 so the flex column can actually shrink. Added overflow-hidden to PromptInputBody to clip textarea content. Shortened the busy placeholder from "Type to steer the current run..." to "Steer..." to avoid echoing the status row hint text. Made-with: Cursor * fix(desktop): restore textarea visibility by switching container to minHeight The fixed `height: messageBarHeight` (120px) couldn't fit the textarea min-height + status row + footer. The previous min-h-0 fix collapsed the textarea to zero. Switch to `minHeight` so the container grows naturally when the status row appears during busy state, while still respecting the resizer floor. Restore textarea min-h-[3.25rem] and drop the overflow-hidden band-aid from PromptInputBody. Made-with: Cursor * fix(desktop): render busy status row above the textarea, not below it Moves the PromptInputStatusRow from between the textarea body and footer to above the textarea body. The steering hint text now appears at the top of the composer shell where it has clear visual separation from both the input area and the footer controls. Made-with: Cursor * fix(desktop): clarify message bar minimum height semantics Co-authored-by: Codex <noreply@openai.com> * perf: optimize startup control bootstrap and package footprint (#64) * perf: optimize startup control bootstrap and package footprint Combine the kept packaging, startup-lazification, control-session fast-path, runtime schema split, and prompt-template dedupe work into one reviewable branch. The kept changes overlap across package.json, startup/session modules, prompt loading, and prompt-template assets, so they need to land together from merge-base. Experiments: #2, #3, #12, #13, #15, #17, #19, #23, #25, #27, #28, #30, #32, #33, #34, #35, #38, #39, #42, #44, #45, #46, #48, #49, #50, #52, #53 Metric: control_bootstrap_pack_score 3987.2 → 2277.6 (-42.9%) Secondary highlights: packed_kb 3635.0 → 2194.5, server_ready_ms 337.9 → 68.3, control_bootstrap_ms 343.0 → 71.0 * fix: preserve discovered skills for child sessions Made-with: Cursor * test: fix stream pipeline session fixture Made-with: Cursor * fix: preserve prompt readiness with zero skills Track whether session prompt metadata has been loaded so empty skill catalogs do not trigger prompt reloads on every turn. Also harden the package manifest test under Bun and cover the missing-metadata backfill path. Made-with: Cursor * fix(desktop): move busy composer guidance into a dedicated status row The steering/busy hints (steer-ready, steer-pending, streaming) now render in a fixed-height PromptInputStatusRow between the textarea body and the footer controls. This prevents the hint copy from colliding with the model chip and submit button when the footer wraps. - Add PromptInputStatusRow component with fixed h-6, single-line, truncated presentation - Make PromptInputFooter non-wrapping (flex-nowrap) so the model area and submit button stay on one line - Add overflow-hidden to PromptInputTools so the model selector truncates instead of pushing the footer wider - Return null from composerBusyHint for idle state, removing the redundant "Press Enter to send" footer copy - Update tests to assert status row presence and idle-state absence Made-with: Cursor * fix(desktop): resolve busy composer overflow by making textarea shrinkable The fixed messageBarHeight (120px) couldn't fit the textarea min-height (52px) + status row (24px) + footer (~48px) + padding. Changed textarea min-h from 3.25rem to min-h-0 so the flex column can actually shrink. Added overflow-hidden to PromptInputBody to clip textarea content. Shortened the busy placeholder from "Type to steer the current run..." to "Steer..." to avoid echoing the status row hint text. Made-with: Cursor * fix(desktop): restore textarea visibility by switching container to minHeight The fixed `height: messageBarHeight` (120px) couldn't fit the textarea min-height + status row + footer. The previous min-h-0 fix collapsed the textarea to zero. Switch to `minHeight` so the container grows naturally when the status row appears during busy state, while still respecting the resizer floor. Restore textarea min-h-[3.25rem] and drop the overflow-hidden band-aid from PromptInputBody. Made-with: Cursor * fix(desktop): render busy status row above the textarea, not below it Moves the PromptInputStatusRow from between the textarea body and footer to above the textarea body. The steering hint text now appears at the top of the composer shell where it has clear visual separation from both the input area and the footer controls. Made-with: Cursor * fix(desktop): clarify message bar minimum height semantics Co-authored-by: Codex <noreply@openai.com> * fix(desktop): restore composer submit state colors Use explicit primary, warning, and destructive tokens so send, steer, and stop remain visually distinct and legible. Made-with: Cursor * fix(desktop): keep composer controls reachable Allow the composer footer to wrap again so narrow layouts do not clip attach or model controls, and align the busy attachment stability test with a real active-thread state. Made-with: Cursor --------- Co-authored-by: Codex <noreply@openai.com> Co-authored-by: Max Weinbach <maxweinbach5@gmail.com>
Parentb4ed93e