agent-orchestrator/backend
Pritom14 eda39a156a fix(terminal): guard subscribe-to-assign window in openTerminal
A session can exit and run onExit (which deletes c.terms[id]) in the gap
between subscribe returning exited=false and openTerminal assigning
c.terms[id]. The delete is a no-op there since the key isn't set yet, so
the later assign resurrects a stale entry for a dead pane, trapping every
future open for that id on the connection. Re-apply the delete after the
assign when onExit fired in the window, tracked by a c.mu-guarded flag.

Add a stress regression test that races the exit against the assign.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-31 23:42:59 +05:30
..
internal fix(terminal): guard subscribe-to-assign window in openTerminal 2026-05-31 23:42:59 +05:30
cdc_wiring.go feat(backend): port lifecycle lane onto the new storage+CDC model 2026-05-31 07:16:06 +05:30
go.mod Merge remote-tracking branch 'origin/main' into feat/terminal-streaming 2026-05-31 20:50:26 +05:30
go.sum Merge remote-tracking branch 'origin/main' into feat/terminal-streaming 2026-05-31 20:50:26 +05:30
lifecycle_wiring.go feat(backend): atomic PR-observation write + CDC on check status updates 2026-05-31 17:02:47 +05:30
main.go feat(backend): wire terminal manager into the daemon at /mux 2026-05-31 19:23:35 +05:30
sqlc.yaml feat(backend): SQLite storage layer + CDC pipeline, LCM/reaper wiring 2026-05-30 16:02:07 +05:30
wiring_test.go feat(backend): port lifecycle lane onto the new storage+CDC model 2026-05-31 07:16:06 +05:30