You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
relaunch_wrapper_in_window on the herdr backend closes the agent's tab and then creates a replacement. herdr refuses to close a workspace's last tab:
Error: failed to replace herdr tab 'steward' in workspace 'clawde':
{"error":{"code":"tab_close_failed","message":"cannot close the last tab in a workspace"}}
Once betha-pm and jenny were removed from workspace clawde (outside active hours), steward was the only tab left. Its wrapper died, the supervisor tried to relaunch, the close was refused, and the create was never reached. The supervisor retried every ten seconds and wrote 8.8 MB of that one error.
Fix: create the replacement tab before discarding the superseded one. The workspace never drops to zero tabs, so the last-tab rule cannot block the relaunch. A failed discard now leaves a stale tab plus a logged error rather than a dead agent.
The tmux backend was never affected — respawn-window -k reuses the window in place.
Tests: both new cases fail against the old ordering with the production error and pass with the fix.
The herdr backend replaced a dead agent's tab by closing it and then
creating a fresh one. herdr refuses to close a workspace's last tab, so
once every other agent in the workspace had been removed, the survivor's
relaunch failed on the close and never reached the create. Its tab stayed
a bare shell and the supervisor retried the same failing close every ten
seconds, forever. Kira's steward sat dead that way for forty hours behind
8.8 MB of identical errors.
Create the replacement tab first and discard the superseded one after, so
the workspace never drops to zero tabs and the last-tab rule can no longer
block a relaunch. A failed discard now leaves a stale tab and a logged
error instead of a dead agent.
The tmux backend was never affected: respawn-window -k reuses the window
in place and never removes it.
Agent-Machine: kira
Agent-Resume: claude --resume efee1316-8d94-438e-951e-e9c978626531
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Kira's steward has been dead for forty hours.
relaunch_wrapper_in_windowon the herdr backend closes the agent's tab and then creates a replacement. herdr refuses to close a workspace's last tab:Once
betha-pmandjennywere removed from workspaceclawde(outside active hours),stewardwas the only tab left. Its wrapper died, the supervisor tried to relaunch, the close was refused, and the create was never reached. The supervisor retried every ten seconds and wrote 8.8 MB of that one error.Fix: create the replacement tab before discarding the superseded one. The workspace never drops to zero tabs, so the last-tab rule cannot block the relaunch. A failed discard now leaves a stale tab plus a logged error rather than a dead agent.
The tmux backend was never affected —
respawn-window -kreuses the window in place.Tests: both new cases fail against the old ordering with the production error and pass with the fix.