hermes-agent/hermes_cli/web_routers
Brooklyn Nicholson 5b68d2271b feat(profiles): serve a cross-profile project tree and per-profile usage totals
`projects.tree` answers for the backend's own profile, so the grouped
sidebar had nothing to draw once the user asked to see every profile.
Run the same authoritative builder once per profile against that
profile's state.db and merge the results by folder, so one checkout is
one group no matter how many profiles work in it, and the owning profile
rides on each session row where the badge and filter can read it.

Group totals are summed in SQL rather than over the loaded page — a
number that shrank as you scrolled would be worse than no number.

Scope the batched sidebar slices while we're here: cron and messaging
came back cross-profile unconditionally, which is why a concrete profile
showed another profile's Telegram threads and cronjobs.

Closes #65710
Closes #42651
Closes #70629
2026-08-10 03:13:08 -05:00
..
__init__.py
cron.py fix(gateway): serialize config mutations and finish the router off-loop sweep 2026-08-08 13:28:28 +05:30
git.py feat(desktop): resolve a session's pull request 2026-08-09 06:21:04 -05:00
mcp.py fix(dashboard): close config-RMW gaps left by the off-loop sweep 2026-08-08 13:28:28 +05:30
profiles.py feat(profiles): serve a cross-profile project tree and per-profile usage totals 2026-08-10 03:13:08 -05:00
sessions.py perf(dashboard): keyset pagination for streaming session export 2026-08-08 13:36:08 +05:30
skills.py fix(gateway): serialize config mutations and finish the router off-loop sweep 2026-08-08 13:28:28 +05:30
tools.py fix(dashboard): close config-RMW gaps left by the off-loop sweep 2026-08-08 13:28:28 +05:30