feat(git): inline file diffs in commit history rows (#1291)
* chore: add .worktrees/ to gitignore for worktree workflow * feat(git): add getCommitFileDiff service function * docs(git): document getCommitFileDiff in module docs * feat(git): add GET /api/git/commit-file-diff route * feat(git): add CommitFileDiffResponse type and GitAPI method signature * feat(git): add getCommitFileDiff HTTP client function * feat(git): add getCommitFileDiff API facade * feat(git): add getCommitFileDiff stub to VS Code bridge * feat(git): add getCommitFileDiff to VS Code gitService and bridge handler * feat(git): add inline file diff to history commit rows * fix(git): consolidate CommitFileDiffResponse import to gitApi facade * fix(git): pass directory through history, validate hash, propagate git errors * fix(git): use exit code check for VS Code getCommitFileDiff error detection * fix(git): VS Code rename detection, hash validation parity, retry on error * fix(git): register scroll container as virtualizer root to fix empty space in history diffs * fix(git): address greptile review — rename key extraction, directory guard, language detection, isBinary cleanup * fix(git): harden history inline diffs --------- Co-authored-by: Bohdan Triapitsyn <artmore@protonmail.com>
This commit is contained in:
committed by
GitHub
co-authored by
Bohdan Triapitsyn
parent
fa8fac2590
commit
631905764e
@@ -25,6 +25,7 @@ import type {
|
||||
GitLogOptions,
|
||||
GitLogResponse,
|
||||
GitCommitFilesResponse,
|
||||
CommitFileDiffResponse,
|
||||
GitIdentityProfile,
|
||||
GitIdentitySummary,
|
||||
DiscoveredGitCredential,
|
||||
@@ -681,6 +682,25 @@ export async function getCommitFiles(
|
||||
return response.json();
|
||||
}
|
||||
|
||||
export async function getCommitFileDiff(
|
||||
directory: string,
|
||||
hash: string,
|
||||
filePath: string,
|
||||
isBinary: boolean
|
||||
): Promise<CommitFileDiffResponse> {
|
||||
const response = await fetch(
|
||||
buildUrl(`${API_BASE}/commit-file-diff`, directory, {
|
||||
hash,
|
||||
path: filePath,
|
||||
binary: isBinary ? 'true' : undefined,
|
||||
})
|
||||
);
|
||||
if (!response.ok) {
|
||||
throw new Error(`Failed to get commit file diff: ${response.statusText}`);
|
||||
}
|
||||
return response.json();
|
||||
}
|
||||
|
||||
export async function getGitIdentities(): Promise<GitIdentityProfile[]> {
|
||||
const response = await fetch(buildUrl(`${API_BASE}/identities`, undefined));
|
||||
if (!response.ok) {
|
||||
|
||||
Reference in New Issue
Block a user