summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorTimo Clasen <[email protected]>2025-07-20 01:20:07 +0200
committerGitHub <[email protected]>2025-07-19 18:20:07 -0500
commita524fc545c94a9af335e0a618bd53f0e2c5acd9c (patch)
treeb0a386cf3b402083b9d2766e5f9e9a8c77957043
parent4316edaf43c3d12c08d3cdb4b8daa497e2975204 (diff)
downloadopencode-a524fc545c94a9af335e0a618bd53f0e2c5acd9c.tar.gz
opencode-a524fc545c94a9af335e0a618bd53f0e2c5acd9c.zip
fix(hooks): prevent session_complete hook from firing on subagent sessions (#1149)
-rw-r--r--packages/opencode/src/config/hooks.ts6
1 files changed, 5 insertions, 1 deletions
diff --git a/packages/opencode/src/config/hooks.ts b/packages/opencode/src/config/hooks.ts
index 973575b72..8772c9c6c 100644
--- a/packages/opencode/src/config/hooks.ts
+++ b/packages/opencode/src/config/hooks.ts
@@ -31,9 +31,13 @@ export namespace ConfigHooks {
}
})
- Bus.subscribe(Session.Event.Idle, async () => {
+ Bus.subscribe(Session.Event.Idle, async (payload) => {
const cfg = await Config.get()
if (cfg.experimental?.hook?.session_completed) {
+ const session = await Session.get(payload.properties.sessionID)
+ // Only fire hook for top-level sessions (not subagent sessions)
+ if (session.parentID) return
+
for (const item of cfg.experimental.hook.session_completed) {
log.info("session_completed", {
command: item.command,