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(cli): keep Windows spinner updates on one row

## What does this PR do? The classic CLI spinner now remains on one physical terminal row instead of pushing every timed repaint into Windows Terminal scrollback. The widget clips long status text before the terminal autowrap cell, preserving live progress while keeping the prompt stable. ### Symptom On Windows 10 with Windows Terminal and PowerShell, a long

importance 0@fangliquanflqopenOriginal evidence ↗
pull request

fix(kanban): stop workers after lifecycle handoff

## What does this PR do? Stops a Kanban worker immediately after it successfully hands custody off through `complete`, `block`, `request-review`, or `request-changes`, and binds the actual runtime provider/model/API mode/session to the corresponding durable run receipt. This closes two concrete failure modes observed in a bounded native-Kanban campaign: - a

importance 0@ataraxiaoneopenOriginal evidence ↗
pull request

fix(memory): extend embedded Hindsight install timeout

## What Give embedded Hindsight package installs a 600-second budget while keeping the existing 120-second timeout for lightweight memory-provider SDKs. This applies consistently to: - `hermes memory setup` for `local_embedded` - active-provider restoration during `hermes update` - the Intel macOS slim embedded stack proposed in #81530 ## Why Hermes already

importance 0@neilingeropentype/bugcomp/pluginstool/memoryP3Original evidence ↗
pull request

fix(mailmap): jonny@nousresearch.com is yoniebans, not jquesnelle

## Problem `.mailmap` line 89 maps `jonny@nousresearch.com` to `jquesnelle`, so all 62 commits authored with that email (54 as `yoniebans`, 8 as `jonny`) display under the wrong name in every mailmapped view: `git shortlog`, `git log --use-mailmap`, changelog generators, contributor stats. The raw commit metadata is correct; only the display mapping is wrong

importance 0@yoniebansopenOriginal evidence ↗
pull request

fix(vision): normalize sandbox-side paths to POSIX for container exec-read

## Summary On a Windows host with `terminal.backend: docker`, `vision_analyze` failed for every local image path routing to the in-container exec-read: `Path()` on Windows converts POSIX separators into backslashes, so `shlex.quote(str(p))` injected `\workspace\...\vision_test.png` into the Linux container command → "Only base64 data is allowed". ## Change (

importance 0@webtecnicaopenOriginal evidence ↗
pull request

fix(tools): use POSIX path in vision container exec-read on Windows hosts

## What does this PR do? Fixes `vision_analyze` failing on Windows hosts under the Docker terminal backend for any local path that routes to the in-container exec-read (sandbox paths like `/workspace/...`, container cache paths). The resolver built the read command from `str(Path(...))`, which on Windows yields backslash separators; the Linux container canno

importance 0@maqifrnswaopenOriginal evidence ↗
pull request

fix(desktop): make get-windows optional dep so Linux build doesn't break

## Summary `get-windows@9.3.0` was in `dependencies` of the desktop app — on Linux its install script (`node-pre-gyp install --fallback-to-build`) fails (404 prebuilt + gyp ModuleNotFoundError in the venv), breaking `npm ci` and the whole desktop build during `hermes update`. ## Change (platform-gated) - `apps/desktop/package.json`: `get-windows` moved from

importance 0@webtecnicaopenOriginal evidence ↗
pull request

fix(macos): stable TCC anchor for uv-managed python interpreter

## Summary On macOS, TCC permission grants (microphone, screen recording, etc.) are keyed to the resolved client binary path. The uv-managed Python interpreter lives in `~/.local/share/uv/python/cpython-<patch>-macos-*/bin/python3.11` — every patch bump creates a new directory → orphaned grants → permission prompts return after **every** update. Symlinks don

importance 0@webtecnicaopenOriginal evidence ↗
pull request

fix(auth): harden shared Codex OAuth rotation

## Summary - Canonical root lock-held OAuth refresh/writeback with a random rotation-invariant grant identity. - Stale aliases converge; terminal failures quarantine matching aliases without touching independent grants/providers. - Native-Codex implementation/review preflight is strictly read-only, fail-closed, and runs before claim/spawn. - Compatibility is

importance 0@fardoche6openOriginal evidence ↗
pull request

