Skip to main content

GitAvailable

Git

Git is the human review-and-commit surface for a workspace worktree: change tree, per-file diffs, selective commits, remotes, and a bounded log.

It is separate from Commits, which owns the agent-facing queue. Desktop Git and Mobile Review display that queue as read-only.

Owner

AgentUp.Server Git slice

Tests

AgentUp.Server.Tests/Features/Git/

REST

/api/workspaces/{workspaceId}/git/*

  1. Read the change tree

  2. Commit or discard selected paths

  3. Use remotes and history when the user asked

Route

GET /api/workspaces/{workspaceId}/git/changes

Hosting-provider state​

This slice still reads the local repository. A forge capability kind supplies hosting state, and the Git surfaces display it. Display only — the same discipline the surfaces already follow with the queue.

Availability is notInstalled, needsCredential, noRemote, unreachable, noProposal, or ready. Every non-ready status carries detail and, when there is something to do, remedy. A workspace with no forge enabled is notInstalled; Desktop and Mobile still show the hosting strip.

GitHub connection is a per-workspace GitHub App Manifest flow, not a shared OAuth app. POST /api/workspaces/{workspaceId}/forge/login derives the callback origin from the request and returns a local registration launch URL. The anonymous manifest and installation callbacks register one private app named from the workspace and a stable suffix, persist its generated private key under Server data, and bind its installation to that workspace. API operations mint an app-installation token for only the repository inferred from the workspace remote; tokens are not persisted. Reconnect reuses the registered app. Forgejo continues to use the shared OAuth configuration.

Boundaries

Desktop

A strip above the change tree, not a new tab

Mobile

A row on the Git overview, detail on Review

Empty states

No capability, no credential and no proposal read differently

Review threads

Link out; Agent-Up is not a review client

GitHub identity

One private GitHub App registration and installation per workspace

GitHub secrets

Generated by the manifest exchange; no operator client secret

Next in this slice

Review tree and diffs

Change tree, file diffs, and selective commits.