feat: RSO observation system, child safety, Discord adapter, Telegram watchdog, email attachments

Core agent improvements:
- RSO (Relevance Scoring & Observation) system: interaction_logger, memory_scorer, signal_detector
- Memory access logging (memory_access_log table) for relevance scoring; high-signal turn detection
- Rich conversation storage for notable turns; compact_conversation truncates long user messages
- Task-type classifier (query/action/analysis/creative) for observation tagging
- Nested sub-agent visibility: deep delegations now register against the main agent's manager

Child safety (Gabriel profile):
- child_safety.py: filtering, audit logging, prompt constants for restricted sessions
- .kiro/specs/child-safety-profile: requirements, design, tasks specs
- GABRIEL_BOT_PROPOSAL.md: initial proposal doc
- Reduced context window (10 msgs) and tutor-mode identity for restricted users

Telegram adapter:
- Polling watchdog: auto-restarts updater if polling drops unexpectedly
- get_me() with exponential-backoff retry on NetworkError at startup
- Correct stop() ordering: signal watchdog before cancelling tasks

Email / Gmail:
- send_email: supports file attachments (attachments list param)
- get_email: surfaces attachment metadata in response

Scheduled tasks / weather:
- Remove OpenWeatherMap API calls from morning-weather task; use wttr.in exclusively
- New scheduled tasks and scheduler state persistence

Discord:
- adapters/discord/__init__.py scaffold
- discord-plugin: MCP plugin for Claude Code Discord integration (server.ts, skills, config)

Infrastructure:
- n8n workflow exports (garvis_webhook, content_pipeline variants)
- memory_workspace: context, homelab-repo-updates, weekly observation summaries, error logs
- UCS C240 migration plan doc
- requirements.txt: new deps
- .claude/settings.json, fix_hooks.py: hook/permission tuning
This commit is contained in:
2026-04-23 07:54:01 -06:00
parent 1232490c3b
commit 916f86725d
70 changed files with 10945 additions and 187 deletions

View File

@@ -0,0 +1,4 @@
{"record_type": "error", "timestamp": "2026-04-21T18:16:49.928431", "error_type": "Exception", "message": "Agent SDK error: Task timed out after 30 minutes (16 messages processed)\nLast tool used: Read\nUsed 4 different tools - this is a complex multi-step task\n\nSuggestions:\n- Break this into smaller, focused sub-tasks\n- Use 'delegate_task' tool to run parts in parallel\n- Ask me to retry with a more specific scope", "component": "agent.py:_chat_agent_sdk", "intent": "Calling Agent SDK for chat response", "attempt": 1, "context": {"model": "claude-sonnet-4-6", "message_preview": "I just send you an email. Download those attachments and analyze the DAP 4.8 file"}, "self_healed": false}
{"record_type": "error", "timestamp": "2026-04-21T18:56:25.822252", "error_type": "Exception", "message": "Agent SDK error: Task timed out after 30 minutes (16 messages processed)\nLast tool used: Read\nUsed 4 different tools - this is a complex multi-step task\n\nSuggestions:\n- Break this into smaller, focused sub-tasks\n- Use 'delegate_task' tool to run parts in parallel\n- Ask me to retry with a more specific scope", "component": "agent.py:_chat_agent_sdk", "intent": "Calling Agent SDK for chat response", "attempt": 2, "context": {"model": "claude-sonnet-4-6", "message_preview": "Did you download the attachments"}, "self_healed": false}
{"record_type": "error", "timestamp": "2026-04-21T20:22:15.303985", "error_type": "Exception", "message": "Agent SDK error: Task timed out after 30 minutes (11 messages processed)\nLast tool used: WebFetch\n\nSuggestions:\n- Break this into smaller, focused sub-tasks\n- Use 'delegate_task' tool to run parts in parallel\n- Ask me to retry with a more specific scope", "component": "agent.py:_chat_agent_sdk", "intent": "Calling Agent SDK for chat response", "attempt": 1, "context": {"model": "claude-sonnet-4-6", "message_preview": "So let's go over the dividend being not guaranteed. Given the companies a+ rating can you give me a "}, "self_healed": false}
{"record_type": "error", "timestamp": "2026-04-21T20:52:15.705546", "error_type": "Exception", "message": "Agent SDK error: Task timed out after 30 minutes (14 messages processed)\nLast tool used: WebFetch\nUsed 4 different tools - this is a complex multi-step task\n\nSuggestions:\n- Break this into smaller, focused sub-tasks\n- Use 'delegate_task' tool to run parts in parallel\n- Ask me to retry with a more specific scope", "component": "agent.py:_chat_agent_sdk", "intent": "Calling Agent SDK for chat response", "attempt": 1, "context": {"model": "claude-sonnet-4-6", "message_preview": "Time for your daily zettelkasten review! Help Jordan process fleeting notes:\n\n1. Use search_by_tags "}, "self_healed": false}