feat: selective render
This change allows "Goose" (not user, not assistant) to show information to the user which is outside of the user's conversation with the llm, and avoids sending those out-of-band messages to the llm.
ideally, visually, it would be nice to update the prompt so Goose-messages show as a third speaker.
changelist:
- add role Goose
- after truncation, create message to user from Role::Goose and append to the message history
- filter out these Goose-messages before sending to llm-preprocessing
- after llm response, render llm response, then render any goose response if one exists
this keeps the Goose messages in the message history.
Desktop App for this PR
The following build is available for testing:
The app is signed and notarized for macOS. After downloading, unzip the file and drag the Goose.app to your Applications folder.
This link is provided by nightly.link and will work even if you're not logged into GitHub.
how do these messages render in the UI / CLI?
@ahau-square
how do these messages render in the UI / CLI? its the last line of text
As i said above though, i could work on giving it an icon so its clearly another speaker
yeah nice - would be nice in the GUI if it could have some goose like icon or prefix to make it clear it is a side channel message or just from goose? (optional though as most people won't necessarily know or care where it came from probably)
Still like this idea a lot but going to close this out for now and we can open something similar against main when we revisit the use case?