Skip to content

fix(sessions): /save lands under $HERMES_HOME, widen browse+TUI picker, force-refresh ollama-cloud on setup#16296

Merged
teknium1 merged 1 commit into
mainfrom
hermes/hermes-0fc10290
Apr 27, 2026
Merged

fix(sessions): /save lands under $HERMES_HOME, widen browse+TUI picker, force-refresh ollama-cloud on setup#16296
teknium1 merged 1 commit into
mainfrom
hermes/hermes-0fc10290

Conversation

@teknium1

Copy link
Copy Markdown
Contributor

Summary

Four independent session-UX bugs triaged from #16294 (external user report).

Changes

  • cli.py save_conversation() writes to ~/.hermes/sessions/saved/<ts>.json and prints both the absolute path and the live-session resume hint (hermes --resume <id>). Previously the file landed in CWD, invisible to hermes sessions browse.
  • hermes_cli/main.py sessions browse --limit default: 50 → 500.
  • tui_gateway/server.py session.list: hardcoded allow-list of 13 gateway sources replaced with a deny-list of { "tool" }. Sessions tagged acp, webhook, user-defined HERMES_SESSION_SOURCE values, and any newly-added platform now surface in the /resume picker. Default limit 20 → 200.
  • ui-tui/src/components/sessionPicker.tsx request limit 20 → 200.
  • hermes_cli/main.py provider setup for ollama-cloud passes force_refresh=True to fetch_ollama_cloud_models() so the catalog probes the live API the moment the user adds their key (deepseek v4 flash, kimi k2.6, etc.) instead of serving a models.dev-only cache for up to an hour.

Validation

Area Before After
/save destination $CWD/hermes_conversation_*.json (orphaned) $HERMES_HOME/sessions/saved/*.json + resume hint printed
sessions browse default limit 50 500
TUI picker default limit 20 200
TUI picker source filter allow-list of 13 names (acp/webhook/custom hidden) deny-list {tool} (everything else visible)
ollama-cloud setup catalog disk cache, stale up to 1h after key entry forced live refresh on setup

Targeted tests: tests/cli/test_save_conversation_location.py, tests/gateway/test_session_list_allowed_sources.py (rewritten for deny-list behavior), tests/hermes_cli/test_session_browse.py (updated default-limit assertion), tests/hermes_cli/test_setup_ollama_cloud_force_refresh.py. 80 passed, 0 failed.

E2E verified against a temp HERMES_HOME with real SQLite writes: /save path lands under the expected directory, TUI filter surfaces acp/webhook/custom sources while hiding tool, and the setup source-grep confirms force_refresh=True is on the setup path.

Items deferred

See issue #16294 for items classified as UX/docs gaps rather than code bugs — TUI /agents clarification, web_extract vs browser_navigate documentation, multi-session-per-tab (feature ask), and quit-confirmation UI.

Closes #16294

…r, force-refresh ollama-cloud on setup

Four independent session-UX bugs reported by an external user (#16294).

/save wrote hermes_conversation_<ts>.json to CWD — invisible to
'hermes sessions browse' and easy to lose. Snapshots now write under
~/.hermes/sessions/saved/ and the command prints the absolute path plus
a 'hermes --resume <id>' hint for the live DB-indexed session.

'hermes sessions browse' default --limit raised from 50 to 500. With the
old ceiling, users with moderately long histories saw only the most
recent 50 rows and assumed older sessions had been lost.

TUI session.list (`/resume` picker) switched from a hardcoded allow-list
of 13 gateway source names to a deny-list of just { 'tool' }. Sessions
tagged acp / webhook / user-defined HERMES_SESSION_SOURCE values and
any newly-added platform now surface. Default limit 20 → 200.

ollama-cloud provider setup passes force_refresh=True to
fetch_ollama_cloud_models() so a user entering their API key sees the
fresh catalog (e.g. deepseek v4 flash, kimi k2.6) immediately instead
of waiting up to an hour for the disk cache TTL to expire.

Closes #16294.
@teknium1 teknium1 merged commit 5eb6cd8 into main Apr 27, 2026
11 of 12 checks passed
@teknium1 teknium1 deleted the hermes/hermes-0fc10290 branch April 27, 2026 01:49
@alt-glitch alt-glitch added type/bug Something isn't working P2 Medium — degraded but workaround exists comp/cli CLI entry point, hermes_cli/, setup wizard comp/tui Terminal UI (ui-tui/ + tui_gateway/) provider/ollama Ollama / local models labels Apr 27, 2026
@OutThisLife

Copy link
Copy Markdown
Collaborator

sister pr #16625

ulasbilgen pushed a commit to ulasbilgen/hermes-adhd-agent that referenced this pull request May 1, 2026
…r, force-refresh ollama-cloud on setup (NousResearch#16296)

Four independent session-UX bugs reported by an external user (NousResearch#16294).

/save wrote hermes_conversation_<ts>.json to CWD — invisible to
'hermes sessions browse' and easy to lose. Snapshots now write under
~/.hermes/sessions/saved/ and the command prints the absolute path plus
a 'hermes --resume <id>' hint for the live DB-indexed session.

'hermes sessions browse' default --limit raised from 50 to 500. With the
old ceiling, users with moderately long histories saw only the most
recent 50 rows and assumed older sessions had been lost.

TUI session.list (`/resume` picker) switched from a hardcoded allow-list
of 13 gateway source names to a deny-list of just { 'tool' }. Sessions
tagged acp / webhook / user-defined HERMES_SESSION_SOURCE values and
any newly-added platform now surface. Default limit 20 → 200.

ollama-cloud provider setup passes force_refresh=True to
fetch_ollama_cloud_models() so a user entering their API key sees the
fresh catalog (e.g. deepseek v4 flash, kimi k2.6) immediately instead
of waiting up to an hour for the disk cache TTL to expire.

Closes NousResearch#16294.
02356abc pushed a commit to 02356abc/hermes-agent that referenced this pull request May 14, 2026
…r, force-refresh ollama-cloud on setup (NousResearch#16296)

Four independent session-UX bugs reported by an external user (NousResearch#16294).

/save wrote hermes_conversation_<ts>.json to CWD — invisible to
'hermes sessions browse' and easy to lose. Snapshots now write under
~/.hermes/sessions/saved/ and the command prints the absolute path plus
a 'hermes --resume <id>' hint for the live DB-indexed session.

'hermes sessions browse' default --limit raised from 50 to 500. With the
old ceiling, users with moderately long histories saw only the most
recent 50 rows and assumed older sessions had been lost.

TUI session.list (`/resume` picker) switched from a hardcoded allow-list
of 13 gateway source names to a deny-list of just { 'tool' }. Sessions
tagged acp / webhook / user-defined HERMES_SESSION_SOURCE values and
any newly-added platform now surface. Default limit 20 → 200.

ollama-cloud provider setup passes force_refresh=True to
fetch_ollama_cloud_models() so a user entering their API key sees the
fresh catalog (e.g. deepseek v4 flash, kimi k2.6) immediately instead
of waiting up to an hour for the disk cache TTL to expire.

Closes NousResearch#16294.
dannyJ848 pushed a commit to dannyJ848/hermes-agent that referenced this pull request May 17, 2026
…r, force-refresh ollama-cloud on setup (NousResearch#16296)

Four independent session-UX bugs reported by an external user (NousResearch#16294).

/save wrote hermes_conversation_<ts>.json to CWD — invisible to
'hermes sessions browse' and easy to lose. Snapshots now write under
~/.hermes/sessions/saved/ and the command prints the absolute path plus
a 'hermes --resume <id>' hint for the live DB-indexed session.

'hermes sessions browse' default --limit raised from 50 to 500. With the
old ceiling, users with moderately long histories saw only the most
recent 50 rows and assumed older sessions had been lost.

TUI session.list (`/resume` picker) switched from a hardcoded allow-list
of 13 gateway source names to a deny-list of just { 'tool' }. Sessions
tagged acp / webhook / user-defined HERMES_SESSION_SOURCE values and
any newly-added platform now surface. Default limit 20 → 200.

ollama-cloud provider setup passes force_refresh=True to
fetch_ollama_cloud_models() so a user entering their API key sees the
fresh catalog (e.g. deepseek v4 flash, kimi k2.6) immediately instead
of waiting up to an hour for the disk cache TTL to expire.

Closes NousResearch#16294.
gweeteve pushed a commit to gweeteve/hermes-agent that referenced this pull request Jun 2, 2026
…r, force-refresh ollama-cloud on setup (NousResearch#16296)

Four independent session-UX bugs reported by an external user (NousResearch#16294).

/save wrote hermes_conversation_<ts>.json to CWD — invisible to
'hermes sessions browse' and easy to lose. Snapshots now write under
~/.hermes/sessions/saved/ and the command prints the absolute path plus
a 'hermes --resume <id>' hint for the live DB-indexed session.

'hermes sessions browse' default --limit raised from 50 to 500. With the
old ceiling, users with moderately long histories saw only the most
recent 50 rows and assumed older sessions had been lost.

TUI session.list (`/resume` picker) switched from a hardcoded allow-list
of 13 gateway source names to a deny-list of just { 'tool' }. Sessions
tagged acp / webhook / user-defined HERMES_SESSION_SOURCE values and
any newly-added platform now surface. Default limit 20 → 200.

ollama-cloud provider setup passes force_refresh=True to
fetch_ollama_cloud_models() so a user entering their API key sees the
fresh catalog (e.g. deepseek v4 flash, kimi k2.6) immediately instead
of waiting up to an hour for the disk cache TTL to expire.

Closes NousResearch#16294.
Egavasyug pushed a commit to Egavasyug/hermes-agent that referenced this pull request Jun 10, 2026
…r, force-refresh ollama-cloud on setup (NousResearch#16296)

Four independent session-UX bugs reported by an external user (NousResearch#16294).

/save wrote hermes_conversation_<ts>.json to CWD — invisible to
'hermes sessions browse' and easy to lose. Snapshots now write under
~/.hermes/sessions/saved/ and the command prints the absolute path plus
a 'hermes --resume <id>' hint for the live DB-indexed session.

'hermes sessions browse' default --limit raised from 50 to 500. With the
old ceiling, users with moderately long histories saw only the most
recent 50 rows and assumed older sessions had been lost.

TUI session.list (`/resume` picker) switched from a hardcoded allow-list
of 13 gateway source names to a deny-list of just { 'tool' }. Sessions
tagged acp / webhook / user-defined HERMES_SESSION_SOURCE values and
any newly-added platform now surface. Default limit 20 → 200.

ollama-cloud provider setup passes force_refresh=True to
fetch_ollama_cloud_models() so a user entering their API key sees the
fresh catalog (e.g. deepseek v4 flash, kimi k2.6) immediately instead
of waiting up to an hour for the disk cache TTL to expire.

Closes NousResearch#16294.
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/tui Terminal UI (ui-tui/ + tui_gateway/) P2 Medium — degraded but workaround exists provider/ollama Ollama / local models type/bug Something isn't working

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Sessions UX: /save writes to CWD, browse/picker limits hide sessions, ollama-cloud stale model cache

3 participants