Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 11 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
per-World session container before each command — full tree first, then
only changes and deletions — so remote builds and tests run on the files
just edited locally and their outputs persist across commands.
- `Git` grows a `commit_plan` action: a propose-only planner that splits the
working tree into ordered atomic commits (#3999). It groups whole files —
lock files ride with their manifest, tests ride with the source they name —
orders the groups so a commit that defines a symbol lands before the commit
that uses it, and refuses the whole plan when that dependency graph has a
cycle. It reads `git diff HEAD` plus the untracked-file list and writes
nothing: no `git add -N`, no `git apply --cached`, no `git commit`, so
staging and committing stay with the ordinary `git add` / `git commit` shell
path where the approval gate already applies. Thanks
[@goransh-walia](https://github.com/goransh-walia) for the original
implementation (PR #5870, fixes #3999).
Comment on lines +156 to +166

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

🔍 Remove branch changelog edits

Repository rules reserve both changelogs for merge-time receipts. These branch edits create avoidable conflicts and need removal before merge.

Devin Review

Was this helpful? React with 👍 or 👎 to provide feedback.


## [0.9.12] - 2026-09-03

Expand Down
11 changes: 11 additions & 0 deletions crates/tui/CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -153,6 +153,17 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
per-World session container before each command — full tree first, then
only changes and deletions — so remote builds and tests run on the files
just edited locally and their outputs persist across commands.
- `Git` grows a `commit_plan` action: a propose-only planner that splits the
working tree into ordered atomic commits (#3999). It groups whole files —
lock files ride with their manifest, tests ride with the source they name —
orders the groups so a commit that defines a symbol lands before the commit
that uses it, and refuses the whole plan when that dependency graph has a
cycle. It reads `git diff HEAD` plus the untracked-file list and writes
nothing: no `git add -N`, no `git apply --cached`, no `git commit`, so
staging and committing stay with the ordinary `git add` / `git commit` shell
path where the approval gate already applies. Thanks
[@goransh-walia](https://github.com/goransh-walia) for the original
implementation (PR #5870, fixes #3999).

## [0.9.12] - 2026-09-03

Expand Down
6 changes: 5 additions & 1 deletion crates/tui/src/hooks/executor.rs
Original file line number Diff line number Diff line change
Expand Up @@ -2517,7 +2517,7 @@ fn tool_category_for(tool_name: &str, tool_args: Option<&str>) -> &'static str {
"Git" | "git" => match action.as_deref() {
// Every shipped Git action is read-only today; classify by action
// anyway so adding a mutating one cannot silently inherit `safe`.
Some("status" | "diff" | "log" | "show" | "blame") => "safe",
Some("status" | "diff" | "log" | "show" | "blame" | "commit_plan") => "safe",
_ => "other",
},
// `Run` executes test/verifier commands — closer to shell than safe.
Expand Down Expand Up @@ -5834,6 +5834,10 @@ command = "echo project"
tool_category_for("Git", Some(r#"{"action":"log"}"#)),
"safe"
);
assert_eq!(
tool_category_for("Git", Some(r#"{"action":"commit_plan"}"#)),
"safe"
);
assert_eq!(tool_category_for("web.run", None), "other");
}
}
1 change: 1 addition & 0 deletions crates/tui/src/tools/canonical_action.rs
Original file line number Diff line number Diff line change
Expand Up @@ -37,6 +37,7 @@ pub(crate) const CANONICAL_ACTION_ALIASES: &[(&str, &str, &str)] = &[
("Git", "log", "git_log"),
("Git", "show", "git_show"),
("Git", "blame", "git_blame"),
("Git", "commit_plan", "git_commit_plan"),
("Run", "tests", "run_tests"),
("Run", "verifiers", "run_verifiers"),
("Web", "search", "web_search"),
Expand Down
Loading
Loading