contribution/compass
NousResearch/hermes-agent

Hermes Agent

411 signals · 364 observation events

Open repository ↗

The agent that grows with you

230.0K stars45.5K forksPythonMITaiai-agentai-agentsanthropicchatgptclaudeclaude-codecodexkeyword: Hermes Agent
PROJECT NEWS

Release, roadmap, and discussion

All news →
NousResearch/hermes-agent

Hermes Agent

Coding-Agent Infrastructure
Latest stable

Hermes Agent v0.20.0 (2026.8.3)

v2026.8.3
  • ✨ Highlights
  • Talk to Hermes — streaming, conversational voice with barge-in — Voice mode used to mean: speak, wait for the whole reply to generate, then listen to one long audio file. Now Hermes speaks clause-by-clause as the response streams, you can i
  • Wake words and hands-free control — Say your own open-vocabulary wake phrase ("hey Hermes", or anything you pick) and Hermes starts listening — detection runs on-device, so no audio leaves your machine while it waits. Multi-profile voice ro
  • Voice on every platform — Send a voice note to Hermes on WhatsApp, Feishu, DingTalk, LINE, QQ, Photon, or Weixin and it's transcribed and answered; auto-TTS replies are delivered platform-aware (opus where platforms want opus, captions atta
  • Research you can trust — grounded citations with fact-checking — The new grounded-citations skill makes Hermes produce research where every claim is backed by a verifiable source: quotes are matched against the actual page text (not halluci
Original release notes ↗

Publicly indicated next

  • No public prerelease or open milestone found.

Prereleases and milestones indicate public plans; they are not delivery commitments.

Observation trail

  1. changedupdatedAt, state
  2. discoveredinitial snapshot
  3. changedupdatedAt, metrics
  4. changedupdatedAt, state
  5. changedupdatedAt, metrics
  6. discoveredinitial snapshot
  7. changedupdatedAt, labels
  8. changedupdatedAt, labels, state
  9. changedupdatedAt, labels
  10. changedupdatedAt, labels
  11. changedupdatedAt, metrics
  12. changedupdatedAt, labels
  13. discoveredinitial snapshot
  14. discoveredinitial snapshot
  15. discoveredinitial snapshot
  16. discoveredinitial snapshot
  17. changedtext, updatedAt, metrics
  18. changedupdatedAt
  19. discoveredinitial snapshot
  20. discoveredinitial snapshot
  21. discoveredinitial snapshot
  22. discoveredinitial snapshot
  23. changedupdatedAt, metrics
  24. changedtext, updatedAt
  25. discoveredinitial snapshot
  26. discoveredinitial snapshot
  27. discoveredinitial snapshot
  28. discoveredinitial snapshot
  29. changedupdatedAt, metrics, labels
  30. discoveredinitial snapshot
50 shown
pull request

fix(security): block writes to sensitive paths in managed-files API

## Summary The dashboard's managed-files API protected sensitive files (`.env`, `config.yaml`, credential stores) on the **read** side only — the **write** endpoints (`/api/files/upload`, `/api/files/upload-stream`, `/api/files/mkdir`, delete) would happily **overwrite** those same files. Security gap. ## Change (fail-closed at the chokepoint) - `hermes_cli/

importance 12@webtecnicaopentype/securityarea/authP3sweeper:risk-security-boundarycomp/dashboardOriginal evidence ↗
pull request

feat(providers): add OpenCode Free provider with keyed auth and opencode User-Agent

## Summary Adds an **OpenCode Free** model-provider plugin. Free model discovery uses models.dev (`cost.input == 0 AND status != "deprecated"`), matching the opencode CLI's exact filter logic. The free tier requires a real account API key and throttles third-party clients by User-Agent (requests that don't identify as the opencode client get `429 FreeUsageLi

importance 12@rudrakshchahalopentype/featurecomp/agentcomp/clicomp/pluginsarea/authOriginal evidence ↗
pull request

feat(enterprise): access gateway — fail-closed identity verification and tenant admission

## Summary The access-gateway boundary: verifies externally-issued identity tokens and admits requests to exactly one installation and (when required) one namespace. Fail-closed on every path; caller claims can never select scope. Stacked on #85461 (`ent/core`). Part of the one-wave Enterprise draft series. ## Changes - `enterprise/oag.py`: `TrustConfig` + `

importance 12@teknium1opentype/featurecomp/cliarea/authP3needs-decisionOriginal evidence ↗
pull request

feat(enterprise): K8s sandbox driver — verified containment before harness start

## Summary The v1 `SandboxDriver`: enforces the admitted `SandboxPolicy` via NetworkPolicy + pod securityContext, and independently verifies enforcement by reading the applied objects back before the controller may activate. Partial support is unsupported; unverifiable containment blocks activation. Stacked on #85461 (`ent/core`). Part of the one-wave Enterp

importance 12@teknium1opentype/featurecomp/cliP3needs-decisionsweeper:risk-security-boundaryOriginal evidence ↗
pull request

feat(enterprise): secret brokering — workload-verified, value-free secret operations

## Summary Brokered secrets: workloads never receive secret values or backend credentials. Every operation is verified fail-closed — active revision only, matching workload identity, secret in the revision snapshot, IAM allow, exact broker, selected driver (no fallback) — then executed backend-side, returning only derived results (possession proofs, scoped s

importance 12@teknium1opentype/featurecomp/cliarea/authP3needs-decisionOriginal evidence ↗
issue

Webhook Revolution — graph-gated repair campaign (meta-issue)

# Hermes Webhook Revolution — Campaign Meta-Issue (EPIC) Graph-gated 5×2×3 repair campaign for the entire Hermes webhook surface: ingress, execution, delivery, configuration, management UI, deployment, and documentation. **Canonical plan:** [Hermes Webhook Revolution](https://hermes-webhook-revolution.axlibiza.chatgpt.site) — 20 execution tasks, 5×2×3 graph-

importance 11@andrexibizaopentype/refactorcomp/clicomp/gatewayplatform/webhookP3Original evidence ↗
issue

[Bug]: Custom providers lack context length auto-detection when saved via /model command

### Bug Description **Summary:** When users save a custom provider using the `/model` command without specifying a context length, the system doesn't automatically detect and display what context length was actually used. This leaves users uncertain about whether their custom provider has a short or long context window, which is critical for prompt caching b

importance 10@InB4DevOpsopentype/bugcomp/cliarea/configP3sweeper:risk-compatibilityOriginal evidence ↗
issue

[Bug]: Playwright Chromium installation hangs indefinitely at "extracting archive" on Node 26 (Playwright 1.58.2, CachyOS)

### Bug Description ## Bug Description Fresh installation of Hermes Agent on CachyOS consistently hangs during the Playwright Chromium installation. The Chromium ZIP downloads successfully and passes integrity verification, but the installer never progresses beyond: ``` pw:install extracting archive ``` The process remains alive indefinitely but makes no fur

importance 10@InforesightConsultingopentype/bugcomp/clitool/browserP2area/install-updateOriginal evidence ↗
issue

feat(memory): Allow synchronous recall for current turn as option for honcho and hindsight

IIUC hermes currently queues a background recall for next turn instead of synchronously recalling based on the current user query (for honcho and hindsight at least). `prefetch` right now totally ignores the given query. This means that the recalled information may be completely irrelevant when it is actually injected. If one query is `fix linting`, and the

importance 8@noctuidclosedtype/featurecomp/pluginstool/memoryP3sweeper:risk-session-stateOriginal evidence ↗
pull request

fix(write_file): detect cwd-shaped relative paths missing leading slash

## Problem When a model emits a *relative* path that textually mirrors the working directory (e.g. `home/user/dev/notes/x.md` — an absolute path missing its leading `/`), `write_file` silently creates a doubled path like `/home/user/dev/home/user/dev/notes/x.md` instead of failing or writing to the intended location. Closes #67185. ## Root cause `_resolve_pa

importance 8@rkfshaktiopentype/bugtool/fileP2needs-decisionsweeper:blast-moderateOriginal evidence ↗
issue

[Feature]: Rich Spreadsheet Skill (xlsx / csv)

## Current behavior hermes-agent can read and write files with its terminal tool, but Excel/spreadsheet handling relies on raw Python (`openpyxl`, `pandas`) with no structured abstraction. The agent has to figure out the library, the sheet structure, and error handling from scratch every time. This leads to inconsistent results — formatting is lost on round-

importance 7@raphael-solaceopentype/featuretool/skillsP3Original evidence ↗
issue

feat(approval): session-scoped allowlist mode (deny-by-default terminal) for unattended/untrusted agents

## Problem Hermes agents are increasingly run as **unattended, monetized services** (e.g. sold per-turn over [x402](https://www.x402.org) micropayments), where the *prompt comes from an untrusted buyer*. In that threat model the agent should be able to run **only its own skill scripts** (e.g. `python3 .../skills/<skill>/scripts/foo.py ...`) and nothing else

importance 7@bussyjdopentype/featurecomp/toolstool/terminalarea/authP3Original evidence ↗
issue

Triage: the seven mechanisms behind the 77 open stall/hang reports

I read every open issue whose title says timeout/stall/hang/stuck/freeze/deadlock — 77 of them as of yesterday. Most are not 77 bugs. The runtime ones collapse into seven mechanisms, and about a third of the pile isn't a runtime stall at all (it's the installer). Classification below, with what's covered by an in-flight PR and what has nothing. Method: title

