git channel powers the workspace diff and checkpoint UI: it returns structured diffs, lists the checkpoints the agent creates as it works, and rolls files (and the conversation) back to a checkpoint or reverts a single file. Both the web app and the aether CLI use it. See the WebSocket overview for connecting.
Requests carry a requestId; responses echo it. Responses are discriminated by success, with an error string on failure.
diff
Get a structured diff of the workspace.
Request
mode is optional: "main" (default) diffs against the base branch, "lastCommit" diffs against the last commit. Untracked files appear as added.
Response
status (added, modified, deleted, renamed) and kind (text, binary, too_large). Text and binary results have additions/deletions and hunks; a binary type change can include text hunks. Each line has kind (add, del, context), text, and oldLine/newLine, with null on a side where the line does not exist.
Untracked text larger than 262,144 bytes stays in the change list as too_large. It has a maxBytes limit and no counts or hunks. Other files remain available, and the whole-file revert operation still works. Genuine Git and file-read errors fail the request.
Oversized file
snapshots
List the agent’s checkpoints — points in the conversation you can restore to.
Request
limit is optional, up to 200.
Response
restore
Roll the workspace files and the conversation back to a checkpoint, identified by its messageId. History after that point is truncated.
Request
Response
revertFile
Revert a single file to its base state. The required fields depend on fileStatus.
Modified deleted
Renamed
The response is
{ requestId, success }, and the server pushes a files refresh afterward.
showFile
Read a file’s contents at a specific git ref.
Request
Response
checkpoint (server push)
When the agent creates a checkpoint, the server pushes a notification with its messageId. There is no request for this.