Skip to content

fix(app): default the composer to agent mode and keep each channel's mode - #88

Merged
iamnbutler merged 7 commits into
mainfrom
calm-grove/composer-agent-mode
Oct 5, 2026
Merged

iamnbutler merged 7 commits into
mainfrom
calm-grove/composer-agent-mode

Conversation

@iamnbutler

Copy link
Copy Markdown
Contributor

Closes #59. Part of #5 and #6.

  • New channels open their composer in agent mode, whether or not they have a selected model or an initial draft.
  • Each channel's agent or message mode now lasts for the app session. It's kept in memory by channel ID, so sending, navigating away and back, or changing another channel's mode doesn't reset it.
  • The Escape shortcut ported from ace-old already worked: Esc leaves agent mode, double Esc within 350 ms enters it, and Esc closes an open mention menu first. When I tested it, Esc turned the leading @ace mode mention into the plain word ace. Message mode then sent "ace hello there" instead of "hello there", and an empty composer was left containing ace . Leaving a mention mode now removes that leading mode mention. Other mentions are still turned into plain text, and the rest of the draft is kept.

Verified against a source host with an isolated ACE_HOME, two fresh channels, and the built app in Chrome, using real keyboard input:

  • Both channels open in agent mode.
  • Esc switches to message mode and keeps "hello there". Sending posts "hello there" as a message without invoking the agent.
  • The other channel stays in agent mode. Returning to the first channel keeps message mode, and the other channel's choice doesn't change it.
  • Double Esc returns to agent mode and keeps the draft. Sending invokes the agent (claude-opus-5-5 ran), and agent mode stays on after the send.
  • Two Escapes 500 ms apart don't toggle the mode.
  • Esc with the mention menu open closes only the menu.

bun types and bun run ci pass.

Built in Ace

Mostly built in Ace. The keyboard checks used Playwright with Google Chrome, driving the built app from an Ace shell. Ace's desktop tools can inspect windows but can't send keystrokes yet (#65), and channels can't drive browser pages (#50). I didn't test this in the packaged desktop window itself.

Refs #23. Show full rolling summaries in the details sidebar, with brief dashboard and channel previews. Preserve existing channel history and lane prefixes.
* feat(desktop): embed native window inspection in Ace

* fix(desktop): keep inspection responsive during folder selection

* chore(desktop): prepare canary 0.0.10
@iamnbutler
iamnbutler merged commit ff88520 into main Oct 5, 2026
1 check passed
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.

Default to agent mode and retain composer mode per channel

1 participant