Kode-cli/CLEAN_ARCHITECTURE_SOLUTION.md
CrazyBoyM 926df2cfaf feat: Ultra-redesign completion system with @mention integration
- 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
2025-08-21 01:21:12 +08:00

942 B
Raw Blame History

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 语法糖,因为:

  1. 增加了不必要的复杂性
  2. 破坏了消息流的纯净性
  3. 原始 Kode 没有这个功能

架构原则

  1. 消息层:只负责文件内容嵌入
  2. 工具层:处理 agent 配置
  3. 模型层:自然选择合适的工具

结论

移除所有 @agent 相关的复杂逻辑,保持原始的简洁设计。