- Complete architectural overhaul of useUnifiedCompletion hook - Unified state management: 8 separate states → single CompletionState interface - Simplified core logic: getWordAtCursor 194 lines → 42 lines (78% reduction) - Fixed infinite React update loops with ref-based input tracking - Smart triggering mechanism replacing aggressive auto-completion - Integrated @agent and @file mention system with system reminders - Added comprehensive agent loading and mention processing - Enhanced Tab/Arrow/Enter key handling with clean event management - Maintained 100% functional compatibility across all completion types Key improvements: • File path completion (relative, absolute, ~expansion, @references) • Slash command completion (/help, /model, etc.) • Agent completion (@agent-xxx with intelligent descriptions) • System command completion (PATH scanning with fallback) • Terminal-style Tab cycling, Enter confirmation, Escape cancellation • Preview mode with boundary calculation • History navigation compatibility • Empty directory handling with user feedback Architecture: Event-driven @mention detection → system reminder injection → LLM tool usage Performance: Eliminated 7-layer nested conditionals, reduced state synchronization issues Reliability: Fixed maximum update depth exceeded warnings, stable state management
942 B
942 B
Clean Architecture Solution
原则:Keep It Simple
✅ 正确的设计
// messages.tsx - 保持简洁
if (input.includes('@')) {
// 只处理文件引用
processedInput = await resolveFileReferences(processedInput)
}
❌ 错误的设计
- 在消息层检测 @agent
- 注入 system-reminder
- 修改用户输入
- 复杂的异步处理
Agent 功能的正确实现
Agent 功能已经通过 Task 工具正确实现:
// 用户可以直接使用
Task tool with subagent_type="dao-qi-harmony-designer"
不需要 @agent 语法糖,因为:
- 增加了不必要的复杂性
- 破坏了消息流的纯净性
- 原始 Kode 没有这个功能
架构原则
- 消息层:只负责文件内容嵌入
- 工具层:处理 agent 配置
- 模型层:自然选择合适的工具
结论
移除所有 @agent 相关的复杂逻辑,保持原始的简洁设计。