Skip to content

feat: notification panel — SendUserMessage feed with proactive glow - #101

Merged
aterrylu merged 1 commit into
mainfrom
terry/notification-panel
Apr 1, 2026
Merged

feat: notification panel — SendUserMessage feed with proactive glow#101
aterrylu merged 1 commit into
mainfrom
terry/notification-panel

Conversation

@aterrylu

@aterrylu aterrylu commented Apr 1, 2026

Copy link
Copy Markdown
Owner

Summary

  • Notification panel — bell icon in status bar, slide-from-top overlay showing agent messages
  • Proactive glow — animated conic-gradient border on proactive agent messages
  • Bulk notifications APIGET /api/hooks/notifications returns all SendUserMessage events across sessions

Problem

Agents send structured messages via --brief's SendUserMessage tool, 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):

  • Added proactive?: boolean to SessionNotification — persisted from tool_input.status
  • New GET /api/hooks/notifications endpoint — returns SendUserMessage events across all sessions, enriched with session names
  • deriveStatus() now skips tool_running for 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 via Promise.allSettled), click-to-jump (switchPane + focusTerminal), 25-item pagination
  • NotificationBell.tsx — codicon bell/bell-dot in status bar (far right corner)
  • Proactive messages get animated conic-gradient(#402fb5, #cf30aa) glow border

Test plan

  • Deployed and tested on forge
  • Injected test proactive + normal notifications — panel displays correctly
  • Bell switches between bell/bell-dot based on unread state
  • /polish — code-reviewer, code-simplifier, silent-failure-hunter all run
  • Build + lint clean
  • Click notification → jumps to session + focuses terminal
  • Mark all read → clears badges

🤖 Generated with Claude Code

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
aterrylu merged commit d6a9048 into main Apr 1, 2026
1 check passed
@aterrylu
aterrylu deleted the terry/notification-panel branch April 1, 2026 07:49
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>
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