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
Generalised the tmux wake transport to any terminal coding agent — Codex,
Kimi K2, Claude Code — through synapse agent-tmux {start,wake,status,wait}
with --agent-command. The pane-activity probe now derives the agent binary
from the launch command instead of hard-coding Codex, so a non-Codex agent
running under a shell is detected correctly. synapse codex-tmux remains as a
Codex-defaulted alias (--codex-command); codex_tmux stays importable as a
compatibility surface over the new agent_tmux module.
Fixed
The connection-failure classifier now disambiguates the close codes the hub
reuses. Code 4010 is emitted for both a takeover (superseded) and an
authentication refusal (auth denied/auth required), and 4014 for both a
takeover cooldown and the unauthenticated-socket cap; the classifier keyed on
the code alone, so a bad token was reported as a takeover. It now reads the
reason text, and recognises the auth-timeout (4012) and per-host-cap (4015)
closes as well.
The agent wake loop's retry backoff now adds bounded random jitter so a fleet
of wakers that all lose the hub at once — a hub restart — does not reconnect in
one synchronised burst.
Repository hygiene
The PyPI publish workflow now triggers on the release tag push instead of release: published. A GitHub Release created by GITHUB_TOKEN does not fire
downstream workflows, so the publish never ran automatically and each release
had to be pushed to PyPI by hand; the tag push fires it directly.