Skip to content

feat(kanban): persist canonical notification session routing - #69020

Open
JnyRoad wants to merge 1 commit into
NousResearch:mainfrom
JnyRoad:feat/kanban-canonical-notification-routing
Open

feat(kanban): persist canonical notification session routing#69020
JnyRoad wants to merge 1 commit into
NousResearch:mainfrom
JnyRoad:feat/kanban-canonical-notification-routing

Conversation

@JnyRoad

@JnyRoad JnyRoad commented Jul 22, 2026

Copy link
Copy Markdown

Summary

  • Persist a canonical notification route: session key, platform, chat type, thread, profile, and a non-secret adapter identity.
  • Route notifications through the exact active or secondary profile adapter without falling back across profiles.
  • Keep legacy, partial, CLI, and tool-originated subscriptions notify-only; this PR intentionally does not wake an agent.
  • Preserve old databases with additive nullable migrations and refuse to infer missing canonical fields.

Validation

  • scripts/run_tests.sh tests/gateway/test_kanban_notifier.py tests/gateway/test_session_env.py tests/hermes_cli/test_kanban_db_init.py tests/hermes_cli/test_kanban_notify.py tests/plugins/test_kanban_dashboard_plugin.py tests/tools/test_kanban_tools.py -q (278 passed)
  • python scripts/check-windows-footguns.py gateway/kanban_watchers.py gateway/run.py gateway/session_context.py gateway/slash_commands.py hermes_cli/kanban_db.py tools/kanban_tools.py tests/gateway/test_kanban_notifier.py tests/gateway/test_session_env.py tests/hermes_cli/test_kanban_db_init.py tests/hermes_cli/test_kanban_notify.py tests/plugins/test_kanban_dashboard_plugin.py tests/tools/test_kanban_tools.py

The full repository suite currently has unrelated environment and platform failures on this macOS runner; this change's focused suite is green.

@alt-glitch alt-glitch added type/feature New feature or request P3 Low — cosmetic, nice to have comp/gateway Gateway runner, session dispatch, delivery comp/cron Cron scheduler and job management area/profiles Multi-profile isolation, HERMES_HOME scoping area/sessions Session lifecycle, resume, persistence, history needs-decision Awaiting maintainer decision before any implementation sweeper:risk-message-delivery Sweeper risk: may drop, duplicate, misroute, or suppress messages sweeper:risk-session-state Sweeper risk: may lose/corrupt/mis-associate session or context state labels Jul 22, 2026
@alt-glitch

Copy link
Copy Markdown
Collaborator

This was generated by AI during triage.

Related to #68998, #56531, and #56632. This PR adds canonical route persistence while deliberately keeping subscriptions notify-only; a maintainer decision is needed on whether trusted routes should support durable authorized agent wakeups.

@JnyRoad
JnyRoad force-pushed the feat/kanban-canonical-notification-routing branch from 36389b2 to 3aa9f51 Compare July 22, 2026 02:59
@teknium1

Copy link
Copy Markdown
Contributor

Thanks for the careful route-persistence and migration work. Current main has moved to a different, maintainer-selected notification model.

Problems

Suggested changes

  • Resolve the notify-only versus wake-enabled product decision before attempting salvage.
  • If the canonical route fields are still desired, integrate them into the current _authorization_adapter / deliver_wake flow and preserve the existing push and API-server wake regressions.

Automated hermes-sweeper review.

@teknium1 teknium1 added sweeper:risk-compatibility Sweeper risk: may break existing users, config, migrations, defaults, or upgrades sweeper:blast-moderate Sweeper blast radius: moderate — a subsystem or single platform labels Jul 30, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/profiles Multi-profile isolation, HERMES_HOME scoping area/sessions Session lifecycle, resume, persistence, history comp/cron Cron scheduler and job management comp/gateway Gateway runner, session dispatch, delivery needs-decision Awaiting maintainer decision before any implementation P3 Low — cosmetic, nice to have sweeper:blast-moderate Sweeper blast radius: moderate — a subsystem or single platform sweeper:risk-compatibility Sweeper risk: may break existing users, config, migrations, defaults, or upgrades sweeper:risk-message-delivery Sweeper risk: may drop, duplicate, misroute, or suppress messages sweeper:risk-session-state Sweeper risk: may lose/corrupt/mis-associate session or context state type/feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants