docs: v0.30.1 release — CLI bridge fixes, README update

CHANGELOG: add v0.30.1 entry covering PRs #57-#61 (CLI session bridge
fixes: sidebar rendering, profile-aware state.db path, silent SQL error,
show/hide toggle in Settings.

README: add CLI session bridge, token/cost display, subagent cards,
/usage command, skills linked files, show CLI sessions toggle.

Version label: v0.30 -> v0.30.1 in index.html, SPRINTS, CHANGELOG footer.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
EOF
)
This commit is contained in:
Nathan Esquenazi
2026-04-03 21:11:52 -07:00
parent 66f95e08c2
commit d3b693524f
4 changed files with 38 additions and 7 deletions

View File

@@ -5,6 +5,32 @@
--- ---
## [v0.30.1] CLI Session Bridge Fixes
*April 4, 2026 | 424 tests*
### Bug Fixes
- **CLI sessions not appearing in sidebar.** Three frontend gaps: `sessions.js`
wasn't rendering CLI sessions (missing `is_cli_session` check in render loop),
sidebar click handler didn't trigger import, and the "cli" badge CSS selector
wasn't matching the rendered DOM structure. (#58)
- **CLI bridge read wrong profile's state.db.** `get_cli_sessions()` resolved
`HERMES_HOME` at server launch time, not at call time. After a profile switch,
it kept reading the original profile's database. Now resolves dynamically via
`get_active_hermes_home()`. (#59)
- **Silent SQL error swallowed all CLI sessions.** The `sessions` table in
`state.db` has no `profile` column — the query referenced `s.profile` which
caused a silent `OperationalError`. The `except Exception: return []` handler
swallowed it, returning zero CLI sessions. Removed the column reference and
added explicit column-existence checks. (#60)
### Features
- **"Show CLI sessions" toggle in Settings.** New checkbox in the Settings panel
to show/hide CLI sessions in the sidebar. Persisted server-side in
`settings.json` (`show_cli_sessions`, default `true`). When disabled, CLI
sessions are excluded from `/api/sessions` responses. (#61)
---
## [v0.30] CLI Session Bridge (Community: @thadreber-web) ## [v0.30] CLI Session Bridge (Community: @thadreber-web)
*April 4, 2026 | 424 tests* *April 4, 2026 | 424 tests*
@@ -1042,4 +1068,4 @@ Three-panel layout: sessions sidebar, chat area, workspace panel.
--- ---
*Last updated: v0.30, April 4, 2026 | Tests: 426* *Last updated: v0.30.1, April 4, 2026 | Tests: 424*

View File

@@ -176,7 +176,7 @@ Or using the agent venv explicitly:
``` ```
Tests run against an isolated server on port 8788 with a separate state directory. Tests run against an isolated server on port 8788 with a separate state directory.
Production data and real cron jobs are never touched. Current count: **426 tests** Production data and real cron jobs are never touched. Current count: **424 tests**
across 22 test files. across 22 test files.
--- ---
@@ -191,6 +191,7 @@ across 22 test files.
- Retry the last assistant response with one click - Retry the last assistant response with one click
- Cancel a running task from the activity bar - Cancel a running task from the activity bar
- Tool call cards inline -- each shows the tool name, args, and result snippet; expand/collapse all toggle for multi-tool turns - Tool call cards inline -- each shows the tool name, args, and result snippet; expand/collapse all toggle for multi-tool turns
- Subagent delegation cards -- child agent activity shown with distinct icon and indented border
- Mermaid diagram rendering inline (flowcharts, sequence diagrams, gantt charts) - Mermaid diagram rendering inline (flowcharts, sequence diagrams, gantt charts)
- Thinking/reasoning display -- collapsible gold-themed cards for Claude extended thinking and o3 reasoning blocks - Thinking/reasoning display -- collapsible gold-themed cards for Claude extended thinking and o3 reasoning blocks
- Approval card for dangerous shell commands (allow once / session / always / deny) - Approval card for dangerous shell commands (allow once / session / always / deny)
@@ -211,6 +212,8 @@ across 22 test files.
- Download as Markdown transcript, full JSON export, or import from JSON - Download as Markdown transcript, full JSON export, or import from JSON
- Sessions persist across page reloads and SSH tunnel reconnects - Sessions persist across page reloads and SSH tunnel reconnects
- Browser tab title reflects the active session name - Browser tab title reflects the active session name
- CLI session bridge -- CLI sessions from hermes-agent's SQLite store appear in the sidebar with a gold "cli" badge; click to import with full history and reply normally
- Token/cost display -- input tokens, output tokens, estimated cost shown per conversation (toggle in Settings or `/usage` command)
### Workspace file browser ### Workspace file browser
- Directory tree with expand/collapse (single-click toggles, double-click navigates) - Directory tree with expand/collapse (single-click toggles, double-click navigates)
@@ -250,19 +253,21 @@ across 22 test files.
### Settings and configuration ### Settings and configuration
- Settings panel (gear icon) -- default model, default workspace, send key preference - Settings panel (gear icon) -- default model, default workspace, send key preference
- Send key: Enter (default) or Ctrl/Cmd+Enter - Send key: Enter (default) or Ctrl/Cmd+Enter
- Show/hide CLI sessions toggle (enabled by default)
- Token usage display toggle (off by default, also via `/usage` command)
- Cron completion alerts -- toast notifications and unread badge on Tasks tab - Cron completion alerts -- toast notifications and unread badge on Tasks tab
- Background agent error alerts -- banner when a non-active session encounters an error - Background agent error alerts -- banner when a non-active session encounters an error
### Slash commands ### Slash commands
- Type `/` in the composer for autocomplete dropdown - Type `/` in the composer for autocomplete dropdown
- Built-in: `/help`, `/clear`, `/model <name>`, `/workspace <name>`, `/new` - Built-in: `/help`, `/clear`, `/model <name>`, `/workspace <name>`, `/new`, `/usage`
- Arrow keys navigate, Tab/Enter select, Escape closes - Arrow keys navigate, Tab/Enter select, Escape closes
- Unrecognized commands pass through to the agent - Unrecognized commands pass through to the agent
### Panels ### Panels
- **Chat** -- session list, search, pin, archive, projects, new conversation - **Chat** -- session list, search, pin, archive, projects, new conversation
- **Tasks** -- view, create, edit, run, pause/resume, delete cron jobs; run history; completion alerts - **Tasks** -- view, create, edit, run, pause/resume, delete cron jobs; run history; completion alerts
- **Skills** -- list all skills by category, search, preview, create/edit/delete - **Skills** -- list all skills by category, search, preview, create/edit/delete; linked files viewer
- **Memory** -- view and edit MEMORY.md and USER.md inline - **Memory** -- view and edit MEMORY.md and USER.md inline
- **Profiles** -- create, switch, delete agent profiles; clone config - **Profiles** -- create, switch, delete agent profiles; clone config
- **Todos** -- live task list from the current session - **Todos** -- live task list from the current session

View File

@@ -1,6 +1,6 @@
# Hermes Web UI -- Forward Sprint Plan # Hermes Web UI -- Forward Sprint Plan
> Current state: v0.30 | 426 tests | Daily driver ready > Current state: v0.30.1 | 424 tests | Daily driver ready
> This document plans the path from here to two targets: > This document plans the path from here to two targets:
> >
> Target A: 1:1 feature parity with the Hermes CLI (everything you can do from the > Target A: 1:1 feature parity with the Hermes CLI (everything you can do from the
@@ -898,5 +898,5 @@ genuinely differentiating for an open-source project
--- ---
*Last updated: April 4, 2026* *Last updated: April 4, 2026*
*Current version: v0.30 | 426 tests* *Current version: v0.30.1 | 424 tests*
*Next sprint: Sprint 24 (Web Polish + Bug Fix Pass)* *Next sprint: Sprint 24 (Web Polish + Bug Fix Pass)*

View File

@@ -13,7 +13,7 @@
<body> <body>
<div class="layout"> <div class="layout">
<aside class="sidebar"> <aside class="sidebar">
<div class="sidebar-header"><div class="logo">H</div><div><h1 style="margin:0;font-size:15px;font-weight:700;letter-spacing:-.01em">Hermes</h1><div style="font-size:10px;color:var(--muted);opacity:.8;margin-top:1px">v0.30</div></div></div> <div class="sidebar-header"><div class="logo">H</div><div><h1 style="margin:0;font-size:15px;font-weight:700;letter-spacing:-.01em">Hermes</h1><div style="font-size:10px;color:var(--muted);opacity:.8;margin-top:1px">v0.30.1</div></div></div>
<div class="sidebar-nav"> <div class="sidebar-nav">
<button class="nav-tab active" data-panel="chat" data-label="Chat" onclick="switchPanel('chat')" title="Chat">&#128172;</button> <button class="nav-tab active" data-panel="chat" data-label="Chat" onclick="switchPanel('chat')" title="Chat">&#128172;</button>
<button class="nav-tab" data-panel="tasks" data-label="Tasks" onclick="switchPanel('tasks')" title="Tasks">&#128197;</button> <button class="nav-tab" data-panel="tasks" data-label="Tasks" onclick="switchPanel('tasks')" title="Tasks">&#128197;</button>