Skip to content

feat: notification channels per Bot and per kind - #49

Merged
rayvader merged 3 commits into
mainfrom
feat/notification-channels
Nov 7, 2026
Merged

rayvader merged 3 commits into
mainfrom
feat/notification-channels

Conversation

@rayvader

@rayvader rayvader commented Nov 7, 2026

Copy link
Copy Markdown
Owner

Summary

Notification channels per Bot and per kind (Raymond's option C, "both"), so sound and mute can be set per channel in Android settings.

Feed note Channel Group
has member bot_<slug>, named after member.name Bots
system.agent news "News and agents" Kiro Crew
system.monitor watches "Watches" Kiro Crew
chat.* / session.* chat "Chat updates" Kiro Crew
anything else, or no channel alerts "Dashboard alerts" (old id) Kiro Crew
  • Alert parses channel and member {slug, name}; older feeds without them still work (fallback alerts).
  • A Bot's channel is made the first time it posts, and renamed in place when its name changes (same id). The feed often sends the slug as the name, so trip-helper becomes "Trip Helper".
  • Groups via NotificationChannelGroup. Existing channels get the Kiro Crew group (Android allows setting a group on a channel that has none). No channel is deleted; importance stays HIGH.
  • Each channel has its own stack and summary (Android needs the summary on the same channel). Tap still opens alert.path. App updates and the Instant alerts channel are unchanged.
  • The existing Settings row that opens ACTION_APP_NOTIFICATION_SETTINGS is renamed from "Sound and vibration" to "Notification types", so there is one row, not two.
  • Routing and naming in core/AlertChannels.

Tests

  • AlertChannelsTest: member, agent, monitor, chat, unknown, missing fields, odd member shapes, naming from member.name (slug-like, empty, long), rename keeps the id, safe slugs, feed parsing old and new.
  • e2e Instant alerts: a fake Bot note and an agent note; checks bot_e2e-demo-bot is in group bots named "E2E Demo Bot", news and alerts are in kirocrew, each note is on its channel, a rename updates the name in place, and the settings page shows the Bots group (screenshot).

Feed notes now carry channel and member. A Bot's note goes to its own
channel bot_<slug>, named after the Bot (renamed in place, never deleted),
in a Bots group. system.agent goes to News and agents, system.monitor to
Watches, chat.* to Chat updates, the rest to Dashboard alerts (the old
channel id), all in a Kiro Crew group. Importance stays HIGH. Each channel
has its own stack and summary. The Settings row is now Notification types.
@rayvader
rayvader enabled auto-merge November 7, 2026 15:18
cmd notification list_channels exits non-zero on the CI emulator, which
ended the feature with no message. dumpsys alone lists the channels.
@rayvader
rayvader merged commit a715f43 into main Nov 7, 2026
6 checks passed
@rayvader
rayvader deleted the feat/notification-channels branch November 7, 2026 17:13
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant