feat: notification panel — SendUserMessage feed with proactive glow - #101
Merged
Conversation
Adds a notification panel triggered by a bell icon in the status bar, showing agent messages sent via --brief's SendUserMessage tool. Server: - Add proactive?: boolean to SessionNotification, persisted from SendUserMessage's status field - New GET /api/hooks/notifications bulk endpoint — returns all SendUserMessage notifications across sessions with agent names - Skip tool_running status for SendUserMessage/Brief in deriveStatus() (these are instant notifications, not real tool executions) Dashboard: - NotificationPanel component: slide-from-top overlay, click-to-jump, mark-all-read with partial success handling, error state display - Proactive messages get animated conic-gradient glow border (adapted from 21st dev animated-glowing-search-bar) - Bell/bell-dot codicon in status bar, switches on unread state - 25 item cap with "Load more" pagination Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
aterrylu
added a commit
that referenced
this pull request
Apr 2, 2026
Add agent template system and hierarchy management to autonomOS. Templates (blueprints for agent roles): - Individual JSON files at ~/.autonomos/templates/*.json - create_template / list_templates MCP tools + REST API - Path traversal protection on template names - Marketplace-ready: drop a file to install, delete to uninstall Org chart (hierarchy via persisted session metadata): - template, manager, project fields on PersistedSession - set_manager / get_org_chart MCP tools + REST API - Hierarchy derived at query time from manager references - Agents or humans configure relationships after spawning Base context rewrite: - Identity, communication, environment, lifecycle sections - Tool list interpolated from MCP_INSTRUCTIONS (single source of truth) Design decisions (validated by research): - No per-agent config folders — sessions ARE agents - Templates define types, not instances (matches Overstory/Citadel pattern) - Hierarchy emerges organically, not deployed rigidly - Agents own vertical features, not horizontal layers Research: docs/research/singleton-agent-pattern.md, docs/research/persistent-agent-identity.md Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
aterrylu
added a commit
that referenced
this pull request
Apr 2, 2026
Add agent template system and hierarchy management to autonomOS. Templates (blueprints for agent roles): - Individual JSON files at ~/.autonomos/templates/*.json - create_template / list_templates MCP tools + REST API - Path traversal protection on template names - Marketplace-ready: drop a file to install, delete to uninstall Org chart (hierarchy via persisted session metadata): - template, manager, project fields on PersistedSession - set_manager / get_org_chart MCP tools + REST API - Hierarchy derived at query time from manager references - Agents or humans configure relationships after spawning Base context rewrite: - Identity, communication, environment, lifecycle sections - Tool list interpolated from MCP_INSTRUCTIONS (single source of truth) Design decisions (validated by research): - No per-agent config folders — sessions ARE agents - Templates define types, not instances (matches Overstory/Citadel pattern) - Hierarchy emerges organically, not deployed rigidly - Agents own vertical features, not horizontal layers Research: docs/research/singleton-agent-pattern.md, docs/research/persistent-agent-identity.md Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
aterrylu
added a commit
that referenced
this pull request
Apr 2, 2026
feat: agent hierarchy — templates, org chart, role@project naming (#101) Add agent template system and hierarchy management to autonomOS. Templates (blueprints for agent roles): - Individual JSON files at ~/.autonomos/templates/*.json - create_template / list_templates MCP tools + REST API - Path traversal protection on template names - Marketplace-ready: drop a file to install, delete to uninstall Org chart (hierarchy via persisted session metadata): - template, manager, project fields on PersistedSession - set_manager / get_org_chart MCP tools + REST API - Hierarchy derived at query time from manager references - Agents or humans configure relationships after spawning Base context rewrite: - Identity, communication, environment, lifecycle sections - Tool list interpolated from MCP_INSTRUCTIONS (single source of truth) Design decisions (validated by research): - No per-agent config folders — sessions ARE agents - Templates define types, not instances (matches Overstory/Citadel pattern) - Hierarchy emerges organically, not deployed rigidly - Agents own vertical features, not horizontal layers Research: docs/research/singleton-agent-pattern.md, docs/research/persistent-agent-identity.md Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
GET /api/hooks/notificationsreturns all SendUserMessage events across sessionsProblem
Agents send structured messages via
--brief'sSendUserMessagetool, but users could only see unread counts in the sidebar. There was no way to read the actual message content without switching to each session's terminal.Solution
Server (
hooks.ts):proactive?: booleantoSessionNotification— persisted fromtool_input.statusGET /api/hooks/notificationsendpoint — returns SendUserMessage events across all sessions, enriched with session namesderiveStatus()now skipstool_runningfor SendUserMessage/Brief (instant notification, not a real tool)Dashboard:
NotificationPanel.tsx— slide-from-top overlay with: error state display, loading state, empty state, mark-all-read (with partial success viaPromise.allSettled), click-to-jump (switchPane+focusTerminal), 25-item paginationNotificationBell.tsx— codiconbell/bell-dotin status bar (far right corner)conic-gradient(#402fb5, #cf30aa)glow borderTest plan
/polish— code-reviewer, code-simplifier, silent-failure-hunter all run🤖 Generated with Claude Code