The right column shows what the agents did to your files - #43
Merged
keirsalterego merged 1 commit intoAug 2, 2026
Merged
Conversation
Identra ran four agents editing your repository and gave you no way to see what they touched. The task board showed what they claimed, the memory showed what they decided, and finding out what actually changed meant opening a terminal and typing `git status` — inside the app you opened so you would not have to. `identra-core::changes` answers it by shelling out to git, the way `worktree.rs` already does. No new dependency, and no second idea of what a repository is: the numbers in the panel are the ones you get typing the same commands in the terminal one pane over. A library would be faster and would give the panel a way to disagree with the terminal beside it. Four things in it are not obvious: **Untracked files are in the list.** A file an agent created and never added is the most interesting row here and the one `git diff` will not show you at all. Filtering to tracked changes would have hidden exactly the work you did not ask for. **`-z` everywhere.** Git quotes and escapes paths with spaces or newlines in its default output, so a line parser both mangles ordinary filenames and can be made to see rows that are not there by a file with a newline in its name — which an agent can create. NUL separation has no escaping. **A binary file gets no line count rather than zeroes.** Git says `-`, meaning it will not diff this, and "+0 −0" on a 4MB image an agent just wrote reads as nothing happened. **Two numstat calls, not `git diff HEAD`.** A file can be partly staged and the panel shows one row per file, so the row has to be how far the file has moved from HEAD — both halves. `diff HEAD` reports nothing for a path staged as a rename. The branch line says which branch, and says so when the checkout is one of Identra's isolated worktrees. A helper's diff read as your own branch is how someone commits the wrong thing. **It is read-only, and that is a decision rather than a first cut.** Staging without a commit control is half a gesture and the terminal that finishes it is one pane away. Revert is the real reason: discarding uncommitted work is the only operation in this app that destroys something no undo brings back, and it would sit one click from a list you scan quickly, describing files an agent wrote while you were not watching. That is a decision to make on its own, not one to smuggle in behind a panel. Five tests, including the porcelain shapes that have to agree with git rather than with my reading of the manual, and one against a real repository covering an edit, an untracked file and a non-repository folder. cargo fmt, clippy --all-targets, 10 test suites, tsc, bun test and the frontend build are clean.
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.
Identra ran four agents editing your repository and gave you no way to see what they touched. The task board showed what they claimed, the memory showed what they decided, and finding out what actually changed meant opening a terminal and typing
git status— inside the app you opened so you would not have to.This is the largest remaining gap from the reference teardown's layout comparison, and it is the one that is embarrassing rather than merely missing.
How
identra-core::changesshells out to git, the wayworktree.rsalready does. No new dependency, and no second idea of what a repository is: the numbers in the panel are the ones you get typing the same commands in the terminal one pane over. A library would be faster and would give the panel a way to disagree with the terminal beside it.Four things that are not obvious
Untracked files are in the list. A file an agent created and never added is the most interesting row here — and the one
git diffwill not show you at all. Filtering to tracked changes would have hidden exactly the work you did not ask for.-zeverywhere. Git quotes and escapes paths with spaces or newlines in its default output, so a line parser both mangles ordinary filenames and can be made to see rows that are not there by a file with a newline in its name — which an agent can create. NUL separation has no escaping.A binary file gets no line count rather than zeroes. Git says
-, meaning it will not diff this.+0 −0on a 4MB image an agent just wrote reads as nothing happened.Two numstat calls, not
git diff HEAD. A file can be partly staged and the panel shows one row per file, so the row has to be how far the file has moved from HEAD — both halves added up.diff HEADreports nothing at all for a path staged as a rename.The branch line
Says which branch, and says so when the checkout is one of Identra's isolated worktrees. A helper's diff read as your own branch is how someone commits the wrong thing.
It is read-only, and that is a decision rather than a first cut
Staging without a commit control is half a gesture, and the terminal that finishes it is one pane away.
Revert is the real reason. Discarding uncommitted work is the only operation in this app that destroys something no undo brings back, and it would sit one click from a list you scan quickly, describing files an agent wrote while you were not watching. That is a decision to make on its own, not one to smuggle in behind a panel.
On provenance: no Superset code was read or ported for this. Superset is Elastic License 2.0 and cannot enter an Apache-2.0 tree. This was built from the clean-room behaviour teardown in
identra-ops(docs/research/reference-superset.md§3: study behaviour, reimplement in Rust, never paste), which describes what the column does, not how they do it.Five tests, including the porcelain shapes that have to agree with git rather than with my reading of the manual, and one against a real repository covering an edit, an untracked file and a non-repository folder.
cargo fmt,clippy --all-targets, 10 test suites,tsc,bun testand the frontend build are clean.