Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
309 commits
Select commit Hold shift + click to select a range
006937f
fix(tui): handle timeout/error subagent statuses in /agents (#26687)
OutThisLife May 16, 2026
55c9f32
fix(tui): width-aware markdown table rendering with vertical fallback…
alt-glitch May 16, 2026
86a368d
remove pip installation method from docs
jquesnelle May 16, 2026
c7db6a5
Merge pull request #26702 from NousResearch/remove-pip-docs
jquesnelle May 16, 2026
63503eb
fix(dashboard): clarify Kanban Ready vs assignment
austinpickett May 16, 2026
97a32af
fix(auxiliary): resolve xai oauth compression from pool
helix4u May 16, 2026
44b63fc
fix(tui): allow transcript scroll + Esc during approval/clarify/confi…
OutThisLife May 16, 2026
a31191c
fix(docs): unique sidebar keys for duplicate skill categories (#26726)
teknium1 May 16, 2026
c5dc970
fix(windows): silence tirith-unavailable banner + skip install/spawn …
teknium1 May 16, 2026
ca413c6
fix(dashboard): align Ukrainian Kanban Ready column help
austinpickett May 16, 2026
965610f
fix(cli): tolerate unreadable dirs when building systemd PATH
austinpickett May 16, 2026
16ff946
Revert "fix(cli): tolerate unreadable dirs when building systemd PATH"
austinpickett May 16, 2026
e377833
Merge pull request #26711 from NousResearch/austin/fix/dashboard-kanban
austinpickett May 16, 2026
c9b32a6
feat(skill): darwinian-evolver optional skill
teknium1 May 16, 2026
53637fb
chore(skills/darwinian-evolver): AUTHOR_MAP + docs regen
teknium1 May 16, 2026
9c304a7
fix(agent): retry malformed anthropic stream parser errors
helix4u May 16, 2026
016c772
feat(plugins): tool override flag for replacing built-in tools (close…
teknium1 May 16, 2026
afb97db
docs: add Programmatic Integration overview (closes #360)
teknium1 May 16, 2026
559c6ad
feat(skills): add optional pinggy-tunnel skill
teknium1 May 16, 2026
70b6635
fix(tui): keep Ink displayCursor in sync with fast-echo writes so cur…
OutThisLife May 16, 2026
627f8a5
security: sanitize tool error strings before injecting into model con…
teknium1 May 16, 2026
74d0b39
feat(x_search): gated X (Twitter) search tool with OAuth-or-API-key a…
teknium1 May 16, 2026
c445f48
fix(delegation): honor api_mode + auto-detect anthropic_messages URLs…
teknium1 May 16, 2026
395e9dd
feat: add supports_parallel_tool_calls for MCP servers (#26825)
teknium1 May 16, 2026
6ba35ec
Inspired by Claude Code: tighten dangerous-command detection (#26829)
teknium1 May 16, 2026
d725407
security(deps): bump aiohttp, anthropic, cryptography to CVE-fixed ve…
teknium1 May 16, 2026
5f91b1a
feat(skills): add osint-investigation optional skill (closes #355) (#…
teknium1 May 16, 2026
d0a183c
fix(doctor): suppress stale direct-key issues when oauth is healthy
worlldz May 16, 2026
7bb97b9
chore: add worlldz to AUTHOR_MAP for #26704 salvage
kshitijk4poor May 16, 2026
4ded3ed
fix: detect gh-copilot deprecation and improve GitHub Models 413 erro…
konsisumer Apr 16, 2026
b85b938
test: add tests for copilot ACP deprecation detection and Azure URL m…
konsisumer Apr 16, 2026
374dc81
fix(copilot-acp): tighten deprecation detection + sharpen GitHub Mode…
teknium1 May 16, 2026
585d6b6
fix(gateway): merge rapid TEXT follow-ups during active sessions (#44…
teknium1 May 16, 2026
fcd9011
fix(security): separate OAuth PKCE state from code_verifier
shaun0927 Apr 16, 2026
345821b
style: move secrets import alongside other function-level imports
shaun0927 Apr 16, 2026
72f94f4
test(security): regression guard for OAuth PKCE state/verifier separa…
teknium1 May 16, 2026
a91a57f
chore: release v0.14.0 (2026.5.16) (#26862)
teknium1 May 16, 2026
f3a4af9
fix(acp): replay assistant reasoning as agent_thought_chunk on sessio…
kshitijk4poor May 16, 2026
3034eee
fix(acp): replay session history before responding to session/load (#…
kshitijk4poor May 16, 2026
6836987
docs(release): rewrite v0.14.0 highlights for excitement framing (#27…
teknium1 May 16, 2026
35f2552
docs(tools): add video_generate / video_gen toolset to user-facing to…
teknium1 May 16, 2026
6c2406c
fix(signal): read groupV2.id in envelope, fall back to legacy groupIn…
teknium1 May 16, 2026
8a2b2b9
docs(release): expand v0.14.0 highlights with newcomer-friendly conte…
teknium1 May 16, 2026
05af78c
fix(update): make Camofox lazy-installed instead of eager (#27055)
teknium1 May 16, 2026
c844d15
fix(update): stream npm install output so postinstall progress is vis…
briandevans May 2, 2026
fc03c95
feat(cli): add /exit --delete flag to remove session on quit (#27101)
teknium1 May 16, 2026
dc3d0fe
Port from cline/cline#10343: periodic gateway memory logging (#27102)
teknium1 May 16, 2026
93e109a
fix(moonshot): strip $ref siblings and collapse tuple items in tool s…
teknium1 May 16, 2026
fb05f5d
fix(mcp): validate remote URLs up-front with a clear error (#27105)
teknium1 May 16, 2026
dffb602
fix(xai): drop stale X Premium+ hint from entitlement 403 surfacing (…
teknium1 May 16, 2026
e51d74a
fix(codex): rotate pool on usage limit 429
Qwinty May 15, 2026
6f817e1
fix(telegram): restore DM topic typing indicator
helix4u May 16, 2026
226cee4
feat(cli): show ▶ N indicator in status bar when /background tasks ar…
teknium1 May 16, 2026
e21cb8d
feat(status): append session recap to /status output (#27176)
teknium1 May 16, 2026
2b19390
fix(xai): surface provider 'error' SSE frame in Codex fallback stream…
teknium1 May 17, 2026
33528b4
fix(agent): reset _fallback_index at turn start even when no fallback…
konsisumer May 6, 2026
29b1bd0
feat(cli): add `hermes send` to pipe script output to any messaging p…
teknium1 May 17, 2026
9b82586
fix(plugins): surface category-namespaced plugins in hermes plugins list
guillaumemeyer May 16, 2026
8ab8bc2
fix(plugins): remove unreachable hermes tools → Langfuse path
guillaumemeyer May 16, 2026
21be702
refactor(plugins): drop dead bundled-source guard in _discover_all_pl…
guillaumemeyer May 16, 2026
5cbe0b1
test(plugins): cover _discover_all_plugins recursion + cross-link loader
guillaumemeyer May 16, 2026
3b39096
Port from Kilo-Org/kilocode#9434: strip historical media after compre…
teknium1 May 17, 2026
885d124
refactor(run_agent): extract message sanitization to agent/message_sa…
teknium1 May 17, 2026
59f1c0f
refactor(run_agent): extract tool-dispatch helpers to agent/tool_disp…
teknium1 May 17, 2026
5f309ae
refactor(run_agent): extract OpenAI proxy, safe stdio, IterationBudget
teknium1 May 17, 2026
1f6eb17
refactor(run_agent): extract background memory/skill review to agent/…
teknium1 May 17, 2026
5311d99
refactor(run_agent): extract context compression to agent/conversatio…
teknium1 May 17, 2026
2d2cd5e
refactor(run_agent): extract system-prompt builder to agent/system_pr…
teknium1 May 17, 2026
7955921
refactor(run_agent): extract tool execution to agent/tool_executor.py
teknium1 May 17, 2026
57f6762
refactor(run_agent): extract stream diagnostics to agent/stream_diag.py
teknium1 May 17, 2026
4b25619
refactor(run_agent): extract chat-completion helpers to agent/chat_co…
teknium1 May 17, 2026
0430e71
refactor(run_agent): extract streaming API caller (893 LOC) to agent/…
teknium1 May 17, 2026
c42fa94
refactor(run_agent): extract Codex runtime + assorted helpers to dedi…
teknium1 May 17, 2026
d35ee7b
refactor(run_agent): move review prompts to agent/background_review.py
teknium1 May 17, 2026
0530252
refactor(run_agent): extract run_conversation to agent/conversation_l…
teknium1 May 17, 2026
9f40898
refactor(run_agent): extract __init__ (1,381 LOC) to agent/agent_init.py
teknium1 May 17, 2026
407a11b
feat(discord): allow_any_attachment config to accept arbitrary file t…
teknium1 May 17, 2026
a1e3d79
docs: add hermes-eval to Community section
Saurav0989 May 16, 2026
df80bda
docs: add Hermes MemPalace to Community plugins section
kjames2001 May 16, 2026
d5ce85c
docs: add computer-use-linux community MCP
avifenesh May 14, 2026
31a8058
docs(delegation): show api_mode override in custom-endpoint example
r266-tech May 16, 2026
86f3776
docs(delegation): document api_mode wire-protocol override from #26824
r266-tech May 16, 2026
6f7292a
docs(cron): document name-based job lookup from #26231
r266-tech May 15, 2026
49bd95c
docs(security): document YOLO mode visual indicators added in #26238
r266-tech May 15, 2026
c741eac
docs(spotify): document Home Assistant speaker routing
BROCCOLO1D May 17, 2026
903ac23
docs(dashboard): clarify chat tab tui flag
aqilaziz May 15, 2026
21078eb
fix(fallback): forward custom_providers to fallback model context-len…
PaTTeeL May 17, 2026
7244116
feat(agent): Added gemma 4 to reasoning allowlist
matthewlai May 13, 2026
96b7f3d
chore(release): AUTHOR_MAP entries for batch salvage contributors
teknium1 May 17, 2026
973f27e
fix(run_agent): isolate background review fork from external memory p…
teknium1 May 17, 2026
94c3e0a
refactor(run_agent): extract 10 more helpers to agent/agent_runtime_h…
teknium1 May 17, 2026
290bf93
fix(tui): harden Terminal.app render behavior
OutThisLife May 17, 2026
9b2d581
fix(cli): satisfy ruff encoding requirement in send_cmd
OutThisLife May 17, 2026
7e1788d
fix(tui): harden ansi sanitizers for dangling CSI
OutThisLife May 17, 2026
a65f723
fix(review): address Copilot follow-up on sanitizer and file decode e…
OutThisLife May 17, 2026
9f182bd
Merge pull request #27251 from NousResearch/bb/skin-render-magenta-bleed
OutThisLife May 17, 2026
32c3f06
docs(readme): remove hermes-eval and Hermes MemPalace from Community …
teknium1 May 17, 2026
4e9cedc
fix(gateway): add missing logger definition to prevent NameError in _…
0xchainer May 16, 2026
57feef3
test(gateway): add smoke test for logger init (regression guard for #…
0xchainer May 16, 2026
a81cfd0
chore(release): map 0xchainer and kronexoi emails for upcoming salvages
teknium1 May 17, 2026
6053188
fix: remove unused import and hoist module-level constant
0xchainer May 16, 2026
4b17c24
fix(skills): return None instead of truthy stub when skill load fails
0xchainer May 16, 2026
782d743
test(skills): add regression test for skill load failure returning None
0xchainer May 16, 2026
1eadb06
fix(kanban): --severity filter uses >= comparison per documented beha…
shellybotmoyer May 17, 2026
8d756a4
fix(run_agent): guard memory provider init against empty/whitespace s…
ether-btc May 15, 2026
7282ef1
fix: add paste collapse logging to aid debugging
LifeJiggy May 15, 2026
4279da4
fix(windows): make PowerShell installer parse in 5.1
nekwo May 15, 2026
7d09bb1
fix(delegate): tool_trace false-positive error detection for short ou…
flooryyyy May 15, 2026
508b022
feat(gateway): add .ts/.py/.sh to SUPPORTED_DOCUMENT_TYPES
dgians May 17, 2026
1a4e64b
fix(credential_pool): parse ISO-string last_status_at during from_dic…
shellybotmoyer May 17, 2026
5f72dd8
fix(install): use resolved python variable in setup_open_webui.sh
flanny7 May 16, 2026
9a9f8a6
fix(run_agent): detect kimi models via model name for reasoning pad
hermesagent26 May 17, 2026
773a0fa
fix(deepseek): set default_aux_model on profile so aux warning stops …
teknium1 May 17, 2026
e90a52d
chore(release): AUTHOR_MAP entries for batch salvage group 2 contribu…
teknium1 May 17, 2026
ea2ee51
fix(teams): fall back to default port on invalid port config
kronexoi May 16, 2026
e5f19af
feat(install.ps1): stage protocol + Windows clean-VM hardening pass
jquesnelle May 17, 2026
c0b64f0
fix(install.ps1): address Copilot review on #27224
jquesnelle May 17, 2026
3925be2
fix(install.ps1): trim completion banner + strip em-dash in test
teknium1 May 17, 2026
fb138d9
fix(install.ps1): Stage-Node honest reporting + reject empty -Stage
teknium1 May 17, 2026
4782379
refactor(run_agent): review fixes — keyword-forward __init__, drop de…
teknium1 May 17, 2026
8d4766a
fix(api_server): coerce stringified booleans in request payloads
Sylw3ster May 15, 2026
bde3c79
fix: preserve discover_models in _normalize_custom_provider_entry
darvsum May 16, 2026
75e5d0f
fix: strip image parts for non-vision models with provider profiles
hueilau May 17, 2026
5338250
fix(gateway): add direct_messages_topic_id for synthetic Telegram DM …
Timur00Kh May 16, 2026
8bf0945
fix(windows): suppress console window flash on subprocess spawns
Grogger May 16, 2026
6f50c26
fix(model-switch): probe /models for custom providers without api_key
lemassykoi May 17, 2026
6158964
feat: inject current time into goal judge prompt
draplater May 17, 2026
7a7e78a
fix(cron): prevent parallel job result loss on exception
pr7426 May 16, 2026
a52f014
fix(tests): mock keychain in TestReadClaudeCodeCredentials to prevent…
therahul-yo May 15, 2026
8973b00
fix(scripts): fix UnicodeEncodeError in footgun checker on Windows
flamiinngo May 17, 2026
04bb307
chore(release): AUTHOR_MAP entries for batch salvage group 3 contribu…
teknium1 May 17, 2026
c1ae18e
fix(gateway): add trust_env=True to aiohttp sessions in SMS, Slack, T…
EloquentBrush0x May 15, 2026
fdd455b
fix(gateway): avoid zsh status variable in update wrapper
subtract0 May 17, 2026
364a1dd
Local: doctor uses x-goog-api-key for Google generativelanguage endpoint
zwolniony May 17, 2026
a301750
fix(gateway): preserve underscores in plain-text identifiers
that-ambuj May 15, 2026
0afab4a
feat(gateway): extract auto-TTS markdown strip into prepare_tts_text(…
francip May 15, 2026
b389796
fix(auxiliary): resolve api_key_env alias in named custom provider pa…
zccyman May 13, 2026
5631345
[agent] fix: harden api server response headers
lidge-jun May 16, 2026
52c8971
fix: respect user-configured vision model for OpenRouter
phoenixshen May 17, 2026
35b7bef
fix(line): add trust_env=True to all _LineClient aiohttp sessions
AhmetArif0 May 15, 2026
7322816
chore(release): AUTHOR_MAP entries for batch salvage group 4 contribu…
teknium1 May 17, 2026
152d42d
Merge origin/main into pr-27248 (resolving run_agent.py = ours)
teknium1 May 17, 2026
8f3bc17
feat(agent): Added gemma 4 to reasoning allowlist
matthewlai May 13, 2026
94b3131
fix(run_agent): detect kimi models via model name for reasoning pad
hermesagent26 May 17, 2026
a77ca92
perf(run_agent): accumulate length-continuation prefix via list+join
teknium1 May 17, 2026
7d221aa
fix(langfuse): complete observability fix — port to extracted convers…
teknium1 May 17, 2026
b07524e
feat(xai-oauth): add xAI Grok OAuth (SuperGrok Subscription) provider…
teknium1 May 17, 2026
27df249
feat(nvidia): add NIM billing origin header — port to extracted modules
teknium1 May 17, 2026
6362e71
fix(xai-oauth): recover from prelude SSE errors, gate reasoning repla…
teknium1 May 17, 2026
408aa4f
port(refactor): deepseek thinking-mode (068c24f8a + cd9470f41) — no n…
teknium1 May 17, 2026
6975a2d
fix(xai-oauth): entitlement-403 chain — final state (ce0e189d3 + 9818…
teknium1 May 17, 2026
f885be0
fix(auxiliary): resolve xai oauth compression from pool — port to con…
teknium1 May 17, 2026
fe4c87e
fix(agent): retry malformed anthropic stream parser errors — port to …
teknium1 May 17, 2026
3fbedd7
feat: add supports_parallel_tool_calls for MCP servers (#26825) — por…
teknium1 May 17, 2026
df22d29
fix(copilot): GitHub Models 413 hint — port to extracted conversation…
teknium1 May 17, 2026
80fa92a
fix(codex): rotate pool on usage limit 429 — port to extracted modules
teknium1 May 17, 2026
aa05ffb
fix(xai): surface provider 'error' SSE frame in Codex fallback stream…
teknium1 May 17, 2026
4ab9a06
fix(agent): reset _fallback_index at turn start even when no fallback…
teknium1 May 17, 2026
b5bcffe
fix(fallback): forward custom_providers to fallback model context-len…
teknium1 May 17, 2026
4ece521
fix(run_agent): isolate background review fork from external memory p…
teknium1 May 17, 2026
36ad833
fix(run_agent): guard memory provider init against empty/whitespace s…
teknium1 May 17, 2026
563b4d9
fix: strip image parts for non-vision models with provider profiles +…
teknium1 May 17, 2026
56ad30d
Merge pull request #27248 from NousResearch/hermes/hermes-27dc9cc2
teknium1 May 17, 2026
519657a
fix(matrix): warn on clock-skew silent message drops (#12614) (#27330)
kshitijk4poor May 17, 2026
ad1aa1a
feat(x_search): auto-enable toolset when xAI OAuth or XAI_API_KEY is …
teknium1 May 17, 2026
a9ba636
fix(tools): run post_setup in _reconfigure_provider() for env-var pro…
EloquentBrush0x May 15, 2026
cc59880
chore(release): map EloquentBrush0x email for #26642 salvage
teknium1 May 17, 2026
ad00777
fix(mcp-oauth): print SSH tunnel hint in _redirect_handler
EloquentBrush0x May 16, 2026
5fba236
chore: ruff auto-fix PLR6201 resweep — tuple → set in membership test…
kshitijk4poor May 17, 2026
d87b27c
fix(gateway): add codex runtime telegram alias
YanzhongSu May 14, 2026
5a2a858
test(restart_drain): assert i18n catalog resolved (#22266)
haran2001 May 17, 2026
d9abbe7
fix(metadata): qwen3.6-plus has a 1M context window (#27008)
haran2001 May 17, 2026
3c51da1
fix(cli): sync _skill_commands after /reload-skills so Tab completion…
ms-alan May 17, 2026
6622277
fix ACP start events for polished tools
godlin-gh May 15, 2026
8e3cfdf
fix(webui): allow native text selection in chat via xterm.js bypass (…
wesleysimplicio May 17, 2026
aeda146
fix(security): honor shell hook blocks even when message/reason is ab…
flamiinngo May 17, 2026
6380596
fix(security): restore type safety and extract constant in shell hook…
flamiinngo May 17, 2026
dbeaaa4
refactor(security): extract _block_message helper to unify block logi…
flamiinngo May 17, 2026
c9298bb
fix(doctor): SSH check ignores TERMINAL_SSH_USER, TERMINAL_SSH_PORT, …
Carry00 May 16, 2026
1856bd9
fix(telegram): re-trigger typing indicator after sending messages
alaamohanad169-ship-it May 15, 2026
c02606a
chore(deps): lazy-install boto3/botocore for bedrock adapter
hawknewton May 17, 2026
150b577
chore(release): AUTHOR_MAP entries for batch salvage group 5 contribu…
teknium1 May 17, 2026
c6e6909
feat(browser): add BrowserProvider ABC mirroring web_search_provider …
kshitijk4poor May 14, 2026
b8138ac
feat(browser): browserbase plugin (spike — first migration)
kshitijk4poor May 14, 2026
a15cdfb
feat(browser): browser-use + firecrawl plugins; drop single-eligible …
kshitijk4poor May 14, 2026
40fde85
refactor(browser): dispatch _get_cloud_provider through agent.browser…
kshitijk4poor May 14, 2026
1b9c539
feat(tools): mirror image_gen plugin-injection in Browser Automation …
kshitijk4poor May 14, 2026
250caeb
refactor(browser): delete tools/browser_providers/ directory; migrate…
kshitijk4poor May 14, 2026
fec0a0d
test(plugins/browser): coverage for the 3-plugin migration
kshitijk4poor May 14, 2026
1bb6f03
fix(browser): ensure plugin discovery before registry lookup; parity …
kshitijk4poor May 14, 2026
c74ff2c
fix(browser): self-review pass — dead-import, log levels, future-proo…
kshitijk4poor May 14, 2026
f36c89c
fix(plugins/browser): carry forward requests.RequestException wrapping
teknium1 May 17, 2026
3b4dd68
fix(tui): align composer cursorLayout with wrap-ansi to kill multilin…
OutThisLife May 17, 2026
1c0e59e
review(tui): address Copilot feedback on cursorLayout wrap-ansi rewrite
OutThisLife May 17, 2026
55f13be
chore(nix): refresh ui-tui npmDeps hash for wrap-ansi dep addition
OutThisLife May 17, 2026
8c78f53
review(tui): route cursorLayout through @hermes/ink wrapAnsi shim (Bu…
OutThisLife May 17, 2026
220736f
chore(nix): refresh ui-tui npmDeps hash after wrap-ansi direct-dep drop
OutThisLife May 17, 2026
711f46e
review(tui): update stale comment refs to renamed visualLines helper
OutThisLife May 17, 2026
caac547
chore: revert unrelated package-lock + nix hash churn to keep PR diff…
OutThisLife May 17, 2026
e89d78f
fix(doctor): suppress stale XAI_API_KEY issue when xAI OAuth is healthy
EloquentBrush0x May 17, 2026
e10bb9d
fix(doctor): isolate per-provider OAuth imports to prevent fallback r…
EloquentBrush0x May 17, 2026
016893f
feat(status): show xAI OAuth login state in hermes status
EloquentBrush0x May 17, 2026
d0f551b
fix(doctor): show xAI OAuth login state in hermes doctor Auth Provide…
EloquentBrush0x May 17, 2026
37286a5
chore(release): map QuenVix, Mind-Dragon, soynchux emails for Tier 4 …
teknium1 May 17, 2026
d5a0815
fix(transports): use monotonic deadlines in codex app-server turn loop
QuenVix May 16, 2026
2f28b60
fix(send_message): preserve Slack and Matrix thread targets resolved …
QuenVix May 16, 2026
55d6a16
fix(agent): honor provider timeout config in streaming API calls
teknium1 May 17, 2026
4afd479
fix(gateway): use service restart path in Docker/Podman containers
bird May 13, 2026
714b3b2
fix(web_server): pass proxy_headers=False to uvicorn.run so the dashb…
davidcampbelldc May 17, 2026
74031e1
fix(dashboard): respect HERMES_BASE_PATH in WebSocket URLs (#25547)
wesleysimplicio May 17, 2026
3f01e94
chore(release): AUTHOR_MAP entries for batch salvage group 6 contribu…
teknium1 May 17, 2026
08a66b2
Merge pull request #27489 from NousResearch/bb/tui-composer-cursor-dr…
OutThisLife May 17, 2026
84667cb
fix(delegation): preserve configured_provider name when runtime retur…
Mind-Dragon May 16, 2026
874dad5
test(delegation): add regression test for runtime missing 'provider' key
Mind-Dragon May 16, 2026
280c63c
fix(mcp): prevent parallel-safe prefix collisions
soynchux May 16, 2026
ee7cd10
chore(release): map hehehe0803 email for #26212 salvage
teknium1 May 17, 2026
4a7cd2e
fix(codex): allow kanban worker board writes
hehehe0803 May 15, 2026
7847a58
fix(docker): preload messaging gateway deps
vaddisrinivas May 15, 2026
a2cc305
chore(release): map vaddisrinivas for #26394 salvage
teknium1 May 17, 2026
73df329
fix(doctor): flag missing credentials for active openrouter provider
worlldz May 15, 2026
1a82b7a
fix(tests): stabilize xai env and provider parity
aqilaziz May 15, 2026
bc7c608
fix(gateway): ignore inaccessible service path dirs
aqilaziz May 15, 2026
cb53c40
fix(xai-oauth): echo code_challenge in token POST so PKCE exchange su…
xxxigm May 16, 2026
e3f7ff1
test(xai-oauth): pin PKCE token-exchange wire format
xxxigm May 16, 2026
822e92e
fix(aux): default OpenRouter auxiliary to gemini-3-flash-preview
teknium1 May 17, 2026
e66a3e8
chore(acp): bump registry manifest to 0.14.0 matching pyproject
teknium1 May 17, 2026
06924e8
test(gateway): accept trust_env in fake aiohttp ClientSession lambdas
teknium1 May 17, 2026
dfc6ea7
test(gateway): include direct_messages_topic_id in telegram DM metada…
teknium1 May 17, 2026
f27416d
fix(cli): include send in _BUILTIN_SUBCOMMANDS for plugin discovery g…
teknium1 May 17, 2026
bfcab25
test(tools_config): align post_setup parametrize with current browser…
teknium1 May 17, 2026
0b491c4
fix(model_switch): preserve explicit custom-provider model list when …
teknium1 May 17, 2026
af7b38d
test(voice_cli): drop stale ≥1 requirement for force=True error _vpri…
teknium1 May 17, 2026
532b209
fix(run_agent): scope kimi tool-reasoning trigger to host, not model …
teknium1 May 17, 2026
2551f08
fix(schema_sanitizer): strip pattern/format from Responses-format too…
zccyman May 17, 2026
bdc2113
fix(xai): wire schema sanitizer into post-refactor build_api_kwargs
teknium1 May 17, 2026
04b4f76
fix(mcp): use module-level time so test patches do not race backgroun…
teknium1 May 17, 2026
1345dda
feat(kanban): orchestrator-driven auto-decomposition on triage (#27572)
teknium1 May 17, 2026
4c46c35
docs(messaging): clarify admin/user split and signal future gating (#…
teknium1 May 17, 2026
c905562
fix(auth): stop replaying invalid Nous refresh tokens
rewbs May 17, 2026
89a3d03
Switch to JWT token for inference against Nous, falling back to old o…
rewbs May 17, 2026
0bac7dd
refactor(auth): collapse Nous inference fallback controls
rewbs May 17, 2026
20bffa5
refactor(auth): mostly cleanups and style changes
rewbs May 17, 2026
569bc94
fix(auth) fix a few cases where refresh tokens were not rotated.
rewbs May 17, 2026
24c209f
fix(auxiliary): detect quota exhaustion as payment error; allow capac…
Bartok9 May 16, 2026
ec096cf
test(auxiliary): adapt eviction tests to capacity-error fallback
teknium1 May 17, 2026
a574246
feat(auxiliary): add configurable fallback chains + main-agent safety…
zccyman May 16, 2026
034110e
chore(release): map zccyman noreply email for #26998
teknium1 May 17, 2026
766f263
test(auxiliary): cover layered fallback (chain → main agent → warn)
teknium1 May 17, 2026
43e566f
docs(fallback): document layered auxiliary fallback ladder
teknium1 May 17, 2026
c1a3596
fix(gateway): clean stale PID file before O_EXCL write (#13511)
zccyman May 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
58 changes: 58 additions & 0 deletions .github/workflows/history-check.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
name: History Check

# Rejects PRs whose branch has no common ancestor with main.
#
# In May 2026 PR #25045 was merged from a branch that had been disconnected
# from main's history (likely an accidental `git checkout --orphan` or
# `.git/` re-init). GitHub's merge UI does not refuse merges of unrelated
# histories, so the PR landed cleanly with the intended one-file change —
# but its parent-less root commit (413990c94) got grafted into main as a
# second root, and ~1500 files' worth of `git blame` history collapsed
# onto that single commit.
#
# This check catches the failure mode by requiring `git merge-base` between
# the PR head and main to be non-empty.

on:
pull_request:
branches: [main]

permissions:
contents: read

jobs:
check-common-ancestor:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5 # v4
with:
fetch-depth: 0 # full history both sides for merge-base

- name: Reject PRs with no common ancestor on main
run: |
# `git merge-base` exits non-zero AND prints nothing when the two
# commits share no ancestor. We check both conditions explicitly
# so the failure message is clear regardless of which signal fires
# first.
if ! BASE=$(git merge-base origin/main HEAD 2>/dev/null) || [ -z "$BASE" ]; then
echo ""
echo "::error::This PR has no common ancestor with main."
echo ""
echo "Your branch's history is disconnected from main. Common causes:"
echo " - the branch was created with 'git checkout --orphan'"
echo " - '.git/' was re-initialized at some point during the work"
echo " - the branch was force-pushed from an unrelated repository"
echo ""
echo "Merging an unrelated-history PR grafts a parent-less root commit"
echo "into main and collapses git blame for every file in that snapshot."
echo "Reference: PR #25045 caused this and re-rooted blame on ~1500"
echo "files to a single orphan commit."
echo ""
echo "To fix, rebase your changes onto current main:"
echo " git fetch origin main"
echo " git checkout -b fix-branch origin/main"
echo " # re-apply your changes (cherry-pick, copy files, etc.)"
echo " git push -f origin fix-branch"
exit 1
fi
echo "::notice::Common ancestor with main: $BASE"
26 changes: 26 additions & 0 deletions .github/workflows/upload_to_pypi.yml
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,32 @@ jobs:
- name: Install uv
uses: astral-sh/setup-uv@d0cc045d04ccac9d8b7881df0226f9e82c39688e # v6

- name: Set up Node.js
uses: actions/setup-node@49933ea5288caeca8642d1e84afbd3f7d6820020 # v4
with:
node-version: '22'

- name: Build web dashboard
run: cd web && npm ci && npm run build

- name: Build TUI bundle
run: cd ui-tui && npm ci && npm run build

- name: Bundle TUI into hermes_cli
run: |
mkdir -p hermes_cli/tui_dist
cp ui-tui/dist/entry.js hermes_cli/tui_dist/entry.js

- name: Verify frontend assets exist
run: |
test -f hermes_cli/web_dist/index.html || { echo "ERROR: web_dist not built"; exit 1; }
test -f hermes_cli/tui_dist/entry.js || { echo "ERROR: tui_dist not built"; exit 1; }

- name: Bundle install.sh into wheel
run: |
mkdir -p hermes_cli/scripts
cp scripts/install.sh hermes_cli/scripts/install.sh

- name: Build wheel and sdist
run: uv build --sdist --wheel

Expand Down
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -70,3 +70,6 @@ mini-swe-agent/
result
website/static/api/skills-index.json
models-dev-upstream/
hermes_cli/tui_dist/*
hermes_cli/scripts/
docs/superpowers/*
18 changes: 10 additions & 8 deletions Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -66,17 +66,19 @@ RUN npm install --prefer-offline --no-audit && \
# frontend stats the readme path during dep resolution, so we `touch` an
# empty placeholder — the real README is restored by `COPY . .` below.
#
# `uv sync --frozen --no-install-project --extra all` installs only the
# deps reachable through the composite `[all]` extra (handpicked set
# intended for the production image). We do NOT use `--all-extras`:
# `uv sync --frozen --no-install-project --extra all --extra messaging`
# installs the deps reachable through the composite `[all]` extra
# (handpicked set intended for the production image), plus gateway
# messaging adapters that should work in the published image without a
# first-boot lazy install. We do NOT use `--all-extras`:
# that would pull in `[rl]` (atroposlib + tinker + torch + wandb from
# git), `[yc-bench]` (another git dep), and `[termux-all]` (Android
# redundancy), none of which belong in the published container.
#
# The editable link is created after the source copy below.
COPY pyproject.toml uv.lock ./
RUN touch ./README.md
RUN uv sync --frozen --no-install-project --extra all
RUN uv sync --frozen --no-install-project --extra all --extra messaging

# ---------- Source code ----------
# .dockerignore excludes node_modules, so the installs above survive.
Expand All @@ -94,10 +96,10 @@ RUN cd web && npm run build && \
# hermes_cli/main.py succeeds (see #18800). /opt/hermes/web is build-time
# only (HERMES_WEB_DIST points at hermes_cli/web_dist) and is intentionally
# not chowned here.
# The .venv MUST be hermes-writable so lazy_deps.py can install platform
# packages (discord.py, telegram, slack, etc.) at first gateway boot.
# Without this, `uv pip install` fails with EACCES and all messaging
# adapters silently fail to load. See tools/lazy_deps.py.
# The .venv MUST remain hermes-writable so lazy_deps.py can install
# remaining optional platform packages and future pin bumps at first use.
# Without this, `uv pip install` fails with EACCES and adapters silently
# fail to load. See tools/lazy_deps.py.
USER root
RUN chmod -R a+rX /opt/hermes && \
chown -R hermes:hermes /opt/hermes/.venv /opt/hermes/ui-tui /opt/hermes/node_modules
Expand Down
1 change: 1 addition & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -182,6 +182,7 @@ scripts/run_tests.sh
- 💬 [Discord](https://discord.gg/NousResearch)
- 📚 [Skills Hub](https://agentskills.io)
- 🐛 [Issues](https://github.com/NousResearch/hermes-agent/issues)
- 🔌 [computer-use-linux](https://github.com/avifenesh/computer-use-linux) — Linux desktop-control MCP server for Hermes and other MCP hosts, with AT-SPI accessibility trees, Wayland/X11 input, screenshots, and compositor window targeting.
- 🔌 [HermesClaw](https://github.com/AaronWong1999/hermesclaw) — Community WeChat bridge: Run Hermes Agent and OpenClaw on the same WeChat account.

---
Expand Down
Loading
Loading