- 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
1.4 KiB
1.4 KiB
Test @mention Integration
This file tests the integration of @mention functionality with the system reminder infrastructure.
Test Cases
- Agent mentions: Test @agent-simplicity-auditor or @simplicity-auditor
- File mentions: Test @src/query.ts or @package.json
- Mixed mentions: Use both in same message
Expected Behavior
When a user mentions @agent-xxx or @file:
- The mention processor detects it
- Emits an event to system reminder service
- System reminder creates a reminder
- Reminder gets injected into the next LLM query
- 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.