Implement embedded Git status and synchronization UI #26

Closed
opened 2026-08-09 19:11:11 +00:00 by hugo · 1 comment
Owner

Objective

Implement Git status, synchronization and conflict presentation over the embedded storage Git API.

Scope

  • Show repository/remote identity, clean/dirty state, ahead/behind state, recent commits and typed conflicts.
  • Provide direct pull and push hotkeys with progress, cancellation, credential prompts and non-fast-forward handling.
  • Expose remaining supported Git operations through dialogs and : commands without requiring direct hotkeys.
  • Present merge conflicts as storage-provided objects and allow choosing supported storage resolution actions.
  • Refresh entries only after a successful synchronized storage snapshot.

Acceptance criteria

  • Offline, authentication, TLS, non-fast-forward, conflict, cancellation and success states are testable without a real remote.
  • Long Git work does not block keyboard input or extend the authentication lease by itself.
  • HTTPS credentials are never rendered or placed in command history.
  • No Git executable, credential helper, SSH process or CLI binary is launched.

Prerequisites

TUI shell; authentication UI; keymap; command mode; embedded HTTPS Git API.

## Objective Implement Git status, synchronization and conflict presentation over the embedded storage Git API. ## Scope - Show repository/remote identity, clean/dirty state, ahead/behind state, recent commits and typed conflicts. - Provide direct pull and push hotkeys with progress, cancellation, credential prompts and non-fast-forward handling. - Expose remaining supported Git operations through dialogs and `:` commands without requiring direct hotkeys. - Present merge conflicts as storage-provided objects and allow choosing supported storage resolution actions. - Refresh entries only after a successful synchronized storage snapshot. ## Acceptance criteria - Offline, authentication, TLS, non-fast-forward, conflict, cancellation and success states are testable without a real remote. - Long Git work does not block keyboard input or extend the authentication lease by itself. - HTTPS credentials are never rendered or placed in command history. - No Git executable, credential helper, SSH process or CLI binary is launched. ## Prerequisites TUI shell; authentication UI; keymap; command mode; embedded HTTPS Git API.
hugo added this to the 02 - Mutt-style terminal UI milestone 2026-08-09 19:11:11 +00:00
hugo added the enhancement label 2026-08-09 19:11:11 +00:00
Author
Owner

Implemented in commit 1850846. Added a storage-owned Git snapshot (repository/branch, configured HTTPS remote, clean/dirty state, ahead/behind counts, and recent commits), cooperative progress/cancellation with typed offline/TLS/authentication/non-fast-forward outcomes, and transactional typed conflict objects with explicit local/remote resolution actions. The TUI now provides an embedded Git dashboard, direct authenticated pull/push workflows, all supported Git operations through command mode, zeroizing diff presentation, progress and Esc cancellation, and refreshes the password tree only after a successfully integrated snapshot. Conflict resolution is available through :git resolve-local and :git resolve-remote. Verified with deterministic injected transports and conflict fixtures, plus all four required workspace gates.

Implemented in commit 1850846. Added a storage-owned Git snapshot (repository/branch, configured HTTPS remote, clean/dirty state, ahead/behind counts, and recent commits), cooperative progress/cancellation with typed offline/TLS/authentication/non-fast-forward outcomes, and transactional typed conflict objects with explicit local/remote resolution actions. The TUI now provides an embedded Git dashboard, direct authenticated pull/push workflows, all supported Git operations through command mode, zeroizing diff presentation, progress and Esc cancellation, and refreshes the password tree only after a successfully integrated snapshot. Conflict resolution is available through :git resolve-local and :git resolve-remote. Verified with deterministic injected transports and conflict fixtures, plus all four required workspace gates.
hugo closed this issue 2026-08-10 10:40:19 +00:00
Sign in to join this conversation.