bc8208622cf4246d465668f5b9d7bb590508537d
The panel remembers its agent's NAME in its own layout config, not the server row's panel id: movePanel mints a fresh id on every drag, so an id-based lookup forgets the agent the first time the dashboard is rearranged. The name travels with the panel contents; the row is found by name and re-anchored to wherever the panel now is. A named panel passes the row's sessionKey to useChat instead of letting the server mint a throwaway uuid per connection. That is the whole of continuity: the same key comes back on every load, resume-cursor replays the durable events under it, and the claude sidecar resumes the same transcript from its write-through map even after the session was reaped. Its cwd comes from the row too, because deliverToAgentPanel already runs an incoming handoff there — otherwise the same agent would work in two directories depending on whether the human or a peer spoke to it. Only on real dashboards. The fixed screens keep anonymous chat panels exactly as before.
Description
No description provided
42 MiB
Languages
TypeScript
90.9%
Shell
4.7%
JavaScript
4.1%
CSS
0.2%
HTML
0.1%