hermes-agent/tests/gateway
teknium1 d400fb8b23 feat: add /update slash command for gateway platforms
Adds a /update command to Telegram, Discord, and other gateway platforms
that runs `hermes update` to pull the latest code, update dependencies,
sync skills, and restart the gateway.

Implementation:
- Spawns `hermes update` in a separate systemd scope (systemd-run --user
  --scope) so the process survives the gateway restart that hermes update
  triggers at the end. Falls back to nohup if systemd-run is unavailable.
- Writes a marker file (.update_pending.json) with the originating
  platform and chat_id before spawning the update.
- On gateway startup, _send_update_notification() checks for the marker,
  reads the captured update output, sends the results back to the user,
  and cleans up.

Also:
- Registers /update as a Discord slash command
- Updates README.md, docs/messaging.md, docs/slash-commands.md
- Adds 18 tests covering handler, notification, and edge cases
2026-03-05 01:20:58 -08:00
..
__init__.py test: reorganize test structure and add missing unit tests 2026-02-26 03:20:08 +03:00
test_channel_directory.py test: add unit tests for 8 untested modules (batch 3) (#191) 2026-03-01 05:28:12 -08:00
test_config.py test: reorganize test structure and add missing unit tests 2026-02-26 03:20:08 +03:00
test_delivery.py test: reorganize test structure and add missing unit tests 2026-02-26 03:20:08 +03:00
test_document_cache.py fix(security): patch path traversal, size bypass, and prompt injection in document processing 2026-02-27 11:53:46 -05:00
test_homeassistant.py feat: enhance Home Assistant integration with service discovery and setup 2026-03-03 05:16:53 -08:00
test_hooks.py fix(tests): use bare @pytest.mark.asyncio for hook emit tests 2026-03-01 05:28:55 -08:00
test_media_extraction.py fix(gateway): prevent TTS voice messages from accumulating across turns 2026-02-28 03:38:27 -05:00
test_mirror.py test: add unit tests for 8 untested modules (batch 3) (#191) 2026-03-01 05:28:12 -08:00
test_pairing.py test: add unit tests for 5 security/logic-critical modules (batch 4) 2026-02-28 20:33:48 +03:00
test_platform_base.py fix: platform base extract_images and truncate_message bugs + tests 2026-02-28 21:21:03 +03:00
test_session.py Merge PR #370: fix(session): use database session count for has_any_sessions 2026-03-04 05:37:15 -08:00
test_sticker_cache.py test: add unit tests for 8 untested modules (batch 3) (#191) 2026-03-01 05:28:12 -08:00
test_telegram_documents.py fix(security): patch path traversal, size bypass, and prompt injection in document processing 2026-02-27 11:53:46 -05:00
test_telegram_format.py fix: prevent italic regex from spanning newlines in Telegram formatter 2026-02-28 22:01:48 +03:00
test_transcript_offset.py fix(gateway): use filtered history length for transcript message extraction 2026-03-04 21:34:40 +03:00
test_update_command.py feat: add /update slash command for gateway platforms 2026-03-05 01:20:58 -08:00
test_whatsapp_connect.py fix(whatsapp): initialize data variable and close log handle on error paths 2026-03-04 19:11:48 +03:00