新增: Phase2 阶段收尾(Sprint 1-20)

重构:删 5 零引用 crate(df-evolve/plugin/stages/task/traceability)+ 清死模块、ai.rs 拆 11 子 module、ai.ts 拆 6 composable、i18n 拆目录
功能:知识库全栈(df-project/scan + CRUD + 时间线 + 前端)、Settings 拆分、appSettings KV 迁移、模型池、LLM 并发 Semaphore
修复:审批持久化根治、ConditionEngine 默认拒绝、NodeRegistry unimplemented 清除、promote 补偿删除、工具结果截断 50KB、路径校验防 symlink 逃逸
文档:B-03 人工审批设计、决策记录三分档、规格契约自检、经验记录、todo 看板、PROGRESS 更新

详见 PROGRESS.md。src-tauri/儿童每日打卡应用/ 与本项目无关,已排除。
This commit is contained in:
2026-06-14 14:08:20 +08:00
parent 98393b4908
commit cf017f81e2
167 changed files with 19549 additions and 6886 deletions

64
src/i18n/en/aiChat.ts Normal file
View File

@@ -0,0 +1,64 @@
export default {
aiChat: {
// ── Conversation sidebar ──
sidebarTitle: 'Chats',
newConversation: 'New chat',
doubleClickToRename: 'Double-click to rename',
archive: 'Archive',
unarchive: 'Unarchive',
archived: 'Archived',
archivedCount: 'Archived ({n})',
emptyConversation: 'No conversations',
// ── Time grouping (sidebar) ──
today: 'Today',
yesterday: 'Yesterday',
earlier: 'Earlier',
// ── Header buttons ──
conversationList: 'Chat list',
maximize: 'Maximize',
restoreSidebar: 'Restore sidebar',
detachWindow: 'Detach window',
closePanel: 'Close panel',
dockRight: 'Dock to main window right',
undock: 'Undock',
pinOnTop: 'Pin on top',
unpin: 'Unpin',
closeWindow: 'Close window',
// ── Provider status ──
clickToSwitchProvider: 'Click to switch provider',
providerNotConfigured: 'No AI provider configured. Please add one in settings.',
notConfigured: 'Not configured',
// ── Empty states ──
emptyNoProvider: 'No AI provider configured',
emptyNoProviderHint: 'Please add a provider in settings to start chatting',
emptyTitle: 'Chat with AI assistant',
emptyHint: 'Try "create a project" or "list all tasks"',
// ── Back to bottom ──
backToBottom: 'Back to bottom',
// ── Pending queue ──
queueTitle: 'Queued {n}/10',
clearQueue: 'Clear',
// ── Skill ──
clearSkill: 'Clear skill',
placeholderWithSkill: 'Skill selected. Type arguments and press Enter',
placeholderDefault: 'Type a message... (/ for skills)',
skillNoMatch: 'No matching skill',
skillNotLoaded: 'No local skills loaded',
// ── Send ──
stopGenerating: 'Stop generating',
// ── Input hint ──
inputHint: 'Enter to send · Shift+Enter for newline',
// ── Confirm dialog ──
confirmDeleteConversation: 'Delete chat "{title}"? This cannot be undone.',
},
}