Skip to content

add plan mode, mid-turn message injection, and FlexBool#181

Open
erikswedberg wants to merge 1 commit intoboldsoftware:mainfrom
erikswedberg:eswedberg/plan-mode-and-interrupts
Open

add plan mode, mid-turn message injection, and FlexBool#181
erikswedberg wants to merge 1 commit intoboldsoftware:mainfrom
erikswedberg:eswedberg/plan-mode-and-interrupts

Conversation

@erikswedberg
Copy link
Copy Markdown

@erikswedberg erikswedberg commented Apr 12, 2026

This PR to addresses some of the issues I was having with Shelley. Mostly that it felt kind of slow and muddlesome having to wait a long time between prompts.

This allows users to keep typing while the agent is working - which is useful for things like adding context, adding stuff you forgot, making clarifications, or redirecting it if it's making mistakes. Similarly calls to subagents don't block anymore. It advises the agent to use wait: false which keeps the conversation going. Subagents notify the parents when they are complete. Overall this gives a livelier feel to the session, where you can pay attention and help steer the ship, rather than it feeling hands-off and black-boxy.

Similarly Plan mode is a convenience for letting the agent know not to run off and implement the first thing it thinks of without running it by the user first and getting approval. Patch tools are disabled in Plan Mode but bash is enabled so the agent can search/plan/analyze.


Plan mode: adds [BUILD MODE] / [PLAN MODE] toggle in the status bar. When enabled, editing tools (patch, output_iframe) are filtered from the tool set and [PLAN MODE] is appended to the system prompt. State persists across loop recreation. SSE broadcasts include plan_mode.

Mid-turn message injection: messages sent while the agent is working are now injected between tool calls via QueueUserMessage instead of being deferred until after the turn ends.

Subagent done notifications: when a wait:false subagent finishes, a summary is injected into the parent's loop so the parent agent knows to check results without polling.

FlexBool: fixes a bug where LLMs send "true"/"false" strings instead of native booleans for tool input fields (bash.SlowOK, subagent.Wait).

Closes #88, closes #73, partially addresses #41.

Screenshot 2026-04-12 at 12 44 23 PM Screenshot 2026-04-12 at 12 44 56 PM

Plan mode: adds [BUILD MODE] / [PLAN MODE] toggle in the status bar.
When enabled, editing tools (patch, output_iframe) are filtered from
the tool set and [PLAN MODE] is appended to the system prompt. State
persists across loop recreation. SSE broadcasts include plan_mode.

Mid-turn message injection: messages sent while the agent is working
are now injected between tool calls via QueueUserMessage instead of
being deferred until after the turn ends.

Subagent done notifications: when a wait:false subagent finishes, a
summary is injected into the parent's loop so the parent agent knows
to check results without polling.

FlexBool: fixes a bug where LLMs send "true"/"false" strings instead
of native booleans for tool input fields (bash.SlowOK, subagent.Wait).

Closes boldsoftware#88, closes boldsoftware#73, partially addresses boldsoftware#41.

Co-authored-by: Shelley <shelley@exe.dev>
@cla-bot
Copy link
Copy Markdown

cla-bot bot commented Apr 12, 2026

We require contributors to sign our Contributor License Agreement, and we don't have you on file. In order for us to review and merge your code, please contact @crawshaw at david@bold.dev to get yourself added.

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.

support planning mode Add indicator message when sub-agent completes or fails

1 participant