add plan mode, mid-turn message injection, and FlexBool#181
Open
erikswedberg wants to merge 1 commit intoboldsoftware:mainfrom
Open
add plan mode, mid-turn message injection, and FlexBool#181erikswedberg wants to merge 1 commit intoboldsoftware:mainfrom
erikswedberg wants to merge 1 commit intoboldsoftware:mainfrom
Conversation
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>
|
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. |
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.
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: falsewhich 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.