diff options
| author | Timo Clasen <[email protected]> | 2025-07-20 01:20:07 +0200 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-07-19 18:20:07 -0500 |
| commit | a524fc545c94a9af335e0a618bd53f0e2c5acd9c (patch) | |
| tree | b0a386cf3b402083b9d2766e5f9e9a8c77957043 | |
| parent | 4316edaf43c3d12c08d3cdb4b8daa497e2975204 (diff) | |
| download | opencode-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.ts | 6 |
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, |
