anomalyco / anomalyco/opencode
[Bug]: V2 removed UI-only session messages available through ignored + noReply
@kitlangton is already working on this.
Since Sep 12, 2026.
- Dominant language
- TypeScript
- Stars
- 209k
- Forks
- 27.5k
- PR merge metrics
- PR metrics pending
Description
Description
V1 plugins could display a session message without starting the agent and without adding the text to model context:
await client.session.prompt({
path: { id: sessionID },
body: {
noReply: true,
parts: [{ type: 'text', text: notice, ignored: true }],
},
})
This was useful for plugin status messages such as provider failover and cooldown notices.
V2 removed noReply and ignored text parts. The closest API is:
await client.session.synthetic({
sessionID,
text: notice,
description: 'Provider fallback',
resume: false,
})
resume: false prevents an immediate execution, but the synthetic input is later promoted into the transcript as a user-role model message. Compaction also retains it as synthetic context.
V2 needs a way to add a visible session notice that:
- does not start or resume execution
- is rendered by TUI, Desktop, and Web clients
- never enters model context or compaction
This is narrower than #6330. It restores behavior available to V1 server plugins.
Plugins
@subrouter/opencode
OpenCode version
V1: 1.18.23
V2: 2.0.2
Steps to reproduce
- Call
session.synthetic()withdescriptionandresume: false. - Start the next session execution.
- Inspect the provider request.
- The synthetic
textappears as a user-role model message. - There is no V2 equivalent of the V1
ignored: trueplusnoReply: truebehavior.
Screenshot and/or share link
N/A
Operating System
macOS
Terminal
N/A, plugin SDK
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Assessment
This issue has not been assessed yet.