hermes-agent/gateway
teknium1 370cc9394b
feat(side): extend /side to CLI + TUI, shared prompt composer, tests, docs
Follow-ups on the #53969 salvage:

- hermes_cli/side_question.py: shared compose_side_prompt() used by all
  three surfaces; treats the parent history as read-only by construction.
- gateway: /side now uses the shared composer and registers its task in
  _background_tasks with a done-callback (same lifecycle as /background,
  addressing the sweeper review note); dropped the unused
  _SIDE_BOUNDARY_PROMPT and the dead /sidereturn no-op command (with its
  /return and /closeside alias squatting).
- CLI: /side snapshots self.conversation_history into a side prompt and
  reuses the /background daemon-thread runner (new prompt_override /
  display_prompt / task_label parameters); dispatch wired in cli.py.
- TUI: new prompt.side RPC (history snapshot under history_lock, throwaway
  AIAgent, background.complete delivery) + /side slash command in ui-tui.
- No /btw alias: /btw is a long-standing alias of /background
  (hermes_cli/commands.py) — /side ships alias-free and a registry test
  pins /btw -> background.
- tests: tests/gateway/test_side_command.py (19) covering the byte-identical
  main-history invariant, empty-history, no-session-entry, task lifecycle
  tracking, prompt composition, and registry; tests/cli/test_cli_side_command.py
  (7) covering the CLI surface and dispatch.
- docs: /side rows in the CLI and messaging tables of
  website/docs/reference/slash-commands.md + cross-surface list.
2026-07-26 16:17:57 -07:00
..
assets
builtin_hooks
platforms fix(gateway): GIS extensions, spaced MEDIA paths, and code-block-safe display strip 2026-07-26 13:41:53 -07:00
relay
__init__.py
authz_mixin.py fix(gateway): kanban notifier delivery reliability 2026-07-26 16:14:15 -07:00
cgroup_cleanup.py
channel_directory.py
code_skew.py
config.py
cwd_placeholder.py
dead_targets.py
delivery.py
delivery_ledger.py
display_config.py
drain_control.py
hooks.py
kanban_watchers.py fix(gateway): zero-sub early exit for kanban notifier board polling 2026-07-26 16:14:15 -07:00
memory_monitor.py
message_timestamps.py
mirror.py
pairing.py
platform_registry.py
profile_routing.py
readiness.py
response_filters.py
restart.py
restart_loop_guard.py
rich_sent_store.py
run.py feat(side): extend /side to CLI + TUI, shared prompt composer, tests, docs 2026-07-26 16:17:57 -07:00
runtime_footer.py
scale_to_zero.py
session.py
session_context.py fix(gateway): dedupe chat_type wiring after composing #58615 with #60769 2026-07-26 16:01:32 -07:00
shutdown_forensics.py
shutdown_watchdog.py
slash_access.py
slash_commands.py feat(side): extend /side to CLI + TUI, shared prompt composer, tests, docs 2026-07-26 16:17:57 -07:00
status.py
status_phrases.py
sticker_cache.py
stream_consumer.py
stream_dispatch.py
stream_events.py
systemd_notify.py
turn_lease.py
wake.py
whatsapp_identity.py