Skip to content

feat(dashboard): cross-profile sessions, profile-aware status, and offline platform display - #31413

Closed
02356abc wants to merge 1 commit into
NousResearch:mainfrom
02356abc:feat/dashboard-cross-profile-v2
Closed

feat(dashboard): cross-profile sessions, profile-aware status, and offline platform display#31413
02356abc wants to merge 1 commit into
NousResearch:mainfrom
02356abc:feat/dashboard-cross-profile-v2

Conversation

@02356abc

Copy link
Copy Markdown
Contributor

Summary

This PR adds cross-profile support to the Hermes dashboard, allowing users to view sessions and gateway status across all profiles from a single UI.

Changes

  1. Gateway status aggregation (gateway/status.py, hermes_cli/profiles.py)

    • read_runtime_status() now accepts optional status_path to read other profiles' runtime state
    • ProfileInfo gains gateway_state, gateway_platforms, gateway_updated_at fields
    • Connected Platforms now shows platforms from all profiles with correct online/offline state
  2. Backend API enhancements (hermes_cli/web_server.py)

    • GET /api/status?profile= — returns profile-specific or aggregate gateway status
    • GET /api/sessions?profile= — lists sessions from specific profile or all profiles
    • GET /api/sessions/search?profile= — searches within specific profile or all profiles
    • Aggregate mode sorts cross-profile sessions by started_at descending
    • Profile metadata (profile, profile_name, hermes_home, is_default_profile) added to each session
    • Backward compatible: omitting profile parameter uses current profile (existing behavior)
  3. Frontend updates (web/src/lib/api.ts, web/src/pages/SessionsPage.tsx)

    • Profile dropdown selector on Sessions page
    • Profile badges displayed on session rows
    • API client passes profile parameter to backend

Testing

  • End-to-end tested with 3 profiles (default, matrix-agent, wecom-agent)
  • Verified aggregate sessions (1081 total = 1027 + 0 + 54)
  • Verified profile-specific filtering with no cross-profile leakage
  • Verified pagination consistency across page sizes
  • Verified search works across profiles and within single profile
  • Verified offline platforms display with "offline" state instead of being hidden
  • Backward compatibility confirmed (omitting profile uses current profile)

Notes

  • Session counts use session_count() (includes child sessions) to match existing dashboard behavior
  • list_sessions_rich() (excludes child sessions) is used for the actual session list
  • Aggregate mode fetches up to 10,000 sessions per profile before sorting and paginating in-memory

Co-Authored-By: 02356abc 198679067+02356abc@users.noreply.github.com

@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/cli CLI entry point, hermes_cli/, setup wizard labels May 24, 2026
@alt-glitch

Copy link
Copy Markdown
Collaborator

Competing with PR #9496 which also adds profile-aware sessions to the dashboard. Related issues: #10674 (design proposal), #21642 (profile-scoped config). Please coordinate.

@02356abc
02356abc force-pushed the feat/dashboard-cross-profile-v2 branch from c006664 to 8e21d53 Compare May 24, 2026 10:35
…e platform display

- gateway/status.py: read_runtime_status() accepts optional status_path
- hermes_cli/profiles.py: ProfileInfo gains gateway_state, gateway_platforms
- hermes_cli/web_server.py: profile param for /api/status, /api/sessions, /api/sessions/search
- web/src/lib/api.ts: profile param in getSessions, getStatus, searchSessions
- web/src/pages/SessionsPage.tsx: profile dropdown, profile badges on session rows

Aggregate mode shows all profiles' platforms with correct online/offline state.
Backward compatible: omitting profile uses current profile.
@02356abc
02356abc force-pushed the feat/dashboard-cross-profile-v2 branch from 8e21d53 to ad8a225 Compare May 24, 2026 10:36
@02356abc

Copy link
Copy Markdown
Contributor Author

Closing to fix missing time filter implementation. Will reopen when complete.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

comp/cli CLI entry point, hermes_cli/, setup wizard comp/gateway Gateway runner, session dispatch, delivery P3 Low — cosmetic, nice to have type/feature New feature or request

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants