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

1
_wf_stage1.b64 Normal file
View File

@@ -0,0 +1 @@
eyJuYW1lIjogIkNvbnRlbnQgUGlwZWxpbmUgLSBCbGVuZGVkRmFtaWx5S2l0Y2hlbiIsICJub2RlcyI6IFt7InBhcmFtZXRlcnMiOiB7InJ1bGUiOiB7ImludGVydmFsIjogW3siZmllbGQiOiAibWludXRlcyIsICJtaW51dGVzSW50ZXJ2YWwiOiAzMH1dfX0sICJpZCI6ICJub2RlLTAxLXNjaGVkdWxlIiwgIm5hbWUiOiAiU2NoZWR1bGUgVHJpZ2dlciIsICJ0eXBlIjogIm44bi1ub2Rlcy1iYXNlLnNjaGVkdWxlVHJpZ2dlciIsICJ0eXBlVmVyc2lvbiI6IDEuMiwgInBvc2l0aW9uIjogWy0yMDAsIDMwMF19LCB7InBhcmFtZXRlcnMiOiB7Im1ldGhvZCI6ICJQT1NUIiwgInVybCI6ICJodHRwOi8vMTkyLjE2OC4yLjIwMDo1MDAwL3dlYmFwaS9lbnRyeS5jZ2kiLCAic2VuZFF1ZXJ5IjogdHJ1ZSwgInF1ZXJ5UGFyYW1ldGVycyI6IHsicGFyYW1ldGVycyI6IFt7Im5hbWUiOiAiYXBpIiwgInZhbHVlIjogIlNZTk8uQVBJLkF1dGgifSwgeyJuYW1lIjogInZlcnNpb24iLCAidmFsdWUiOiAiMyJ9LCB7Im5hbWUiOiAibWV0aG9kIiwgInZhbHVlIjogImxvZ2luIn0sIHsibmFtZSI6ICJhY2NvdW50IiwgInZhbHVlIjogIj17eyAuTkFTX1VTRVJOQU1FIH19In0sIHsibmFtZSI6ICJwYXNzd2QiLCAidmFsdWUiOiAiPXt7IC5OQVNfUEFTU1dPUkQgfX0ifSwgeyJuYW1lIjogInNlc3Npb24iLCAidmFsdWUiOiAiRmlsZVN0YXRpb24ifSwgeyJuYW1lIjogImZvcm1hdCIsICJ2YWx1ZSI6ICJzaWQifV19LCAib3B0aW9ucyI6IHt9fSwgImlkIjogIm5vZGUtMDItbmFzLWxvZ2luIiwgIm5hbWUiOiAiSFRUUCAtIE5BUyBMb2dpbiIsICJ0eXBlIjogIm44bi1ub2Rlcy1iYXNlLmh0dHBSZXF1ZXN0IiwgInR5cGVWZXJzaW9uIjogNC4yLCAicG9zaXRpb24iOiBbMCwgMzAwXX0sIHsicGFyYW1ldGVycyI6IHsibWV0aG9kIjogIkdFVCIsICJ1cmwiOiAiaHR0cDovLzE5Mi4xNjguMi4yMDA6NTAwMC93ZWJhcGkvZW50cnkuY2dpIiwgInNlbmRRdWVyeSI6IHRydWUsICJxdWVyeVBhcmFtZXRlcnMiOiB7InBhcmFtZXRlcnMiOiBbeyJuYW1lIjogImFwaSIsICJ2YWx1ZSI6ICJTWU5PLkZpbGVTdGF0aW9uLkxpc3QifSwgeyJuYW1lIjogInZlcnNpb24iLCAidmFsdWUiOiAiMiJ9LCB7Im5hbWUiOiAibWV0aG9kIiwgInZhbHVlIjogImxpc3QifSwgeyJuYW1lIjogImZvbGRlcl9wYXRoIiwgInZhbHVlIjogIi9CbGVuZGVkRmFtaWx5S2l0Y2hlbi9yYXcifSwgeyJuYW1lIjogIl9zaWQiLCAidmFsdWUiOiAiPXt7IC5kYXRhLnNpZCB9fSJ9XX0sICJvcHRpb25zIjoge319LCAiaWQiOiAibm9kZS0wMy1wb2xsLW5hcyIsICJuYW1lIjogIkhUVFAgLSBQb2xsIE5BUyBmb3IgTmV3IEZpbGVzIiwgInR5cGUiOiAibjhuLW5vZGVzLWJhc2UuaHR0cFJlcXVlc3QiLCAidHlwZVZlcnNpb24iOiA0LjIsICJwb3NpdGlvbiI6IFsyMDAsIDMwMF19LCB7InBhcmFtZXRlcnMiOiB7ImNvbmRpdGlvbnMiOiB7Im9wdGlvbnMiOiB7ImNhc2VTZW5zaXRpdmUiOiB0cnVlLCAibGVmdFZhbHVlIjogIiIsICJ0eXBlVmFsaWRhdGlvbiI6ICJzdHJpY3QifSwgImNvbmRpdGlvbnMiOiBbeyJpZCI6ICJjb25kLW5ldy1maWxlcyIsICJsZWZ0VmFsdWUiOiAiPXt7IC5kYXRhLmZpbGVzLmxlbmd0aCB9fSIsICJyaWdodFZhbHVlIjogIjAiLCAib3BlcmF0b3IiOiB7InR5cGUiOiAibnVtYmVyIiwgIm9wZXJhdGlvbiI6ICJndCJ9fV0sICJjb21iaW5hdG9yIjogImFuZCJ9LCAib3B0aW9ucyI6IHt9fSwgImlkIjogIm5vZGUtMDQtaWYtbmV3LWZpbGVzIiwgIm5hbWUiOiAiSUYgLSBOZXcgRmlsZXMgRm91bmQ/IiwgInR5cGUiOiAibjhuLW5vZGVzLWJhc2UuaWYiLCAidHlwZVZlcnNpb24iOiAyLCAicG9zaXRpb24iOiBbNDAwLCAzMDBdfSwgeyJwYXJhbWV0ZXJzIjogeyJvcHRpb25zIjoge319LCAiaWQiOiAibm9kZS0wNS1zcGxpdC1iYXRjaGVzIiwgIm5hbWUiOiAiU3BsaXQgSW4gQmF0Y2hlcyIsICJ0eXBlIjogIm44bi1ub2Rlcy1iYXNlLnNwbGl0SW5CYXRjaGVzIiwgInR5cGVWZXJzaW9uIjogMywgInBvc2l0aW9uIjogWzYwMCwgMzAwXX0sIHsicGFyYW1ldGVycyI6IHsibW9kZSI6ICJtYW51YWwiLCAiZHVwbGljYXRlSXRlbSI6IGZhbHNlLCAiYXNzaWdubWVudHMiOiB7ImFzc2lnbm1lbnRzIjogW3siaWQiOiAiYXNzaWduLWZpbGVuYW1lIiwgIm5hbWUiOiAiZmlsZW5hbWUiLCAidmFsdWUiOiAiPXt7IC5uYW1lIH19IiwgInR5cGUiOiAic3RyaW5nIn0sIHsiaWQiOiAiYXNzaWduLWZpbGVwYXRoIiwgIm5hbWUiOiAiZmlsZXBhdGgiLCAidmFsdWUiOiAiPXt7IC5wYXRoIH19IiwgInR5cGUiOiAic3RyaW5nIn0sIHsiaWQiOiAiYXNzaWduLWZpbGVzaXplIiwgIm5hbWUiOiAiZmlsZXNpemUiLCAidmFsdWUiOiAiPXt7IC5hZGRpdGlvbmFsPy5zaXplIHx8IC5maWxlc2l6ZSB8fCAwIH19IiwgInR5cGUiOiAibnVtYmVyIn0sIHsiaWQiOiAiYXNzaWduLWNyZWF0ZWQiLCAibmFtZSI6ICJjcmVhdGVkX3RpbWUiLCAidmFsdWUiOiAiPXt7IC5hZGRpdGlvbmFsPy50aW1lPy5jcnRpbWUgfHwgLmNydGltZSB8fCBcIlwiIH19IiwgInR5cGUiOiAic3RyaW5nIn1dfSwgIm9wdGlvbnMiOiB7fX0sICJpZCI6ICJub2RlLTA2LWV4dHJhY3QtbWV0YWRhdGEiLCAibmFtZSI6ICJTZXQgLSBFeHRyYWN0IEZpbGUgTWV0YWRhdGEiLCAidHlwZSI6ICJuOG4tbm9kZXMtYmFzZS5zZXQiLCAidHlwZVZlcnNpb24iOiAzLjQsICJwb3NpdGlvbiI6IFs4MDAsIDMwMF19XSwgImNvbm5lY3Rpb25zIjoge30sICJzZXR0aW5ncyI6IHsiZXhlY3V0aW9uT3JkZXIiOiAidjEiLCAiY2FsbGVyUG9saWN5IjogIndvcmtmbG93c0Zyb21TYW1lT3duZXIiLCAiYXZhaWxhYmxlSW5NQ1AiOiBmYWxzZX19