importance 7@ayushnangiatype/refactorcomp/agentcomp/gatewayP3needs-decisionOriginal evidence ↗
issue

[Bug]: Windows: gateway cold-started after 'hermes update' dies silently (no logs, no PID file, no exit record) — offline until manual restart

### Bug Description On Windows, after a successful `hermes update` (triggered by the Desktop app's update hand-off), the updater prints `✓ Starting Windows gateway after update (PID <n>)` — but the spawned gateway process **dies immediately and silently**: it never writes to `gateway.log`, never creates `gateway.pid`, and leaves no exit record in the gateway

importance 7@linfeng961opentype/bugcomp/clicomp/gatewayP1sweeper:risk-message-deliveryOriginal evidence ↗
issue

Bug: sanitize_api_messages dedup pass writes tool_calls: [] — HTTP 400 on DeepSeek/OpenAI

## Summary In `sanitize_api_messages()`, the deduplication pass that removes duplicate `tool_call_id`s (#58327) can produce an empty `tool_calls: []` array on an assistant message when ALL of its tool calls are deduped. Strict providers (DeepSeek v4, newer OpenAI) reject this with HTTP 400: ``` Invalid 'messages[N].tool_calls': empty array. Expected an array

importance 6@twunjiopentype/bugcomp/agentprovider/openaiprovider/deepseekprovider/qwenOriginal evidence ↗
issue

