From 39024c15f709a60d2fc2d0231f70c9cb2d686a37 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 30 Oct 2026 14:32:10 +0000 Subject: [PATCH] chore(release): 0.6.0 --- .release-please-manifest.json | 2 +- CHANGELOG.md | 24 ++++++++++++++++++++++++ README.md | 2 +- package.json | 2 +- 4 files changed, 27 insertions(+), 3 deletions(-) diff --git a/.release-please-manifest.json b/.release-please-manifest.json index f1c1e58..bcd0522 100644 --- a/.release-please-manifest.json +++ b/.release-please-manifest.json @@ -1,3 +1,3 @@ { - ".": "0.5.0" + ".": "0.6.0" } diff --git a/CHANGELOG.md b/CHANGELOG.md index f567b59..8002ec7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,30 @@ ## [Unreleased] +## [0.6.0] - 2026-10-30 + +### Added + +- `wait --scope cursor-line` restricts `--text`/`--regex` matching to the cursor's current row, eliminating the whole-screen echo false positive and making prompt waits precise (e.g. `agent-tty wait "$SID" --regex '\$ $' --scope cursor-line`). The `scope` field is also accepted on batch `wait` steps and the `waitForRender` RPC ([#169](https://github.com/coder/agent-tty/pull/169)). +- `record diff ` command replays both sessions offline from their event logs and emits a line-level screen diff. Supports `--at-seq-a`/`--at-seq-b` for diffing a session against its own earlier state, `--json` with `{ identical, a, b, diff }` validated by the new `RecordDiffResultSchema`, and a unified-diff style human renderer ([#170](https://github.com/coder/agent-tty/pull/170)). +- PTY processes spawned inside a session now receive `AGENT_TTY_ACTIVE=true` and `AGENT_TTY_SESSION_ID=` so shell profiles, prompts and automation can detect the active session and reference its ID ([#166](https://github.com/coder/agent-tty/pull/166)). + +### Fixed + +- Session-less PTYs (notably `doctor`'s spawn probe) no longer inherit `AGENT_TTY_ACTIVE` or an outer `AGENT_TTY_SESSION_ID` from the surrounding environment, so a nested `doctor` run no longer claims to be a managed session or reports the wrong ID ([#178](https://github.com/coder/agent-tty/pull/178)). +- Closed three `create`/`reconcile`/`gc` lifecycle races: `create` now launches the host first and writes the first manifest with the host's pid; `reconcileSession` re-reads the manifest before marking a session `failed`; and the host writes `session.json` through a single serial writer. With the dashboard open, 20/20 `create` calls now succeed (previously 4/20 failed) ([#181](https://github.com/coder/agent-tty/pull/181)). +- `allocateSession` validates `cwd`, `shell` and the command before creating `/sessions/`, so failed `create` calls no longer leak empty session directories that `gc` won't clean up ([#188](https://github.com/coder/agent-tty/pull/188)). +- `destroy --force` and `destroy` of a crashed session now reliably end in `destroyed` instead of leaving the session `failed` after a 5 s wait. `createSerialManifestWriter` discards writes queued after a terminal record so `gc` cannot delete a folder a late host write would recreate ([#194](https://github.com/coder/agent-tty/pull/194)). +- `writeManifest` no longer `mkdir`s the session folder, so a manifest write that lands after `gc` fails with `SESSION_NOT_FOUND` instead of resurrecting a stub session that `list --all` would then surface ([#200](https://github.com/coder/agent-tty/pull/200)). +- `destroy` and the host's shutdown now kill the program's process group (not just its pid) and escalate to SIGKILL after a 2 s SIGHUP grace. Programs that trap SIGHUP or spawn background children are now actually stopped: a trapping `bash` process that previously left `destroy` at exit 5 after ~5.85 s now exits in ~2.93 s ([#201](https://github.com/coder/agent-tty/pull/201)). +- Home registry read drops only the invalid entries in `homes.json` instead of returning no Homes, so a single bad entry no longer causes the next `create` to overwrite the file and lose every other registered Home ([#186](https://github.com/coder/agent-tty/pull/186)). +- `validate-bundle --profile canonical` rejects manifest artifacts whose real path escapes the bundle root via symlink, and `hero-demo promote` leak-checks all promoted text in memory before clearing and writing `--bundle-dir` so a leak no longer leaves partial output behind ([#187](https://github.com/coder/agent-tty/pull/187)). + +### Changed + +- `playwright` bumped to 1.64.1 so Chromium installs on Ubuntu 26.04. After upgrading, run `npx playwright install chromium` once before `screenshot` or `record export --format webm` works; `doctor` will flag both capabilities as degraded with Playwright's install hint until then. WebM exports are now encoded with VP9 instead of VP8 ([#192](https://github.com/coder/agent-tty/pull/192)). +- `zod` bumped from 4.3.6 to 4.6.6 and audit `overrides` refreshed to clear high-severity advisories in `brace-expansion`, `handlebars`, `js-yaml`, `nanoid`, `postcss`, `source-map-js`, `tinypool`, `vite` and `@xmldom/xmldom` ([#183](https://github.com/coder/agent-tty/pull/183), [#175](https://github.com/coder/agent-tty/pull/175), [#168](https://github.com/coder/agent-tty/pull/168)). + ## [0.5.0] - 2026-06-23 ### Added diff --git a/README.md b/README.md index 5dcfb97..c693b26 100644 --- a/README.md +++ b/README.md @@ -138,7 +138,7 @@ See [`docs/AGENT-SKILLS.md`](./docs/AGENT-SKILLS.md). ## Status & platform support -`agent-tty` is `0.5.0` and focused on reliable, isolated, reviewable terminal and TUI automation through a stable CLI. +`agent-tty` is `0.6.0` and focused on reliable, isolated, reviewable terminal and TUI automation through a stable CLI. - Linux and macOS are tier-1; Windows is tier-2 and not CI-tested. - Semantic snapshots and render-backed waits prefer the optional `libghostty-vt` backend when it is available, then fall back to `ghostty-web`. diff --git a/package.json b/package.json index 760de00..b95d75a 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "agent-tty", - "version": "0.5.0", + "version": "0.6.0", "description": "Terminal automation CLI for AI agents and humans", "license": "Apache-2.0", "keywords": [