Repository navigation
chore(release): 0.6.0 - #172
Open
github-actions[bot] wants to merge 1 commit into
Open
github-actions[bot] wants to merge 1 commit into
github-actions[bot] wants to merge 1 commit into
Conversation
github-actions
Bot
force-pushed
the
release-please--branches--main
branch
2 times, most recently
from
August 21, 2026 16:02
b99a3f3 to
8803e75
Compare
github-actions
Bot
force-pushed
the
release-please--branches--main
branch
3 times, most recently
from
September 24, 2026 12:15
4877580 to
37f9725
Compare
github-actions
Bot
force-pushed
the
release-please--branches--main
branch
22 times, most recently
from
November 2, 2026 12:23
4dbc4df to
7eea1fa
Compare
github-actions
Bot
force-pushed
the
release-please--branches--main
branch
16 times, most recently
from
November 3, 2026 14:20
28c404b to
7094df2
Compare
github-actions
Bot
force-pushed
the
release-please--branches--main
branch
11 times, most recently
from
November 4, 2026 00:22
e234723 to
123d426
Compare
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
The next agent-tty release. Merging this PR creates the release tag and GitHub Release and starts the publish pipeline.
[0.6.0] - 2026-11-04
Added
mouseCLI/RPC command andbatchstep for clicks, drags, motion, and wheel events through the libghostty-vt backend, plus amouse-inputcapability andCAPABILITY_UNAVAILABLE(exit 12) when the native encoder is missing (#179, #234, #293).wait --scope cursor-line(and matchingscopefield on batchwaitsteps and thewaitForRenderRPC) matches--text/--regexonly against the cursor row, avoiding echo-of-command false positives (#169).record diff <sid-a> <sid-b>replays two session event logs offline and emits a canonical line diff with--at-seq-a/--at-seq-bseek support and strictRecordDiffResultSchemaoutput (#170, #300).screenshot --out <path>writes the PNG to an arbitrary path, sharing therecord export --outresolver and rules; missing parent folders are auto-created likemkdir -p, but paths inside the Home'ssessions/folder are rejected (#241, #290).screenshot --jsonandrecord export --format webm --jsonnow report.notdef-boxed glyphs inmissingGlyphs(andmissingGlyphsTruncated), with per-face classification via CDPpostScriptName. Bundled WOFF2 subsets of Noto Sans Symbols 2 and Noto Sans Math (~378 KB, OFL-1.1) extend the default stack (#240, #278).AGENT_TTY_ACTIVE=trueandAGENT_TTY_SESSION_ID=<id>to spawned processes, so shell profiles can detect the managed session and reference its id (#166).COLORTERM=truecolorby default and answersXTGETTCAP(Tc,RGB,setrgbf,setrgbb) and declines DECRQSS SGR, so Neovim underenv -inow turns ontermguicolors(#231, #271).Changed
waitwithout--timeoutnow defaults to 30 s (was 600 s) and thewait --helptext names the default; batchwaitsteps default to the same 30 s (#236, #250).waitnow returns anok: falseenvelope witherror.code: "WAIT_TIMEOUT"while keeping.result.timedOut; fail-fastbatchfailures now emit an error envelope carrying the step's code,error.details.stepIndex, and the per-step result (exit codes unchanged) (#232).waitwhose render polls all fail now exits with the renderer'sRPC_ERROR/REPLAY_ERRORinstead of masking the failure asWAIT_TIMEOUT(#301).waitrejects idle/screen-stable windows that cannot finish within the effective timeout withINVALID_DURATIONbefore calling the host; batch applies the samescreenStableMsrule (#277).INTERNAL_ERRORenvelope on stdout under--json(exit 1) and the process exits once streams flush; empty or path-like session ids returnINVALID_SESSION_ID(exit 2) instead of a stack trace; usage errors emitINVALID_INPUTenvelopes;help/help <cmd>exit 0;config.jsonread/parse failures now map toSTORAGE_READ_ERROR/INVALID_INPUT(#237, #287).CliError.detailsnow travel across the session host RPC, so livesnapshot/screenshoterrors carry the samedetailsas offline (#313).snapshot --include-cellsnow works on live ~500×200 sessions, with oversize success responses refused withPROTOCOL_ERROR(#320, #322).engines.node) anddoctoruses the same range (#245)./tmp/agent-tty-<uid>/with strict0o700ownership checks;inspect --jsonreports the newhost.rpcSocketPathand a legacy-path fallback covers in-flight hosts from older versions (#288).snapshotandscreenshoton a session that has printed nothing now succeed withcapturedAtSeq: -1;record exportaccepts the same empty state for asciicast and WebM;--after-seqaccepts-1(#235, #270).record export --format webmnow paces output on a recorded-time schedule, so continuous output no longer flushes all at once at the next non-output event (#285).doctor's probe) no longer inheritAGENT_TTY_ACTIVE/AGENT_TTY_SESSION_IDfrom the caller (#178).WAIT_TIMEOUTmessage names the effective timeout and, for the default, hints at--timeout <ms>/--timeout 0(#273); batch wait-step timeout messages do the same (#301).Fixed
create, reconcile, andgcthat could mark starting sessions failed or delete them mid-launch; the first manifest write always carries the host pid and uses one serial writer (#181).createthat gives up on its host now stops that host (Linux/macOS) and carriesdetails.sessionIdon every post-launch error, so no orphan host keeps serving a failed session (#247, #294).destroyreliability across many scenarios: idle timeout, EPERM group kills, re-run in a new session when invoked inside the program's session (including bash jobs whereAGENT_TTY_SESSION_IDis unset, Linux and BSD), unreadable/proc/self/stat, zombie programs, and proper SIGINT/SIGTERM forwarding to the re-run copy with 130/143 exit codes (#216, #221, #233, #246, #259, #260, #274, #275, #276, #281, #283, #284, #291, #303, #305, #312).destroyon the program group (SIGHUP then SIGKILL) so processes that ignore SIGHUP and background children actually stop (#201).writeManifestno longer recreates a gc-removed session folder, so terminal state stays terminal (#200);ensureArtifactsDirandgc'srmclose the same gap for artifact writes (#212)./tmp/agent-tty/(#239).screenshot/snapshot/record exportcaptures stop dropping entries, including from a dead breaker, stopped waiter, or on largeartifacts/folders; the publish step keeps earlier files on repeat captures and never replaces them (#191, #282, #299, #316, #318).--outhardening forscreenshotandrecord export: refuse folders you cannot search (0200 parents), detect parent-folder swap between the preflight and the rename, undo a failedscreenshot --outcapture, and take the WebM's bytes from the temp file before rename (#279, #300, #321).screenshot --hide-cursorand the default now actually hide the block cursor in the PNG; the canvas is force-redrawn when cursor visibility toggles (#289).@coder/libghostty-vt-nodeto0.1.0-beta.7) (#234, #293).runinput is recorded in PTY order, not append-promise order (#234).allocateSessionvalidatescwd, shell, and command segments before creating the session directory, so bad inputs no longer leak empty session folders (#188).homes.jsonentry no longer wipes the others on the nextcreate(#186).validate-bundle, Hero Demopromote) reject canonical symlink escapes and leak-check before writing (#187).PROTOCOL_ERROR(#315, #319, #320, #322).Breaking Changes
waitnow returnsok: false(exit still 11). Automation that branched on.ok == truefor a timed-out wait or a failed fail-fast batch must now readerror.code/.result.timedOut(#232).waitwithout--timeoutreturns in 30 s instead of 600 s; batchwaitsteps now default to 30 s as well. Pass--timeout 0for an unbounded wait (#236, #250).WAIT_TIMEOUT; the renderer's own error (typicallyRPC_ERROR, exit 9) is returned instead (#301)./tmp/agent-tty-<uid>/<home>/<id>. An older CLI cannot reach a session started by this version; destroy running sessions before downgrading. A CLI running as a different uid (e.g.sudo agent-tty) cannot reach your sessions (#288).capturedAtSeqand--after-seqcan now be-1for sessions that have printed nothing; consumers that assumed>= 0must accept-1(#235, #270).screenshot --outandrecord export --outrefuse paths inside the Home'ssessions/folder (previouslyrecord exportaccepted them) (#241).Maintained by the release-please workflow. Notes are regenerated by Communique on every push to main, so manual edits to this PR are overwritten.