feat(tracker): disable Ralph Wiggum tracker by default, auto-enable on detection

The InnerLoopTracker is now disabled by default and auto-enables when
Ralph-related patterns are detected:
- /ralph-loop command
- <promise>PHRASE</promise> completion phrases
- TodoWrite tool usage
- Iteration patterns (Iteration 5/50, [5/50])
- Todo checkboxes (- [ ]/- [x]) or indicator icons

This reduces noise for sessions that don't use Ralph loops while
maintaining full functionality when loops are detected.

Changes:
- Add `enabled` property to InnerLoopState type
- Add enable()/disable() methods to InnerLoopTracker
- Implement shouldAutoEnable() for pattern detection
- Update frontend to show "Tracking" status when enabled
- Add CSS for tracking state indicator
- Update CLAUDE.md documentation
- Add comprehensive tests for auto-enable behavior

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
arkon
2026-01-19 18:34:43 +01:00
co-authored by Claude Opus 4.5
parent 7e7bfb66e4
commit 2c38f7924a
6 changed files with 241 additions and 7 deletions
+2
View File
@@ -251,6 +251,7 @@ export const DEFAULT_CONFIG: AppConfig = {
export type InnerTodoStatus = 'pending' | 'in_progress' | 'completed';
export interface InnerLoopState {
enabled: boolean; // Whether the tracker is actively monitoring (disabled by default)
active: boolean;
completionPhrase: string | null;
startedAt: number | null;
@@ -280,6 +281,7 @@ export interface InnerStateRecord {
export function createInitialInnerLoopState(): InnerLoopState {
return {
enabled: false, // Disabled by default, auto-enables when Ralph patterns detected
active: false,
completionPhrase: null,
startedAt: null,