Files
millerson-overlay.nix/packages/haivemind/fix-chat-log-race.patch
Alexander Miroshnichenko 2c5e64039a fix(haivemind): start engine after MainScreen mounts to avoid NoMatches on #chat-log
Upstream haivemind_tui.py started the engine synchronously in HaivemindApp.on_mount while MainScreen mounts asynchronously, causing ProbeStart handler to query #chat-log on the default screen (NoMatches). Move the start_run trigger into MainScreen.on_mount so it runs only once the screen is active.
2026-08-20 10:33:57 +03:00

29 lines
906 B
Diff

--- a/haivemind_tui.py
+++ b/haivemind_tui.py
@@ -1195,6 +1195,14 @@
yield TheatrePanel(id="theatre-container")
yield Footer()
+ def on_mount(self) -> None:
+ app = self.app
+ if (
+ getattr(app, "_prompt", None) is not None
+ and getattr(app, "_config", None) is not None
+ ):
+ app.start_run(app._prompt, app._config)
+
class HaivemindApp(App):
CSS = CSS
@@ -1224,9 +1232,7 @@
def on_mount(self) -> None:
self.push_screen(MainScreen())
self.set_interval(0.15, self._tick_spinner)
- if self._prompt is not None and self._config is not None:
- self.start_run(self._prompt, self._config)
- else:
+ if self._prompt is None or self._config is None:
self.push_screen(ConfigScreen())
def start_run(self, prompt: str, config: HaivemindConfig) -> None: