feat: stage, commit, push and ACP commit messages in the Editor Changes view
5 days ago
bec3805
Authored
asta-nguyen
The Changes view can now stage, unstage, discard, commit and push. A Generate
button asks a connected local ACP agent (Devin, OpenCode, Claude Code, Codex or
Gemini) to draft the commit message from the staged diff; the user edits it and
presses Commit.
- git_write.rs: stage, unstage, discard, commit and push (never force, no
--no-verify or --amend, prompts disabled, 120 s push deadline); changes
report `ahead`.
- acp.rs: hand-rolled ACP client over a child process (one session per
Generate, permission requests denied, whole process group killed on
disconnect or exit) and a hub with Connect/Disconnect status, the five
presets and the `acp.agents` / `commit.agent` settings.
- Changes UI: row and group stage/unstage/discard actions with a discard
confirmation, and a commit box with agent picker, Generate/Cancel, Commit
and Push.
- Settings: an "ACP agents" section to enable, connect, and edit each agent's
command and commit prompt.
- Editor files tree dims entries matched by Git ignore rules, and the Editor
workspace is lazy-loaded.