Files
PiAgentUI/docs/superpowers/plans/2026-05-31-piagentui-git-composer-control.md
T
Evandro b3489e1ede
Build & Push Frontend Docker Image / build-and-push (push) Canceled after 0s
Build Validation / validate (push) Canceled after 6s
Build & Push Backend Docker Image / build-and-push (push) Failing after 10m10s
Build & Push Gateway Docker Image / build-and-push (push) Failing after 10m9s
🎉 Initial commit: PiAgentUI — AI Agent Desktop & Web UI
A professional workspace for AI coding agents with:
- Real-time streaming chat with SSE
- Session management (fork, clone, tree navigation)
- MCP tools browser & metadata panel
- Skills browser (global, project, package sources)
- Voice input & STT provider configuration
- Integrated terminal & file explorer
- Model selector with capability metadata
- Keyboard-first UI with command palette
- 8 languages (en, pt-BR, es, ja, zh-CN, ar, bn, hi)
- Tauri 2 desktop app
- React 19 + TypeScript + Vite 8 + Tailwind CSS 4
- Pi Agent extension runtime

Originally forked from OpenCodeUI, now an independent project.
License: GPL-3.0-only
2026-06-01 00:50:06 -03:00

2.7 KiB

PiAgentUI Git Composer Control Implementation Plan

For agentic workers: REQUIRED SUB-SKILL: Use superpowers:subagent-driven-development (recommended) or superpowers:executing-plans to implement this plan task-by-task. Steps use checkbox (- [ ]) syntax for tracking.

Goal: Implement a Git branch/control popover in the message composer using GitHub Octicons and safe backend Git endpoints.

Architecture: Add focused Git logic in extensions/piagentui-git-manager.ts, expose /api/vcs/* endpoints from the extension server, expand frontend VCS API/types, and add GitComposerControl inside InputToolbar before agent/variant selectors.

Tech Stack: React 19, TypeScript, Vite, Vitest, Node child_process, Git CLI, @primer/octicons-react.


Files

  • Create: extensions/piagentui-git-manager.ts
  • Create: extensions/piagentui-git-manager.test.ts
  • Modify: extensions/piagentui-server.ts
  • Modify: extensions/piagentui-server.test.ts
  • Modify: src/types/api/vcs.ts
  • Modify: src/types/api/index.ts
  • Modify: src/api/vcs.ts
  • Create/modify: src/api/vcs.test.ts
  • Create: src/features/chat/input/GitComposerControl.tsx
  • Create: src/features/chat/input/GitComposerControl.test.tsx
  • Modify: src/features/chat/input/InputToolbar.tsx
  • Modify: package.json, package-lock.json

Task 1 — Backend Git manager

  • Write failing tests for branch parsing, status parsing, safe argv commands and commit validation.
  • Implement runGit, getGitStatus, listGitBranches, checkoutGitBranch, createGitBranch, stageGitPaths, unstageGitPaths, commitGitChanges, pullGitBranch, pushGitBranch.
  • Verify focused test passes.

Task 2 — Backend endpoints

  • Write failing server endpoint tests for /api/vcs/status, /api/vcs/branches, /api/vcs/commit.
  • Add endpoint routing in piagentui-server.ts with request parsing and errors.
  • Verify server tests pass.

Task 3 — Frontend API contract

  • Write failing API tests for query/body shapes.
  • Expand src/types/api/vcs.ts and src/api/vcs.ts.
  • Verify API tests pass.

Task 4 — Composer UI

  • Install @primer/octicons-react.
  • Write failing component tests for branch chip, popover opening and commit action.
  • Implement GitComposerControl with Octicons.
  • Integrate into InputToolbar before agent selector.
  • Verify component tests pass.

Task 5 — Full verification

  • Format touched files with node node_modules/prettier/bin/prettier.cjs --write ....
  • Run LSP diagnostics on touched files.
  • Run npm run typecheck, npm run typecheck:extensions, focused tests, npm run test:run, npm run build, and git diff --check.