fix(telegram): rebind TypeHandler in the deferred SDK import (fixes #85272)

Root cause for #85272, plus a three-line fix. ## What happens `check_telegram_requirements()` re-imports python-telegram-bot after a lazy install and rebinds the module-level aliases that the top-level `except ImportError` block set to `typing.Any`. **`TypeHandler` is missing from all three places**: the `global` declaration, the `from telegram.ext import (.

importance 0@lesyukopentype/bugcomp/pluginsplatform/telegramP3Original evidence ↗
pull request

fix: reset SSL ciphers to DEFAULT for WeChat CDN handshake (#84394)

## What does this PR do? WeChat's CDN (novac2c.cdn.weixin.qq.com) rejects Python's default restrictive cipher list with SSLV3_ALERT_HANDSHAKE_FAILURE, causing all media file downloads (documents, images) to fail. Text messages work fine because they don't hit the CDN. The root cause is in gateway/platforms/weixin.py::_make_ssl_connector(). It creates an ssl.

importance 0@rkfshaktiopentype/bugcomp/gatewayplatform/wecomP2sweeper:risk-message-deliveryOriginal evidence ↗
pull request

fix(desktop): re-emit session.info when approvals config changes out of band

Turning YOLO on in the settings page flips the real switch: approvals stop immediately. But the status-bar pill never updates, and switching sessions repaints it from a stale cached "off." The broken indicator then baits you into clicking the toggle again, which turns the bypass you already had **off**, and approvals mysteriously come back. From the user's c

importance 0@yoniebansopentype/bugcomp/clicomp/tuiarea/configP2Original evidence ↗
pull request

fix(xai): drop stale 256K grok-4.6 context cache + generalize pre-catalog guard

## Summary Users who ran `grok-4.6` before its 500K catalog entry landed keep a stale persisted 256K context length forever — this drops that leftover so it re-resolves, and generalizes the guard so the whole class (MiniMax-M3, Grok-4.3/-4.6/-4-fast/-4.20, qwen3.6-plus) is covered by one rule instead of per-model patches. Salvages #84341 by @Julientalbot (ch

importance 0@teknium1closedtype/bugcomp/agentprovider/xaiP3Original evidence ↗
pull request

feat(langfuse): widen tracing to errors, sessions, subagents, and MoA fan-out

## Summary Widens the bundled Langfuse observability plugin from 6 hooks to 11 and fixes two attribution bugs, salvaged from PR #83437 by @erosika with adopted fixes from 8 prior community PRs. ## Changes - **Model attribution:** `on_pre_llm_request`/`on_post_llm_call` now prefer the wire value (`request["body"]["model"]`, `response_model`) over the stale ag

importance 0@kshitijk4poorclosedtype/featurecomp/agentcomp/pluginsP3Original evidence ↗
pull request

fix(gateway): expire orphaned drain markers past a max-age so a leaked marker can't wedge the gateway

## Summary A `.drain_request.json` marker orphaned **without a machine restart** wedges the gateway in `draining` indefinitely — every inbound message on every platform is bounced with *"⏳ This agent is draining for a maintenance action…"* until someone manually deletes the marker. Observed in the field: a Hermes Cloud instance refused all Telegram turns for

importance 0@kshitijk4poorclosedtype/bugcomp/gatewayP1sweeper:risk-message-deliveryOriginal evidence ↗
pull request

fix(gateway): pin active-session lease to its acquire-time registry (#85431)

## What does this PR do? Fixes #85431: in a native multiplex gateway, an active-session lease routed to a named profile leaks its slot on release, so after `max_concurrent_sessions` routed turns every new session is rejected — *"Hermes is at the active session limit (N/N)"* — even though no agent turn is running. ## Root cause `try_acquire_active_session()`

importance 0@PRATHAMESH75opentype/bugcomp/clicomp/gatewayP2sweeper:risk-session-stateOriginal evidence ↗
pull request

docs(telegram): document allowed_topics whitelist and free_response gates

Fixes #78770. The forum-topic whitelist (`telegram.allowed_topics` / `TELEGRAM_ALLOWED_TOPICS`) and the two free-response gates (`free_response_chats` / `free_response_topics`) are fully implemented in `plugins/platforms/telegram/adapter.py` but were not discoverable from any documentation. This adds the three env vars to the reference table in `environment-

importance 0@Luna161opentype/docscomp/gatewayplatform/telegramP3Original evidence ↗
pull request

fix(honcho): isolate clients per profile, resolve baseUrl/apiKey, enforce saveMessages containment

## Summary Consolidates and salvages three Honcho plugin PRs by @erosika (#83500, #83508, #83525) onto latest main, with review follow-up fixes applied on top. All three address distinct bug classes in the Honcho memory plugin that cause silent data corruption in multi-profile/self-hosted setups. ## What this PR makes true The Honcho plugin correctly isolate

importance 0@kshitijk4pooropentype/bugcomp/agentcomp/pluginstool/memoryP3Original evidence ↗
pull request

docs(telegram): document TELEGRAM_WEBHOOK_HOST and other undocumented adapter env vars

Fixes #78697. `TELEGRAM_WEBHOOK_HOST` is read in `plugins/platforms/telegram/adapter.py` and controls the webhook bind host — critical for IPv6-only deployments (Fly.io 6PN) — but appeared nowhere in `website/docs/`. A scan of the adapter shows it reads ~22 `TELEGRAM_*` and `HERMES_TELEGRAM_*` env vars, of which several were undocumented. This PR adds: - `TE

importance 0@Luna161opentype/docscomp/gatewayplatform/telegramP3Original evidence ↗
pull request

docs(telegram): document media routing tables and batch-timing env vars

Fixes #78710. Telegram inbound media routing is table-driven (`_TELEGRAM_IMAGE_EXTENSIONS`, `_TELEGRAM_IMAGE_MIME_TO_EXT`, `_TELEGRAM_IMAGE_EXT_TO_MIME`, `_TELEGRAM_VOICE_EXTS`, `_TELEGRAM_AUDIO_ATTACHMENT_EXTS`) and the three batch-debounce knobs (`HERMES_TELEGRAM_MEDIA_BATCH_DELAY_SECONDS`, `HERMES_TELEGRAM_TEXT_BATCH_DELAY_SECONDS`, `HERMES_TELEGRAM_TEXT_

importance 0@Luna161opentype/docscomp/gatewayplatform/telegramP3Original evidence ↗
pull request

feat(slack): add channel approval gate

## Summary - add an opt-in Slack shared-channel approval gate before normal message dispatch, including Slack slash-command dispatch - store local approval/pending/revoked channel state per Hermes profile with team-scoped keys where Slack team IDs are available - honor configured approval owners/agent aliases with exact `approve <agent> here` / `revoke <agen

importance 0@psc239opentype/featurecomp/gatewaycomp/pluginsplatform/slackarea/authOriginal evidence ↗
pull request

fix(search): guide empty timed-out searches

## Summary - keep existing partial-result behavior for timed-out file searches - add explicit path/file_glob scoping guidance when a timeout emitted no usable results - cover file-name and all content output modes ## Verification - `scripts/run_tests.sh tests/tools/test_search_budget_truncation.py tests/tools/test_search_error_guard.py tests/tools/test_searc

importance 0@ajoslinopentype/bugcomp/toolstool/fileP3Original evidence ↗
pull request

feat(enterprise): control-plane core — resource model, store, audit, driver contracts

## Summary Adds the foundation of **Hermes Enterprise**: a standalone control-plane core (resource model, fail-closed resource store, audit log, and driver contracts) for deploying and operating fleets of Hermes agents multi-tenant on Kubernetes — with the hermes-agent runtime as the Harness. Part of the one-wave Enterprise draft series; this PR defines the

importance 0@teknium1opentype/featurecomp/cliP3needs-decisionOriginal evidence ↗
pull request

docs(delegation): document delegate_task live orchestration actions

## Summary Docs for #85232: the delegation feature page now documents the model-facing `delegate_task` control actions (`action='list'/'steer'/'stop'`) alongside the existing TUI/gateway `subagent.steer` RPC section. ## Changes - `website/docs/user-guide/features/delegation.md`: "Steering a Running Subagent" split into model-facing (delegate_task action para

importance 0@teknium1closedtype/docstool/delegateP3Original evidence ↗
pull request

fix(slack): read real SDK responses instead of gating on isinstance dict (salvage #74658)

## Summary Slack adapter now reads real slack_sdk response objects — user name resolution, bot detection, ephemeral send confirmation, and thread `ts` reads all work again. Salvage of #74658 by @nikitaBarkov onto current main, authorship preserved. Root cause: commits from #69483/#70196/#69479 added `isinstance(resp, dict)` gates on Web API responses, but `S

importance 0@teknium1closedtype/bugcomp/pluginsplatform/slackP3Original evidence ↗
pull request

feat(desktop): expose session archive action to plugins

## Summary - expose `host.archiveSession(storedSessionId, { profile? })` to runtime-loaded Desktop plugins - route the action through Desktop's canonical archive workflow so optimistic visibility, pins, selected-session behavior, and native notifications stay consistent - normalize lineage-root IDs, preserve exact profile routing, propagate rollback failures

importance 0@jerryhjonesopentype/featureP3comp/desktopOriginal evidence ↗
pull request

fix(auxiliary): keep /anthropic base_url for anthropic_messages custom endpoints (salvage #64891)

## Summary Auxiliary tasks (titles, compression, vision) work again on `custom` providers whose base_url ends in `/anthropic` (MiniMax, Zhipu, LiteLLM proxies). Salvage of #64891 by @AlexanderPrendota onto current main, authorship preserved. Fixes #16254 (dup #17086). Root cause: the explicit-base branch of `resolve_provider_client()` rewrote `/anthropic` →

importance 0@teknium1closedtype/bugcomp/agentprovider/anthropicarea/configP3Original evidence ↗
pull request

feat(relay): session-span segmentation for continuous sessions (salvage #85009)

## Summary Salvage of #85009 by @victor-kyriazakos: opt-in Relay session-scope segmentation so continuous gateway sessions export session-level telemetry at turn boundaries instead of holding one unexported span open for weeks — plus a LIFO-safety fix and docs on top. Relay export is close-driven; a Telegram/Slack session that never ends means the session ro

importance 0@teknium1closedtype/featurecomp/agentP3telemetrysweeper:risk-session-stateOriginal evidence ↗
pull request

feat(enterprise): native IAM — principals, roles, bindings, restrictions

## Summary Native IAM for the Hermes Enterprise control plane: Principals, ServicePrincipals, WorkloadIdentities, Groups, Roles, AccessBindings, and Restrictions, with a deny-by-default `OCCIAMAdapter` implementing the `IAMAdapter` contract from #85461. Stacked on #85461 (`ent/core`). Part of the one-wave Enterprise draft series. ## Changes - `enterprise/iam

importance 0@teknium1opentype/featurecomp/cliP3needs-decisionOriginal evidence ↗
pull request

feat(enterprise): controller — deploy choreography, rollback, namespace lifecycle, CLI

## Summary The controller: owns namespace lifecycle and the single deployment path — authorize → resolve + per-reference authorize → gateway ready → sandbox supports entire policy → immutable `AgentRevision` snapshot → provision candidate → enforce + verify containment → prepare nonserving route → retire previous → activate → start harness → enable route. Fa

importance 0@teknium1opentype/featurecomp/cliP3needs-decisionOriginal evidence ↗
pull request

feat(enterprise): KubernetesComputeDriver — candidate provisioning via kubectl, gated harness start

## Summary The v1 `ComputeDriver`: provisions candidate workloads on Kubernetes via `kubectl` (no python k8s dependency). Candidates are created at `replicas: 0` — the harness literally cannot start until the controller activates the revision and the driver scales to 1. Stacked on #85461 (`ent/core`). Part of the one-wave Enterprise draft series. ## Changes

importance 0@teknium1opentype/featurecomp/cliP3needs-decisionOriginal evidence ↗
pull request

feat(enterprise): deployment packaging — Dockerfile, Helm chart, RBAC, smoke script

## Summary Packaging to run Hermes Enterprise on a cluster: one multi-stage image serving both the controller (`python -m enterprise.cli`) and per-namespace gateways, a Helm chart with least-privilege RBAC scoped to `hermes-*` namespaces, and a guarded smoke script. Stacked on #85461 (`ent/core`). Part of the one-wave Enterprise draft series. ## Changes - `d

importance 0@teknium1opentype/featurecomp/cliarea/dockerP3needs-decisionOriginal evidence ↗
pull request

docs(enterprise): overview, concepts, deployment, installation, security

## Summary Docs-site section for Hermes Enterprise: five pages (overview, concepts, deployment, installation, security) registered as a new **Enterprise** sidebar category. All pages carry a draft-status admonition since they document the in-flight `ent/*` series. Stacked on #85461 (`ent/core`). Part of the one-wave Enterprise draft series. ## Changes - `web

importance 0@teknium1opentype/docsP3needs-decisioncomp/dashboardOriginal evidence ↗
pull request

feat(slack): native live cards — chat.startStream reply streaming + opt-in plan/task-card tool progress

## Summary Slack replies now stream as native live-typing messages, and (opt-in) tool progress renders as Slack-native plan/task cards — consolidating the open "Slack live cards" PR/issue cluster (#66542 + #29496; closes #29483, addresses #51363's thinking-steps surface). ## Changes - `plugins/platforms/slack/adapter.py`: native streaming via `chat.startStre

importance 0@teknium1opentype/featurecomp/gatewaycomp/pluginsplatform/slackP3Original evidence ↗
pull request

fix(providers): deepseek reasoning passback condicional + effort off/high/max

## Summary Makes DeepSeek wire replay token- and cache-efficient: `reasoning_content` is only serialized on assistant turns that carried tool calls (the official thinking-mode passback rule), assistant `content` is normalized to `""` (never null), and `reasoning_effort` uses the official DeepSeek vocabulary `off|high|max`. Root cause: Hermes replayed `reason

importance 0@pablo-afterlifeopentype/bugcomp/agentprovider/deepseekP2area/usage-costOriginal evidence ↗
pull request

test(e2e): regressão de prompt-cache em turns multi-step (DeepSeek)

## Summary Adds a key-gated integration test that proves prompt-cache hits on multi-step DeepSeek conversations: after the first request, every subsequent request must report `cache_read_tokens > 0` because it shares a byte-identical prefix with its predecessor. Root cause: Hermes has no regression guard for prompt-cache stability. A silent prefix-breaking c

importance 0@pablo-afterlifeopentype/testcomp/agentprovider/deepseekP3Original evidence ↗
pull request

feat(compression): prune oversized tool results in place before summarization

## Summary Prunes oversized tool results in their own message node — same position, same role, same `tool_call_id` — down to `head + marker + tail`, as a no-LLM pre-pass that runs BEFORE the summarization region is selected. Shrinking oversized tool bodies often makes the transcript fit the tail budget, skipping the summarizer entirely. Root cause: giant too

importance 0@pablo-afterlifeopentype/featurecomp/agentcomp/cliP3sweeper:risk-session-stateOriginal evidence ↗
pull request

feat(tools): spill oversized tool outputs to session files with preview + locator

## Summary When `tools.spill.enabled` is true and a tool result's UTF-8 size exceeds `tools.spill.max_inline_bytes`, the full text is written ONCE to a session-scoped file and the inline message becomes a bounded head/tail preview plus a locator notice the model follows with `read_file`. Root cause: large unique tool outputs (web extractions, dumps) grow the

importance 0@pablo-afterlifeopentype/featurecomp/agentcomp/toolsarea/configP3Original evidence ↗
pull request

feat(compression): cache-aware summarization + thinking-off aux titles

## Summary Summarization calls now replay a genuine prefix of the last routed request: the conversation's own system prompt, the real tool schemas, the protected head + compacted region as actual chat messages in order, with the summarization instruction as the final user message. Auxiliary session-title calls force thinking OFF so the titler never burns its

importance 0@pablo-afterlifeopentype/featurecomp/agentprovider/deepseekP3sweeper:risk-session-stateOriginal evidence ↗
pull request

feat(agent): repeat-tool-reminder advisory (loop hygiene)

## Summary Adds advisory loop hygiene: consecutive identical tool calls (same tool name + canonically identical arguments) get a soft reminder appended to the tail of the current tool result when the run length hits a threshold — escalating tone at 3, 5, and 8 repeats. Root cause: models can loop on the same tool call with identical arguments, burning tokens

importance 0@pablo-afterlifeopentype/featurecomp/agentarea/configP3sweeper:risk-compatibilityOriginal evidence ↗
pull request

feat(delegation): subagent result never-rejects with stop_reason + partial text

## Summary A failing delegation child (model error, timeout, user cancel, token budget) now settles into a structured result entry instead of surfacing as a lost failure: each `delegate_task` result gains an additive `stop_reason` (`completed|aborted|error|max-tokens`; `refusal` is reserved — Hermes has no refusal signal today) and, when the failure would ot

importance 0@pablo-afterlifeopentype/featurecomp/agenttool/delegateP3Original evidence ↗
pull request

feat(jobs): ferramentas de jobs em background com coleta

## Summary Adds a single `jobs` tool (action enum `start|list|output|kill`) that gives the agent owned background jobs with async collection, reusing the existing process registry (terminal background infrastructure) — no new process-management layer. Root cause: Hermes could run background processes via the terminal tool, but the agent had no owned job life

importance 0@pablo-afterlifeopentype/featurecomp/toolstool/terminalP3Original evidence ↗
pull request

feat(delegation): continuable children v1 — durable id + settlement notice + report

## Summary Adds an opt-in `continuable` flag to `delegate_task` that gives every child a durable identity without changing the default delegation model: result entries carry `child_session_id` (the child's persisted session id, linked to the parent via `parent_session_id`) plus the ephemeral `subagent_id`, the async completion event renders a settlement noti

importance 0@pablo-afterlifeopentype/featurecomp/agenttool/delegateP3sweeper:risk-session-stateOriginal evidence ↗
pull request

feat(delegation): workflow batch orchestration with semaphore and caps

## Summary Extends `delegate_task` with a `workflow` mode: the parent describes an ordered list of steps, each either a `parallel` fan-out (independent items under a semaphore) or a `pipeline` of sequential stages (output of stage N is appended to the context of stage N+1's prompts). Item failure never kills the batch — a failed item becomes a structured err

importance 0@pablo-afterlifeopentype/featurecomp/agenttool/delegateP3needs-decisionOriginal evidence ↗
pull request

fix(streaming): kimi-coding header-read timeout + anthropic routing

## Summary A `kimi-coding` streaming request blocked **forever** in httpcore header read — no timeout applied, fallback never engaged, the run had to be killed externally. ## Root cause Two layers: (1) the keepalive HTTP clients had `httpx.Timeout(read=None)` as a floor (per-request timeout still applied for most providers, but the floor made any path that s

importance 0@webtecnicaopentype/bugcomp/agentprovider/kimiP2Original evidence ↗
pull request

feat(image-gen): add Azure Foundry backend provider plugin

## Summary Adds Azure Foundry as a backend provider for the `image_generate` tool. Organizations using Azure-hosted GPT Image deployments can now keep image generation in-platform instead of switching out. ## Change (plugin, per Contributing guide) - `plugins/image_gen/azure-foundry/` (new): `plugin.yaml` (backend manifest, `requires_env: AZURE_FOUNDRY_IMAGE

importance 0@webtecnicaopentype/featurecomp/pluginstool/visionprovider/openaiP3Original evidence ↗
pull request

feat(whatsapp): group history backfill via channel_context

## Problem In a mention-gated WhatsApp group (`require_mention: true`), messages that don't address the bot never reach the session transcript. When someone finally @-mentions the bot, it answers **blind to the conversation around it** — it can't even see the message immediately above the one that tagged it. Every other group-capable platform already solves

importance 0@NehoraiHadadopentype/featurecomp/gatewaycomp/pluginsplatform/whatsappP3Original evidence ↗
pull request

fix(desktop): map subagent timeout/error completion to terminal failed state

## Summary Timed-out (or exception-failed) subagents stay stuck as **"running"** in the desktop Agents panel and status-bar count forever — spinner glyph, counted in "Agents N running", never pruned — even though the parent conversation already received the failure. ## Root cause Status-vocabulary drift between the Python backend and the desktop store. The b

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

feat(hindsight): memory provider improvements — recall_sync, retain_source, setup templates, memory indicators, error hints

## Summary Salvages PR #74379 (@benfrank241) with security and efficiency fixes applied on top. Hindsight memory provider improvements: opt-in synchronous recall (recall_sync), actionable error hints for missing local runtime, opt-in retain_source attribution, starter memory templates during setup, provider-unavailable warning, and deterministic "recalled N

importance 0@kshitijk4poorclosedtype/featurecomp/agentcomp/clicomp/pluginstool/memoryOriginal evidence ↗
pull request

fix(file): fail closed on silent read transport

## Summary - reject empty or malformed successful size/line-count probes instead of coercing them to zero - reject empty in-range content for a known nonempty regular file - add transport-shaped regressions for linked-worktree and delegation-summary false empties ## Verification - `scripts/run_tests.sh tests/tools/test_file_operations_edge_cases.py tests/too

importance 0@ajoslinopentype/bugtool/fileP2Original evidence ↗