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,14 @@
# Garvis Context — Always Loaded
## Proxmox SSH
Host: 192.168.2.100 · User: root · Port: 22 · Key: `C:/Users/fam1n/.ssh/garvis_serviceslab`
VMs: docker-hub(100), monitoring(101), ubuntu-dev(104), pfSense(105), Ansible(106), ubuntu-docker(107), CML(108), haos(114), moltbot(119)
Note: VMs 101/119 lack QEMU guest agent · Docker on VM100: gitea, gitea-db, teamspeak, portainer, beszel, vaultwarden
## Monitoring VM (101)
Host: 192.168.2.114 · User: server-admin · Port: 22 · Jump: root@192.168.2.100
Services: Loki, Promtail, Grafana (Docker Compose)
## Known Gotchas
- **Obsidian files**: NEVER write directly to vault folder — always use `obsidian_update_note` (REST API). Filesystem writes don't trigger Obsidian's index; file exists on disk but Obsidian won't see it.
- **Agent SDK timeouts**: Complex multi-tool tasks >5min will timeout — break into smaller steps or delegate to sub-agents