hermes-agent/gateway
Teknium c692312704 feat(kanban): GC stale done-task notify subscriptions
Now that subscriptions survive `done` (completion is reversible —
on every 5s notifier tick forever. Add
kanban_db.purge_stale_done_notify_subs(): one DELETE removing subs
whose task has been done with no new events past a retention window
(age = latest task event, falling back to completed_at/created_at, so
any activity exempts the task; a reopened task is exempt by status
alone). The notifier watcher runs it per board once at startup and at
most hourly, re-reading kanban.done_sub_retention_days (config.yaml,
default 30; 0 disables) at each sweep.
2026-08-13 12:21:04 -07:00
..
assets
builtin_hooks
platforms
relay
__init__.py
agent_cache_pressure.py
authz_mixin.py
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 feat(kanban): GC stale done-task notify subscriptions 2026-08-13 12:21:04 -07:00
lifecycle_ledger.py
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 fix(gateway): goal/heartbeat manager lookups for internal events skip activity touch 2026-08-13 12:04:35 -07:00
runtime_footer.py
scale_to_zero.py
session.py fix(gateway): keep internal wakes from extending sessions 2026-08-13 12:04:35 -07:00
session_context.py
session_stall.py
session_state.py
shutdown_flush.py
shutdown_forensics.py
shutdown_watchdog.py
slash_access.py
slash_commands.py
status.py
status_phrases.py
sticker_cache.py
stream_consumer.py
stream_dispatch.py
stream_events.py
streaming_tts_consumer.py
systemd_notify.py
turn_context.py
turn_lease.py
wake.py
whatsapp_identity.py