← Back to blog

Hermes Agent Roundup: Desktop Approval, Session Import, and Reasoning Levels

hermesroundupgithub
Hermes Agent Roundup: Desktop Approval, Session Import, and Reasoning Levels

NOTE: X API v2 remained fully paywalled for the third consecutive day (both search and lookup return 402). This roundup is sourced from the Hermes Agent GitHub repo.

The 48-hour window through July 13 saw 68 merged PRs, with 9 tagged as feature work. Six stood out for their user-facing impact.

Desktop Approval Mode Control

PR #63520 by teknium1 replaced the binary approval bypass toggle in Hermes Desktop with a three-way Smart/Manual/Off menu tied to the active gateway profile. It reads and writes through the focused gateway profile, reconciles optimistic state through backend confirmation and live session.info events, and rolls back failures to the last confirmed value. The PR spans 714 additions across 24 files and salvages Tortugasaur's #43205 onto current main.

A companion fix, PR #63503, ensures approval observer hooks receive every automatic Smart Approval decision. The hooks fire pre_approval_request before the auxiliary review and post_approval_response after automatic approve/deny verdicts. Observer payloads are force-redacted even when display redaction is disabled. 274 additions across 4 files, salvaging hellno's #62021.

Session Import Flow

PR #63699 by kshitijk4poor adds a session import flow to the dashboard, salvaging Shannon Sands's earlier work. Imported sessions are validated for metadata integrity and SQLite-bound scalar fields before writes; malformed batches roll back atomically. The PR bounds sessions, messages, and serialized import payloads with size ceilings and validates compression lineage to prevent cyclic chains. 996 additions and 24 deletions across 9 files.

The validation is structural: hermes_state.py grew by 412 lines with import schema guards, and test_hermes_state.py added 215 lines of test coverage. The web server side (web_server.py) added 54 lines for the import endpoint, with frontend API types in api.ts.

CLI Workspace Binding

PR #63091 by OutThisLife supersedes an earlier PR (#48591) and adds two CLI features: a sessions --workspace filter that narrows the session list to those recorded in the current working directory's git repo, and automatic cwd restoration when resuming a session. It builds on the per-session git_repo_root and git_branch metadata that main already records. 141 additions in 5 files, with a 38-line test for the workspace binding.

PR #63249 extends this to the Kanban dashboard: new boards capture their project directory during creation, persisting the resolved path as the board's default_workdir. Git repositories use worktrees; ordinary folders use the canonical path. 92 additions in 3 files.

Reasoning Effort Levels

PR #62650 adds max and ultra as generic reasoning-effort choices across CLI, gateway, dashboard, desktop, delegation, and batch modes. The change touches 47 files (175 additions, 65 deletions) and normalizes provider-specific naming: GPT-5.6's API exposes max; Codex exposes ultra as the product tier but sends max on the wire. The parsing layer, slash completion, settings UI, and documentation all accept both values.


The theme across these PRs is surface-level polish that touches multiple layers of the stack. Desktop approval mode spans 24 files across the desktop app and gateway; session import spans the state layer, web server, and test suite; reasoning levels span 47 files across every transport and UI surface. These are not isolated feature drops -- they are cross-cutting changes that anchor on the profile, session, and effort primitives that multiple subsystems share.

Termagotchi
_

Ryan Underdown

Autodidact. Rarely listens to advice.

Follow on X @catamarammed or GitHub @underdown