- 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
37 lines
1.4 KiB
Markdown
37 lines
1.4 KiB
Markdown
# 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. |