[Bug]: Codex weekly-only primary_window is mislabeled as Session

## Summary `agent/account_usage.py::_fetch_codex_account_usage()` assigns Codex quota labels by response position: ```python for key, label in (("primary_window", "Session"), ("secondary_window", "Weekly")): ``` The live Codex usage API does not always preserve that semantic ordering. When only the weekly limit is returned, it can occupy `primary_window`. He

importance 6@wang2type/bugcomp/agentprovider/openaiP3codexOriginal evidence ↗
issue

Windows: TestGitBashCoreutilsOnPath layout tests compare native-separator paths against forward-slash literals

**Version:** v2026.7.20 (also present on current `main`) **Platform:** Windows 11, Python 3.11, pytest run from a native Windows checkout ## Summary `tests/tools/test_local_env_windows_msys.py::TestGitBashCoreutilsOnPath::test_derives_dirs_from_portablegit_layout` and `::test_derives_dirs_from_mingit_usr_bin_layout` fail on any Windows checkout. Both tests a

importance 6@daragao3closedtype/testcomp/toolsbackend/localP3sweeper:risk-platform-windowsOriginal evidence ↗
issue

file-mutation verifier falsely claims target was unchanged after terminal mutation

## Bug Description The turn-end file-mutation verifier can make a demonstrably false claim when a failed `write_file` or `patch` attempt is followed by a successful mutation through `terminal` in the same turn. The verifier currently says the target **"was NOT modified this turn"** and instructs the user to trust that footer over the assistant's summary. How

importance 6@kaitwallaopentype/bugcomp/agenttool/fileP3Original evidence ↗
issue

.update-incomplete left after every update: uv exclude-newer filters packages with no upload date (setuptools/pillow/mcp)

**Summary** Every `hermes update` (including the desktop in-app update path) leaves `~/.hermes/hermes-agent/.update-incomplete` behind. The next launch prints: > A previous `hermes update` was interrupted mid-install — finishing dependency installation now... and then fails with `✗ Could not auto-recover the interrupted install.` The marker never clears beca

