Kode-cli/test-mention-integration.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

1.4 KiB

Test @mention Integration

This file tests the integration of @mention functionality with the system reminder infrastructure.

Test Cases

  1. Agent mentions: Test @agent-simplicity-auditor or @simplicity-auditor
  2. File mentions: Test @src/query.ts or @package.json
  3. Mixed mentions: Use both in same message

Expected Behavior

When a user mentions @agent-xxx or @file:

  1. The mention processor detects it
  2. Emits an event to system reminder service
  3. System reminder creates a reminder
  4. Reminder gets injected into the next LLM query
  5. LLM receives context about the mention

Implementation Summary

The implementation follows an event-driven architecture:

User Input → processMentions() → emitReminderEvent() → systemReminder listeners
                                                          ↓
                                                     Cache reminder
                                                          ↓
                                              getMentionReminders() during query

The key files modified:

  • /src/services/mentionProcessor.ts - New service for mention detection
  • /src/services/systemReminder.ts - Added event listeners and getMentionReminders()
  • /src/utils/messages.tsx - Integrated processMentions() call

This approach is minimally disruptive and follows the existing philosophy of the system reminder infrastructure.