Description
Happening since the update - each plugin event is fired multiple times
OpenCode version
v1.0.11
Steps to reproduce
- Create a simple plugin that writes the event type into a file.
export const NotificationPlugin: Plugin = async ({ client, $ }) => {
return {
event: async ({ event }) => {
await $`echo ${event.type} >> /tmp/events.txt`;
},
}
}
-
Run opencode, and start a conversation. e.g. hi
-
Look at the file in /tmp/events.txt
This is the output:
session.created
session.created
session.created
session.created
session.created
session.created
session.created
session.created
session.created
session.updated
session.updated
session.updated
session.updated
session.updated
session.updated
session.updated
session.updated
session.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
session.updated
session.updated
session.updated
session.updated
session.updated
session.updated
session.updated
session.updated
session.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
session.updated
session.updated
session.updated
session.updated
session.updated
session.updated
session.updated
session.updated
session.updated
session.updated
session.updated
session.updated
session.updated
session.updated
session.updated
session.updated
session.updated
session.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.part.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
session.idle
session.idle
session.idle
session.idle
session.idle
session.idle
session.idle
session.idle
session.idle
session.updated
session.updated
session.updated
session.updated
session.updated
session.updated
session.updated
session.updated
session.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
message.updated
Screenshot and/or share link
No response
Operating System
macOS 26.0.1
Terminal
tmux inside ghostty
Description
Happening since the update - each plugin event is fired multiple times
OpenCode version
v1.0.11
Steps to reproduce
Run opencode, and start a conversation. e.g.
hiLook at the file in /tmp/events.txt
This is the output:
Screenshot and/or share link
No response
Operating System
macOS 26.0.1
Terminal
tmux inside ghostty