优化: UI/UX遗留批(审计/AI命令层/前端组件,会话前基线收尾)

- AuditLog +298(筛选/详情/i18n)+ audit 后端 record/mod

- AI 命令层:generate_image +81 / fetch_url / fetch_search / skills / tool_registry / tools/file / provider / conversation

- 前端组件:AiChat/TopBar/ConversationSidebar/GitChanges/ApprovalPopup/Dashboard/ProjectDetail 等 30+ + composables + i18n

- 诊断文档: aichat历史会话实证诊断-2026-08-04 + project_soft_delete 测试
This commit is contained in:
lxy
2026-08-05 22:15:34 +08:00
parent 28de5d6143
commit e68d283651
49 changed files with 1257 additions and 138 deletions
+2 -2
View File
@@ -123,7 +123,7 @@ function onDismiss() {
border: 0.5px solid var(--df-accent);
border-left: 3px solid var(--df-accent);
border-radius: var(--df-radius-md);
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4), 0 0 0 1px rgba(123, 111, 240, 0.2);
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4), 0 0 0 1px var(--df-accent-soft);
cursor: pointer;
transition: all 0.18s var(--df-ease);
user-select: none;
@@ -155,7 +155,7 @@ function onDismiss() {
min-width: 18px;
height: 18px;
padding: 0 5px;
border-radius: 9px;
border-radius: 8px;
background: var(--df-danger);
color: #fff;
font-size: 10px;
+1 -1
View File
@@ -118,6 +118,6 @@ onMounted(async () => {
.ci-item--success { border-color: var(--df-success); }
.ci-item--failure { border-color: var(--df-danger); }
.ci-item--pending { border-color: var(--df-warning); }
.ci-item-icon { font-size: 10px; font-weight: 700; }
.ci-item-icon { font-size: 10px; font-weight: 500; }
.ci-item:hover { opacity: 0.8; }
</style>
+1 -1
View File
@@ -143,7 +143,7 @@ watch(
.conflict-type-badge {
font-size: 10px;
padding: 2px 6px;
border-radius: 3px;
border-radius: 4px;
}
.badge--file { background: rgba(255, 193, 7, 0.15); color: #ffc107; }
.badge--semantic { background: rgba(220, 53, 69, 0.15); color: #dc3545; }
+1 -1
View File
@@ -549,7 +549,7 @@ body.ai-sidebar-resizing * {
font-size: 10px;
color: var(--df-text-dim);
border: 0.5px solid var(--df-border);
border-radius: 3px;
border-radius: 4px;
padding: 0 4px;
user-select: none;
}
+1 -1
View File
@@ -1001,7 +1001,7 @@ onBeforeUnmount(() => {
white-space: nowrap;
}
.ai-goal-dot { width: 6px; height: 6px; border-radius: 50%; background: var(--df-success); flex-shrink: 0; }
.ai-goal-check { color: var(--df-success); font-weight: bold; flex-shrink: 0; }
.ai-goal-check { color: var(--df-success); font-weight: 500; flex-shrink: 0; }
.ai-goal-remove { border: none; background: transparent; color: var(--df-text-dim); cursor: pointer; padding: 0 2px; font-size: 13px; line-height: 1; flex-shrink: 0; }
.ai-goal-remove:hover {
color: var(--df-danger, #e5484d);