Skip to content

feat: add composer send/stop button aligned with the Qoder IDE - #23

Merged
luoxuanzao merged 2 commits into
mainfrom
feature/composer-send-stop-button
Aug 16, 2026
Merged

feat: add composer send/stop button aligned with the Qoder IDE#23
luoxuanzao merged 2 commits into
mainfrom
feature/composer-send-stop-button

Conversation

@luoxuanzao

Copy link
Copy Markdown
Member

Summary

  • Add a send/stop action button to the chat composer toolbar: send (arrow-up) when idle, stop (filled square) while streaming, mirroring the Qoder IDE composer affordance.
  • IDE-aligned styling: brand-green rounded square with a soft dark (70% black) arrow; dimmed and non-clickable when the composer is empty; grouped flush against the permission toggle at the row's right edge (with a fallback that keeps right alignment when the toggle is hidden).
  • Send routes through the input controller (and the existing Enter path in instruction/bang modes); stop calls cancelStreaming; availability tracks input text, attached images, and streaming-state changes.
  • Localize composer.send / composer.stop across all 10 locales; add component tests and a CHANGELOG entry.
  • Why: mouse-only users had no way to send or interrupt a run; the IDE already ships this control, so the plugin now matches it.

Verification

  • npm run typecheck
  • npm run lint
  • npm run test (142 suites / 3306 tests green)
  • npm run build
  • npm run release:check
  • npm run audit:prod (0 vulnerabilities)
  • Tested affected qodercli behavior against a real CLI when applicable — verified in a real test vault against the live SDK: empty-disabled, enable-on-typing, send-on-click, stop icon during a real streaming run, click-to-interrupt, and recovery to disabled.

Safety

  • No credentials, private vault content, internal URLs, or personal paths are included
  • User-visible changes are documented in CHANGELOG.md

luoxuanzao and others added 2 commits August 16, 2026 09:41
- Add ComposerActionButton (send when idle, stop while streaming) at the
  right end of the input toolbar, grouped next to the permission toggle
- IDE-style green rounded square with soft dark arrow; disabled when the
  composer is empty and not streaming
- Wire send through the input controller (Enter path in instruction/bang
  modes), stop through cancelStreaming; availability tracks input text,
  attached images and streaming state changes
- Localize composer.send/composer.stop across all 10 locales
- Add component tests and a CHANGELOG entry

Co-authored-by: QoderAI (Qwen 3.8 Max) <qoder_ai@qoder.com>
PR review CSS lint flagged the !important overrides. Obsidian's native
button defaults are beaten with a (0,3,1) selector chain
(.qoderian-input-wrapper .qoderian-input-toolbar button.qoderian-composer-action-btn)
instead, which also zeroes the native box-shadow. Verified on device:
brand-green fill and gray-black arrow unchanged, no native shadow.

Co-authored-by: QoderAI (Qwen 3.8 Max) <qoder_ai@qoder.com>
@luoxuanzao
luoxuanzao merged commit 71340ea into main Aug 16, 2026
10 checks passed
@luoxuanzao
luoxuanzao deleted the feature/composer-send-stop-button branch August 16, 2026 02:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant