diff --git a/static/src/components/chat/actions/ToolAction.vue b/static/src/components/chat/actions/ToolAction.vue index 8921385..8fd8090 100644 --- a/static/src/components/chat/actions/ToolAction.vue +++ b/static/src/components/chat/actions/ToolAction.vue @@ -1228,7 +1228,7 @@ function renderEasterEgg(result: any, args: any): string { grid-template-columns: 5ch 1ch minmax(0, 1fr); column-gap: 8px; padding: 2px 4px; - margin: 1px 0; + margin: 0; align-items: start; } diff --git a/static/src/components/chat/actions/toolRenderers.ts b/static/src/components/chat/actions/toolRenderers.ts index 92997c5..92d4664 100644 --- a/static/src/components/chat/actions/toolRenderers.ts +++ b/static/src/components/chat/actions/toolRenderers.ts @@ -386,6 +386,14 @@ function renderEditFile(result: any, args: any): string { return true; }) .sort((a: any, b: any) => { + const aIsChange = a.marker === '-' || a.marker === '+'; + const bIsChange = b.marker === '-' || b.marker === '+'; + // 仅变更行之间优先按 marker 分组(- 在前 + 在后),再按行号 + if (aIsChange && bIsChange) { + const markerDelta = (markerOrder[a.marker] ?? 9) - (markerOrder[b.marker] ?? 9); + return markerDelta || (a.lineNo ?? Number.MAX_SAFE_INTEGER) - (b.lineNo ?? Number.MAX_SAFE_INTEGER); + } + // 上下文行或跨类型:按行号优先 const lineDelta = (a.lineNo ?? Number.MAX_SAFE_INTEGER) - (b.lineNo ?? Number.MAX_SAFE_INTEGER); return lineDelta || (markerOrder[a.marker] ?? 9) - (markerOrder[b.marker] ?? 9); }) diff --git a/static/src/components/overlay/VersioningDialog.vue b/static/src/components/overlay/VersioningDialog.vue index 24d1c21..0235015 100644 --- a/static/src/components/overlay/VersioningDialog.vue +++ b/static/src/components/overlay/VersioningDialog.vue @@ -764,7 +764,7 @@ const formatTime = (value: string) => { .diff-line { padding: 2px 4px; - margin: 1px 0; + margin: 0; white-space: pre-wrap; word-wrap: break-word; }