Skip to content

Commit 7a181ba

Browse files
feat(hooks): emit session:end lifecycle event (NousResearch#1725)
Based on PR NousResearch#1432 by @bayrakdarerdem. session:start was already on main; this adds the session:end event. Co-authored-by: bayrakdarerdem <bayrakdarerdem@users.noreply.github.com>
1 parent e532eb6 commit 7a181ba

2 files changed

Lines changed: 11 additions & 3 deletions

File tree

gateway/hooks.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,9 @@
88
99
Events:
1010
- gateway:startup -- Gateway process starts
11-
- session:start -- New session created
12-
- session:reset -- User ran /new or /reset
11+
- session:start -- New session created (first message of a new session)
12+
- session:end -- Session ends (user ran /new or /reset)
13+
- session:reset -- Session reset completed (new session entry created)
1314
- agent:start -- Agent begins processing a message
1415
- agent:step -- Each turn in the tool-calling loop
1516
- agent:end -- Agent finishes processing

gateway/run.py

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2178,7 +2178,14 @@ async def _handle_reset_command(self, event: MessageEvent) -> str:
21782178

21792179
# Reset the session
21802180
new_entry = self.session_store.reset_session(session_key)
2181-
2181+
2182+
# Emit session:end hook (session is ending)
2183+
await self.hooks.emit("session:end", {
2184+
"platform": source.platform.value if source.platform else "",
2185+
"user_id": source.user_id,
2186+
"session_key": session_key,
2187+
})
2188+
21822189
# Emit session:reset hook
21832190
await self.hooks.emit("session:reset", {
21842191
"platform": source.platform.value if source.platform else "",

0 commit comments

Comments
 (0)