Skip to content

Add native history and harden Git workflows#558

Closed
hbmartin wants to merge 2 commits into
gitx:masterfrom
hbmartin:codex/native-history-diff-autofetch
Closed

Add native history and harden Git workflows#558
hbmartin wants to merge 2 commits into
gitx:masterfrom
hbmartin:codex/native-history-diff-autofetch

Conversation

@hbmartin

Copy link
Copy Markdown

Summary

  • add native history, commit diff, file preview, and working-tree views with dark-mode-aware rendering
  • make repository loading, selection, diff generation, task execution, and auto-fetch behavior asynchronous, cancellable, and race-safe
  • harden patch generation and staging for renames, binary files, empty repositories, submodules, and partial selections
  • expand preferences, coverage, unit/integration/UI tests, sanitizer plans, formatting checks, static analysis, and CI verification
  • include the complete current worktree, ignore local reviews_triage/ output, and pin the ObjectiveGit reliability update

Why

Several native workflows could block the main thread, render stale selections after rapid navigation, mishandle edge-case paths or partial patches, and leave auto-fetch permanently paused after transient failures. The existing CI suite also did not exercise enough of these paths or enforce formatting, coverage, and analyzer regressions.

This change moves expensive Git/rendering work off the UI thread, adds cancellation and generation guards, bounds subprocesses and fetch retry behavior, strengthens Git edge-case handling, and adds regression coverage around the affected flows.

Dependency

Depends on gitx/objective-git#97, which makes the libgit2 update script deterministic and validates the built architecture before the parent submodule pointer advances.

Validation

  • scripts/verify_static.sh origin/master
  • 34 unit/integration tests passed; 0 failed and 0 skipped
  • all per-target coverage floors passed (GitX app coverage: 16.84%, floor: 16.50%)
  • Clang static analysis succeeded; the warning-budget check passed at the measured 16-warning legacy baseline
  • sh -n External/objective-git/script/update_libgit2

@hbmartin hbmartin closed this Jul 14, 2026
@hbmartin
hbmartin deleted the codex/native-history-diff-autofetch branch July 14, 2026 14:26
run: brew install exiftool imagemagick
- name: Checkout fixed repo snapshot for screenshots
if: ${{ env.variableSet != '' && matrix.abi == 'arm64' && github.event_name == 'pull_request' }}
if: ${{ matrix.abi == 'arm64' && github.event_name == 'pull_request' }}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The AI changed here too much without knowing why it's there 😁

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants