diff --git a/CHANGELOG.md b/CHANGELOG.md index b666038d..c63209b8 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,14 @@ The release workflow uses a tag's section here as its release notes (a hand-written `docs/releases/.md` wins if present), so keeping this file current is part of cutting a release. +## v0.302.46 + +- Images attached over ACP now reach the hosted default models; graff dropped them before the model saw them. +- A worker that ran and reported keeps its report and usage when its state can't be saved for follow-ups, instead of coming back as only an error (#1671). +- A cancel an ACP client marks as its own (`_meta["graff/cancelSource"] = "client"`) ends the turn as stopped by the client, not as interrupted by the user (#1611). +- Computer Use says that an app owned by a bare process can't be selected, so agents don't read the rejection as a failed launch. +- Retains all changes from v0.302.45. + ## v0.302.45 - Reports what graff kept out of the model's context (tool output kept in handle files, tokens freed by compaction, provider cache reads) on the ACP context meter as `_meta["codegraff/savings"]`; Harness shows it next to its context meter. diff --git a/docs/releases/v0.302.46.md b/docs/releases/v0.302.46.md new file mode 100644 index 00000000..43637c81 --- /dev/null +++ b/docs/releases/v0.302.46.md @@ -0,0 +1,7 @@ +# v0.302.46 + +- **Images over ACP reach the hosted default models.** An ACP client's `image` prompt blocks were staged only for models in `vision.zig::visionModel`, which didn't list the hosted default models, though the hosted catalog marks them as taking images. Pictures pasted into a client were dropped before the model saw them. They're now in the list. +- **A worker's report survives a failed checkpoint.** After a worker runs, graff saves its state for follow-ups; when that save failed, its error replaced the worker's report and usage, which came back as only "error: FileNotFound" (#1671). The save is now best-effort: the report and usage stand, with a note that `agent_message` and resume can't continue the worker and why. An error during setup now says the worker didn't start and no tools ran. +- **A client's own cancel isn't the user's.** A `session/cancel` carrying `_meta["graff/cancelSource"] = "client"` ends the turn with "[response ended early: stopped by the client, not the user]". A bare cancel, or one marked `"user"`, still reads as the user's (#1611). +- **Computer Use and bare processes.** When an app is rejected because its window belongs to a bare process (`java -jar`, a script interpreter, a dev server), graff adds a note: such apps can't be selected even while their window is open, the rejection doesn't mean the launch failed, and the app should be checked another way or reported as not inspectable. +- Retains all changes from v0.302.45. diff --git a/src/cli.zig b/src/cli.zig index c0fb5d13..58e2a1e8 100644 --- a/src/cli.zig +++ b/src/cli.zig @@ -24,6 +24,11 @@ const update_target = @import("update_target.zig"); pub const changelog_text = \\What's new \\────────── + \\0.302.46 + \\ • images over ACP reach the hosted default models + \\ • a worker keeps its report when its state can't be saved + \\ • a client's own cancel isn't called the user's + \\ \\0.302.45 \\ • ACP context meter reports what graff kept out of context \\ • render_html says a page is saved, not displayed