Skip to content

v1.23.5

Choose a tag to compare

@github-actions github-actions released this 11 Oct 08:23
· 277 commits to main since this release
  • agents ps drops a dead offloaded tab once its owner answers. A desktop editor
    tab bound to a session that runs on a fleet worker used to list as its own
    unknown session (37 rows on one desktop) even after the worker answered the
    sweep and reported no such live session. The worker is the authority for what
    runs there, so the fleet merge now drops that tab's row when the worker answered
    and lacks the session; a live session still shows as one row with the worker's
    status, and a worker that went unheard still leaves the tab as unknown, never
    running. A worker whose reply is not a JSON array (a login banner, an error
    object) does not count as an answer. Same rule agents feed watch already applied. Source:
    cli/src/commands/ps-roster.ts, cli/src/lib/remote-agents-json.ts.

  • agents sessions resume puts a VSCodium tab in the session's own project window and only says "opened" when the editor confirms it. The vscodium-agent backend sent codium --open-url …/spawn alone, so the tab landed in whichever window was last focused (agents-cli and svatlas sessions opened inside the agents window) and the CLI printed Opened 1/1 without knowing whether anything opened. It now raises the project's window first (a multi-root workspace through its workspace file), sends a nonce and the local project folder in the payload, and waits up to 15 s for the extension's ack at ~/.swarmify/agents/spawn-acks/<nonce>.json; no ack or a wrong-window ack exits non-zero with the command that works instead. A session that already has a live editor tab is focused rather than duplicated, and a live process on its host is named (host + pid). Needs the matching agi-ext release to write acks; until then every --vscodium open reports the missing ack. Source: cli/src/lib/terminal/backends/vscodium-agent.ts, cli/src/lib/terminal/engine.ts, cli/src/commands/sessions-resume.ts, cli/src/lib/project-root.ts.

  • A routed agents sessions resume no longer hangs on the far side, and a dropped hop no longer pretends the host is unreachable. Three faults in the SSH hop the CLI makes for itself (runOnPeer): (1) the peer's agents showed the interactive "Update available" picker before resuming, so after a crash 14 restored tabs on one worker sat in that prompt with no agent started; a hop now carries AGENTS_PEER_HOP=1 and the peer prints the one-line upgrade notice instead. (2) Every interactive hop rode the shared ControlMaster, tying long-lived agent TUIs to one master connection and to sshd's per-connection MaxSessions (10); TTY sessions (runOnPeer, sshStream) now get their own connection and short probes keep multiplexing. (3) ssh exits 255 both when it cannot connect and when the remote side of a running session dies, and the CLI treated every 255 as "unreachable" and fell back to a local resume that found no transcript; it now checks with a fresh connection and only a failed one counts as unreachable. Resume also names an older process of the same session that is still running on the host ([agents] <id> is still running on <host> as pid <n> …) and leaves it alone. Source: cli/src/lib/session/remote/remote-list.ts, cli/src/lib/ssh-exec.ts, cli/src/bootstrap.ts, cli/src/lib/self-update.ts, cli/src/commands/resume.ts, cli/src/lib/session/pid-registry.ts.

  • A tab or hop that starts an agent opens straight into the agent. --quiet (which every tab the CLI opens now passes) and a CLI-made SSH hop send everything agents itself says to a per-launch log, ~/.agents/.cache/logs/launches/<time>-<pid>.log on the machine doing the work: routing banners, [agents] session recovery → …, the upgrade notice, the multi-install warning. The standalone secrets engine's stderr ([secrets] using the encrypted file store …, once per lookup) now always goes to logs/secrets-serve.log, and the peer's login profile output (nvm's .npmrc warning) to logs/peer-login.log. Only a launch that fails prints, as The agent did not start: <cause> plus the log path, and writes launches/<session>.json; agents sessions --json rows carry it as lastLaunch. agents run and agents sessions resume|focus never show the interactive upgrade menu, so a box on an older CLI no longer parks a tab on ? Update available … ❯ Upgrade now. Source: cli/src/lib/launch-log.ts, cli/src/bootstrap.ts, cli/src/lib/secrets-client.ts, cli/src/lib/session/remote/remote-list.ts.

  • A tab whose SSH link drops reconnects to the same session by itself when the host still answers, through the same reconnect loop run --device uses; "unreachable" is reported only after a fresh connection also fails. Source: cli/src/lib/session/remote/remote-list.ts, cli/src/lib/hosts/reconnect.ts.

  • Confirmed results only. sessions resume, sessions focus tab opening and run --terminal no longer print Opening N session(s)…, opened <id> — tab — … or Opened N/M in …. VSCodium reports the acked window and tab; a backend with no confirmation says the request was sent and that the tab is not confirmed. Source: cli/src/lib/terminal/engine.ts (describeLaunch).

  • Live rows list the session's artifacts with a kind. agents sessions --active --json (and the watch streams) now fill artifacts from the same ledger as files.changes: created images, videos, html and markdown docs, absolute on the row's own machine, with kind (image, video, html, markdown, pdf, other). The picker JSON (sessions --json, in-process path) also gains title, localProject, lastUserMessage, lastAgentLine, editorTab and lastLaunch. Source: cli/src/lib/session/session-cache.ts, cli/src/lib/session/active.ts, cli/src/commands/sessions.ts.