You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
After the terminal itself, the thing you most want from a phone is "what did it change". Today that is scrolling back through tool output, or typing git diff into the session and reading a pager on a 6 inch screen. A real diff view, split or unified, per file, with syntax highlighting, is the review half of supervising an agent. It is also where Pierre's @pierre/diffs earns a place in flue, if #129 says yes.
Rough scope
A wire verb that streams a patch the way read streams a file:
diff{id, path?, staged?, reqId} -------> git diff in the session cwd
<------- file{ref, ...} 0x02 chunks eof{ref}
Same chunking, same caps, same cancel. The daemon runs git as the user, nothing else.
UI: a changed-files list for the session's working directory (from the same git status --porcelain=v2 the tree uses in Fast directory listing over the wire for big repos #128), tap a file, see its diff. Unified on phones, split on desktop. Own route next to /file and /files so it opens in a tab.
Untracked files: no diff exists, so synthesize one against empty, or just open the file in the viewer. Binary files: say so.
Later, once reading works: stage and commit from the phone, and sending a line comment back into the agent session as a prompt. Those are separate tickets; this one reads.
Hard parts, named up front
Huge diffs. An agent that rewrote 400 files produces a patch that must be virtualized, not rendered. This is the exact case the Pierre renderer exists for, and the reason Spike: Pierre's @pierre/diffs and @pierre/trees in flue #129 matters.
Renames and mode changes, submodules, and worktrees where the session cwd is not the repository root. git handles them; the UI has to not fall over when it does.
Why
After the terminal itself, the thing you most want from a phone is "what did it change". Today that is scrolling back through tool output, or typing
git diffinto the session and reading a pager on a 6 inch screen. A real diff view, split or unified, per file, with syntax highlighting, is the review half of supervising an agent. It is also where Pierre's@pierre/diffsearns a place in flue, if #129 says yes.Rough scope
A wire verb that streams a patch the way
readstreams a file:Same chunking, same caps, same cancel. The daemon runs
gitas the user, nothing else.UI: a changed-files list for the session's working directory (from the same
git status --porcelain=v2the tree uses in Fast directory listing over the wire for big repos #128), tap a file, see its diff. Unified on phones, split on desktop. Own route next to/fileand/filesso it opens in a tab.Untracked files: no diff exists, so synthesize one against empty, or just open the file in the viewer. Binary files: say so.
Later, once reading works: stage and commit from the phone, and sending a line comment back into the agent session as a prompt. Those are separate tickets; this one reads.
Hard parts, named up front
githandles them; the UI has to not fall over when it does.Notes