feat: show changed files after completed turns
Add changed-file pills with per-file diff stats Add a chat setting to disable the feature fully Avoid changed-file projection work when disabled
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import type { Message, Part } from '@opencode-ai/sdk/v2';
|
||||
import type { TurnActivityGroup, TurnActivityRecord, TurnDiffStats, TurnGroupingContext } from '../lib/turns/types';
|
||||
import type { TurnActivityGroup, TurnActivityRecord, TurnChangedFile, TurnDiffStats, TurnGroupingContext } from '../lib/turns/types';
|
||||
|
||||
type MessageRecord = {
|
||||
info: Message;
|
||||
@@ -146,6 +146,24 @@ const areTurnDiffStatsEqual = (left?: TurnDiffStats, right?: TurnDiffStats): boo
|
||||
&& left.files === right.files;
|
||||
};
|
||||
|
||||
const areTurnChangedFilesEqual = (left?: TurnChangedFile[], right?: TurnChangedFile[]): boolean => {
|
||||
if (left === right) return true;
|
||||
if (!left || !right) return !left && !right;
|
||||
if (left.length !== right.length) return false;
|
||||
for (let index = 0; index < left.length; index += 1) {
|
||||
const leftFile = left[index];
|
||||
const rightFile = right[index];
|
||||
if (
|
||||
leftFile.file !== rightFile.file
|
||||
|| leftFile.additions !== rightFile.additions
|
||||
|| leftFile.deletions !== rightFile.deletions
|
||||
) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
};
|
||||
|
||||
const areTurnActivityRecordsEqual = (left: TurnActivityRecord, right: TurnActivityRecord): boolean => {
|
||||
return left.id === right.id
|
||||
&& left.messageId === right.messageId
|
||||
@@ -301,5 +319,9 @@ export const areRelevantTurnGroupingContextsEqual = (
|
||||
return false;
|
||||
}
|
||||
|
||||
if ((ownerRelevant || segmentsRelevant || left.isLastAssistantInTurn || right.isLastAssistantInTurn) && !areTurnChangedFilesEqual(left.changedFiles, right.changedFiles)) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user