Repository navigation
refactor(workbench): one quiet composer toolbar - #2388
Merged
Merged
Conversation
The composer stacked a mainchain pill strip, a bordered toolbar and a bulleted status list under the input: three rows restating the same agent/target/readiness facts, plus an Enter keycap that read as a button. - Drop the mainchain strip; the agent and target pickers already show the same labels and the disabled send button carries the blocker. - Delete the strip component, its four label helpers, the chrome flag and the derived-state fields that only fed it. - Pickers become flat ghost controls sized to their content; the native select overlays them invisibly so the chevron sits next to the label instead of at the end of a fixed-width box. - Status telemetry collapses to one truncating line at 60% muted ink. Co-authored-by: Codex <codex@delicious233.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
The composer was three stacked rows of the same two facts: a mainchain pill strip (
Agent 未选/目标 …/需填写内容), a bordered toolbar repeating the same agent and target pickers, and a bulleted status list repeating the target a third time. Plus anEnterkeycap that looked like a button. Screenshot proof of the "before" state is in the issue thread.Now it is one card: input on top, one flat toolbar at the bottom, one quiet status line under it.
mainchainStripchrome flag + the derived-state fields that only fed it). The pickers already render the same labels, and the disabled send button already carries the blocker.<select>now overlays the visible label invisibly, so the chevron sits next to the text instead of floating at the end of a fixed 9.5–11rem box.Enterkeycap and the toolbar divider removed; the toolbar sits flush right against the send button.*, *::before, *::after { margin: 0; padding: 0 }reset intokens-base.csswas unlayered, so it beat every@layer utilitiesrule. Every Tailwind margin utility in the repo (mx-auto,ml-auto,mb-1,space-*) was silently a no-op. The reset now lives in@layer base; that is why the send button finally sits on the right edge.Verification
tsc -bshared / workbench / web: clean.lint:css(stylelint, fail-closed) clean; eslint 0 errors (pre-existing warnings only).verify-doc-ssot.pyok;git diff --checkclean.overflow=falsein all, re-run after the reset change to prove the newly-effective margins did not shift the rest of the shell.visual:qa:chat): 1440x810 light+dark, 768x900, plus composer empty / multiline / mention / approval / attachment states in both themes; contractoverflow=false.Notes
The two composer integration tests that asserted the removed strip's strings now assert behaviour instead: mention chip present, target select holds the chosen id, send disabled until there is text.