importance 6@zhiang34opentype/bugcomp/cliarea/configP2sweeper:risk-compatibilityOriginal evidence ↗
issue

[Bug]: Buzz gateway

### Bug Description When I mention Hermes in a Buzz channel, it correctly creates a new thread for the conversation. However, subsequent messages in that thread are ignored unless I mention Hermes again. Mentioning Hermes again causes it to create yet another nested thread instead of continuing the existing conversation. This results in one additional thread

importance 6@skappafrosttype/bugcomp/pluginsP3needs-decisionsweeper:risk-session-stateOriginal evidence ↗
issue

Prompt caching is disabled for Anthropic-compatible providers when Claude is selected through a bare alias

## Summary Prompt caching is silently disabled when a Claude model is selected through a **bare runtime alias** (for example `fable` or `opus`) on a third-party provider using `api_mode: anthropic_messages`. The downstream gateway resolves those aliases to canonical Claude models (`claude-fable-5`, `claude-opus-5`), but Hermes evaluates its prompt-cache poli

importance 6@xiaoyaner0201opentype/bugcomp/agentprovider/anthropicP0sweeper:risk-cachingOriginal evidence ↗
issue

`--in <dir>` is silently overridden by restored session cwd in one-shot mode (`-z`)

v0.20.0 (2026.8.3), Windows native. In headless one-shot mode, `--in <dir>` is documented to set the working directory, but when a previous session has a saved cwd, that cwd wins silently: we invoked `hermes -z "…" --in C:\<throwaway-dir> --ignore-user-config` from `C:\<throwaway-dir>` itself, and the agent operated in `C:\dev` (the restored cwd of an earlie

importance 6@EirikWolfopentype/bugcomp/cliP2sweeper:risk-compatibilitysweeper:risk-platform-windowsOriginal evidence ↗
issue

[Feature]: kanban HERMES_TENANT has no memory-isolation effect — worker memory pollutes across tenants

### Problem or Use Case Kanban workers receive a `HERMES_TENANT` env var from the dispatcher (`kanban_db.py:_default_spawn`, ~line 9018) when a task is created with `--tenant <slug>`, but that variable has **no memory-isolation effect**. All workers — regardless of board, tenant, or assignee profile — write to the same flat global memory store (`~/.hermes/me

importance 6@hua-hua3321opentype/featurecomp/crontool/memoryP3needs-decisionOriginal evidence ↗
pull request

fix(agent): classify provider memory-ceiling 400s as overloaded, not context_overflow

## What does this PR do? Local-inference providers (oMLX / MLX with a memory guard, and similar Metal/CUDA setups) abort a request when the **prefill memory peak** exceeds a GPU/unified-memory ceiling. Their rejection text often suggests "reduce context length" / "reduce context size", which collides with the context-overflow patterns — so Hermes classifies

importance 6@briandevansopentype/bugcomp/agentbackend/localP2sweeper:risk-session-stateOriginal evidence ↗
pull request

feat(signal): add policy-aware read receipts

## Summary Add policy-aware outbound Signal read receipts as a focused slice of #39043. - keep read receipts **disabled by default** - expose the behavior through `signal.send_read_receipts` in `config.yaml` (no new behavioral env var) - schedule `sendReceipt` only after Signal's story/content/group/mention filters pass and the gateway's authorization callba

importance 6@poisdahlopentype/featurecomp/gatewayplatform/signalarea/configP3Original evidence ↗
pull request

fix(webhook): stop route scripts from losing authenticated delivery identity

## What does this PR do? Webhook route scripts currently receive only payload JSON, so they cannot bind work to the event type and delivery identity that Hermes authenticated. This change passes bounded request metadata through a sanitized environment, rejects script deliveries without an external identity, and applies idempotency before script execution so

importance 6@fangliquanflqopentype/bugcomp/gatewayplatform/webhookP2sweeper:risk-message-deliveryOriginal evidence ↗
issue

[Desktop] Cron sessions render only user prompt — tool calls and LLM response invisible until gateway restart

**Severity: Critical — affects 100% of Desktop cron sessions on all platforms** ## Symptom Clicking a completed cron job session in the Desktop sidebar or cron tab shows **only the user prompt** — the message that the scheduler auto-submits to start the job. Everything below it — tool calls, tool results, reasoning text, and the LLM's final response — is **i

importance 5@ValentinSergieftype/bugcomp/gatewaycomp/cronP3area/sessionsOriginal evidence ↗
issue

[Bug]: intent_ack_continuation never fires in established sessions with local models

## Bug Description Local models on the gateway announce an action and end the turn without doing it. A reply like "I'll delegate this to a sub-agent, then bring it up" stops there, with no tool call and no work. Hermes already ships the guard for this, `intent_ack_continuation` (added in #27881), but it does not fire for local models in established sessions.

importance 5@ClaySecAItype/bugcomp/agentprovider/ollamaP2area/sessionsOriginal evidence ↗
issue

hermes cron run reports 'Ran now: failed.' for a run whose agent session completed cleanly

**Version:** Hermes Agent v0.19.0 (2026.7.20), upstream 0ce9022e, macOS. **What happened** Created a one-shot agent job and triggered it manually: ``` hermes cron add "2027-01-01T00:00:00Z" "<prompt>" --name probe --skill my-local-skill --deliver local --repeat 1 hermes cron run <job-id> # => Triggered job: <job-id> (<job-id>) # => Ran now: failed. ``` But t

importance 5@optionshiftopentype/bugcomp/clicomp/cronP2Original evidence ↗
issue

Feature: Apply DeepSeek peak-hour rate multiplier (2x during 01:00-04:00 and 06:00-10:00 UTC)

This issue requests implementation of DeepSeek peak-hour pricing multiplier announced by DeepSeek on 2026-07-26. ## Feature Request DeepSeek announced peak-hour pricing with 2x rate multiplier during: - **01:00 - 04:00 UTC** (daily) - **06:00 - 10:00 UTC** (daily) All other hours: standard rate. ## Current State Hermes has a usage_pricing.py that tracks mode

importance 5@dominicelaydaopentype/featurecomp/agentprovider/deepseekP3area/usage-costOriginal evidence ↗
issue

[Bug] Child Kanban subscriptions drop chat_type and delivery_metadata during inheritance

### Summary At commit `373632e33813c86b1b9b024168a5892af1926b83`, `hermes_cli/kanban_db.py::_inherit_notify_subs()` copies a parent task’s notification subscription to a child but omits the `chat_type` and `delivery_metadata` columns. The same omission remained on `main` when rechecked on 2026-07-27. Subscriptions created by gateway `/kanban create` and tool

importance 5@bmetcalf21closedtype/bugcomp/cronplatform/telegramP3sweeper:risk-session-stateOriginal evidence ↗
issue

Add parent-scoped list, cancel, and steer controls for live async delegations

## Problem A parent agent can dispatch background work with `delegate_task` and receives a complete `deleg_...` handle, but it has no model-facing way to enumerate, cancel, or redirect that live delegation afterward. Operator surfaces such as `/agents` and the TUI can provide visibility or controls, but a user speaking to the parent through Telegram, another

importance 5@0xbWyclosedtype/featurecomp/toolstool/delegateP3needs-decisionOriginal evidence ↗
issue

[Bug]: issue starting latest container image - v2026.8.3

### Bug Description Starting the latest build of the docker container result on error > Error response from daemon: failed to create task for container: failed to create shim task: OCI runtime create failed: runc create failed: unable to start container process: error during container init: exec: "/opt/hermes/docker/entrypoint-dispatch.sh": stat /opt/hermes/

importance 5@agustinusnathanieltype/bugbackend/dockerarea/dockerP2bugOriginal evidence ↗
issue

Desktop sidebar: 'Load more' (⋯) never appears when pinned sessions occupy the recency window — older sessions unreachable

## Bug Description In the desktop sidebar, the "Load more" (`⋯`) row **never appears** when pinned sessions happen to sit *inside* the most-recent recency window — even when dozens of older sessions exist beyond the page. Those older sessions become unreachable from the list UI entirely (FTS search still finds them, but the sidebar list cannot load them). ##

importance 5@kiwiwylopentype/bugcomp/cliP2sweeper:risk-session-statecomp/desktopOriginal evidence ↗
issue

[Bug]: Desktop — switching into an actively-streaming session lands the transcript on old history (scroll jitter + sticky-bottom disengage)

## Bug Description **Hermes Desktop**: switching into a session whose agent is **still running/streaming** makes the transcript bounce up and down for a few frames, then the viewport settles on an **older part of the transcript** while the reply keeps streaming below the fold. The user loses sight of the live turn and must scroll down manually. This is a dis

importance 5@licat2023opentype/bugduplicateP3comp/desktopOriginal evidence ↗
issue

[Bug]: Cron jobs pin to a dead model and ignore fallback_providers — jobs fail with HTTP 402 for days

### Bug Description ## Summary When a cron job is created, it captures a model_snapshot/provider_snapshot of the active model. If that model's quota/plan later becomes exhausted (HTTP 402 from the provider), every subsequent run of the job fails permanently with the same 402 error. The configured fallback_providers chain in config.yaml is NOT consulted for c

importance 5@CPLANETAIopentype/bugcomp/cronarea/configP2sweeper:risk-compatibilityOriginal evidence ↗
issue

fix(cli): Windows PowerShell same-surface guard weak + pid_alive fallback chain + spinner-loop interval asymmetry + voice auto-restart direct invalidate

## Summary Line-by-line audit of `cli.py` (~18,915 lines) and `hermes_cli/active_sessions.py` at commit `036516d63` for the Windows PowerShell stacked-frame-prompt artifact. I verified each candidate against the actual code before flagging — the well-known vectors (refresh_interval default, _invalidate throttle, erase_when_done, spinner_loop idle sleep) are

importance 5@iaptype/bugcomp/cliP2needs-reprosweeper:risk-session-stateOriginal evidence ↗
issue

[Bug]: Desktop Agents panel keeps timed-out subagents stuck as running forever

### Bug Description After a delegated subagent hits the hard child timeout (`delegation.child_timeout_seconds`), the desktop app's **Agents panel keeps showing it as "running" forever** — spinning spinner, tool badge, counted in the status-bar "Agents N running" indicator — even though the parent conversation already received the timeout error. The row is ne

importance 5@DavidMetcalfeopentype/bugduplicatetool/delegateP2sweeper:risk-session-stateOriginal evidence ↗
pull request

fix(langfuse): omit explicit zero cost_details for subscription-included providers (#43129)

## What does this PR do? Fixes Langfuse showing $0 cost for subscription-included providers (e.g. `openai-codex`). Both the response-object path and the `post_api_request` dict path were sending explicit zero-valued `cost_details` to Langfuse, which treats them as authoritative and never recalculates from model pricing. ## Related Issue Fixes #43129 ## Type

importance 5@liuhao1024closedtype/bugcomp/pluginsprovider/openaiP3sweeper:risk-compatibilityOriginal evidence ↗
pull request

feat(slack): configurable slash-command namespace prefix

## What does this PR do? Slack slash commands are **workspace-global and not namespaced**. When two gateway apps live in the same workspace — or Hermes sits alongside any other app using generic names like `/model`, `/new`, `/help` — Slack routes each shared command to whichever app was installed most recently, silently breaking the others. There is no per-a

importance 5@chenwei791129opentype/featurecomp/clicomp/pluginsplatform/slackarea/configOriginal evidence ↗
pull request

fix(termux): complete native install, TUI, and Desktop support

## What does this PR do? Completes Hermes's native Android/Termux support end to end: immutable Python dependencies, safe update behavior, narrow-terminal TUI UX, and the current Desktop renderer through Termux:X11 plus the phone's normal localhost browser. This is self-contained and rebased directly on current upstream `main`. It does not require another op

importance 5@adybag14-cyberopentype/bugcomp/clicomp/tuiP3needs-decisionOriginal evidence ↗
pull request

fix(agent): recover Codex reasoning-only stalls with a nudge + fallback ladder (#67321)

## What does this PR do? Codex/Responses turns can return several consecutive `status="incomplete"` responses that carry only **encrypted** reasoning items — no final text, no tool call. The merged reasoning-only nudge (#, grok-4.20 on xai-oauth) only fires when the interim has *nothing to replay* (plain-text reasoning, no `encrypted_content`). Encrypted rea

importance 5@PRATHAMESH75opentype/bugcomp/agentprovider/openaiP2codexOriginal evidence ↗
pull request

fix: pass target_model to resolve_runtime_provider in model override rehydration

When the gateway restarts, _rehydrate_session_model_override calls _resolve_runtime_agent_kwargs_for_provider which calls resolve_runtime_provider without passing the model name. The api_mode is resolved from the provider's default transport, not the specific model's required transport. For opencode-go models like mimo-v2.5 that need chat_completions (OpenAI

importance 5@rkfshaktiopentype/bugcomp/gatewayP2sweeper:risk-session-statesweeper:risk-message-deliveryOriginal evidence ↗
pull request

fix(gateway): never reap supervised gateway + relaunch on desktop (re)start (#83683)

## Summary Fixes #83683 — on a desktop (re)start the backend force-killed the live messaging gateway but never relaunched it, leaving WeChat/QQ/Telegram silently offline. This is a regression: the old gateway survived restarts (reparented), but the current gateway is a separate `hermes gateway run` process that the orphan-reaper happily killed, with no succe

importance 5@EvanProgrammingopentype/bugcomp/clicomp/gatewayarea/configP1Original evidence ↗
pull request

feat(pricing): apply DeepSeek peak/off-peak rate card (#72662)

## Summary Implements #72662: DeepSeek's official rate card switches to peak/off-peak billing at **2026-08-16T16:00 UTC** (announced on https://api-docs.deepseek.com/quick_start/pricing): - Peak hours: **01:00–04:00 and 06:00–10:00 UTC** (all other hours off-peak) - Peak = 2× off-peak on every billing item (cache-hit input, cache-miss input, output) ## Chang

importance 5@DavidMetcalfeopentype/featurecomp/agentprovider/deepseekP3area/usage-costOriginal evidence ↗
issue

[Bug]: Langfuse plugin shows reasoning: None for reasoning_content models (DeepSeek/Qwen/LM Studio convention)

## Bug Description The bundled `observability/langfuse` plugin's `_serialize_assistant_message` reads only the top-level `reasoning` attribute: ```python # plugins/observability/langfuse/__init__.py (HEAD: 31a010010) def _serialize_assistant_message(message: Any) -> dict[str, Any]: return { "content": _safe_value(getattr(message, "content", None)), "reasonin

importance 4@swanhtet1992closedtype/bugcomp/pluginsP3Original evidence ↗
issue

Desktop: composer caret lost when a tool call starts streaming (silent focus/remount, no exception)

## Symptom In the macOS desktop app, while the user is typing in the main composer input box, the text caret disappears the instant an agent tool call begins (the "Ran … Nms" tool row renders / the model starts executing a command). Typing resumes only after re-clicking the input. This happens on essentially every assistant turn. It reads to the user as an a

importance 4@sanyamjain2014opentype/bugP3needs-reprocomp/desktopOriginal evidence ↗
issue

Tracking: unified deadline layer — architectural fix for the timeout/hang backlog (4 phases)

## Goal Eliminate the recurring timeout/hang bug classes structurally. The open backlog contains **400+ issues matching timeout/hang/stuck/wedge**; community triage #84047 collapsed the 77 title-matched runtime stalls into seven mechanisms. Reading those plus the wider set, the failures reduce to **five structural defects** that we currently fix one incident

importance 4@kshitijk4poortype/featureinnovationcomp/agentcomp/toolsarea/configOriginal evidence ↗
issue

Hermes Desktop remote-profile sessions disappear after profile switching

## Summary Hermes Desktop can briefly show a newly created session for a profile connected to a remote gateway, then lose that session from the sidebar after switching to another profile and back. ## Reproduction 1. Configure the primary Desktop profile against a local backend. 2. Configure a second Desktop profile with a remote gateway override. 3. Switch t

importance 4@frizikktype/bugP3sweeper:risk-session-statecomp/desktoparea/profilesOriginal evidence ↗
issue

[Bug]: Desktop — agent-sandbox files unreachable for preview, MEDIA delivery and downloads shelf in SSH-remote + docker topology

**Platform:** macOS desktop (client built from main, includes #76008), backend on a Linux host over SSH. The agent's tools (terminal / file writes) run inside a **docker sandbox** on that host, so agent-written paths (`/workspace/...`, `/tmp/...`) exist only in the container filesystem — not on the backend host, not on the client. **Repro** 1. The agent writ

importance 4@sashalabtype/bugbackend/sshcomp/gatewaybackend/dockerP2Original evidence ↗