Home

giogio / goko

public
Overview Code History Branches Pull requestsIssuesInsights
main
HomeOverview Code PRsIssues

feat: stage, commit, push and ACP commit messages in the Editor Changes view

5 days ago

bec3805
Authored
asta-nguyen11/7/2026, 1:13:15 PM
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.

Parentac65941

27 files changed
  • apps/desktop/src-tauri/src/acp.rs+2751−0
  • apps/desktop/src-tauri/src/agents.rs+1−1
  • apps/desktop/src-tauri/src/commands.rs+139−0
  • apps/desktop/src-tauri/src/git_view.rs+72−17
  • apps/desktop/src-tauri/src/git_write.rs+646−0
  • apps/desktop/src-tauri/src/lib.rs+18−1
  • apps/desktop/src-tauri/src/wiring_tests.rs+155−1
  • apps/desktop/src-tauri/src/worktrees.rs
+62
−27
  • apps/desktop/src-tauri/tests/fixtures/fake_acp_agent.py+206−0
  • apps/desktop/src/App.test.tsx+1−1
  • apps/desktop/src/App.tsx+10−7
  • apps/desktop/src/features/editor/CommitBox.test.tsx+291−0
  • apps/desktop/src/features/editor/CommitBox.tsx+242−0
  • apps/desktop/src/features/editor/EditorChanges.tsx+175−25
  • apps/desktop/src/features/editor/EditorFiles.tsx+5−1
  • apps/desktop/src/features/editor/EditorWorkspace.test.tsx+152−11
  • apps/desktop/src/features/editor/queries.test.tsx+233−2
  • apps/desktop/src/features/editor/queries.ts+129−0
  • apps/desktop/src/features/settings/AcpAgentsSection.tsx+188−0
  • apps/desktop/src/features/settings/SettingsPage.test.tsx+235−2
  • apps/desktop/src/features/settings/SettingsPage.tsx+3−0
  • apps/desktop/src/queryClient.ts+3−0
  • apps/desktop/src/services/acp.test.ts+40−0
  • apps/desktop/src/services/acp.ts+17−0
  • apps/desktop/src/services/git-write.test.ts+41−0
  • apps/desktop/src/services/git-write.ts+21−0
  • apps/desktop/src/services/types.ts+50−0