Skip to content

Commit 7870366

Browse files
committed
impl observe_chat_reset()
1 parent d31ed34 commit 7870366

File tree

1 file changed

+16
-1
lines changed

1 file changed

+16
-1
lines changed

jupyter_ai_router/router.py

Lines changed: 16 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,17 @@ def observe_chat_init(self, callback: Callable[[str, "YChat"], Any]) -> None:
7373
self.chat_init_observers.append(callback)
7474
self.log.info("Registered new chat initialization callback")
7575

76+
def observe_chat_reset(self, callback: Callable[[str, "YChat"], Any]) -> None:
77+
"""
78+
Register a callback for when a `YChat` document is reset. This will only
79+
occur if `jupyter_server_documents` is installed.
80+
81+
Args:
82+
callback: Function called with (room_id: str, new_ychat: YChat) when chat resets
83+
"""
84+
self.chat_reset_observers.append(callback)
85+
self.log.info("Registered new chat reset callback")
86+
7687
def observe_slash_cmd_msg(
7788
self, room_id: str, command_pattern: str, callback: Callable[[str, str, Message], Any]
7889
) -> None:
@@ -241,7 +252,11 @@ def _on_chat_reset(self, room_id, ychat: "YChat") -> None:
241252
installed.
242253
"""
243254
self.log.warning(f"Detected `YChat` document reset in room '{room_id}'.")
244-
pass
255+
for callback in self.chat_reset_observers:
256+
try:
257+
callback(room_id, ychat)
258+
except Exception as e:
259+
self.log.error(f"Reset chat observer error for {room_id}: {e}")
245260

246261
def cleanup(self) -> None:
247262
"""Clean up router resources."""

0 commit comments

Comments
 (0)