Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
621 commits
Select commit Hold shift + click to select a range
c26af46
fix(skills): reject symlinks in skill bundles before install
MorAlekss May 26, 2026
cea87d9
fix(skills-hub): show every catalog source on /docs/skills (skills.sh…
teknium1 May 26, 2026
29c71e9
fix(docker): propagate container env through s6 to cont-init and main…
jonpol01 May 26, 2026
d8703e2
feat(skills-hub): health checks, freshness badge, and a watchdog cron…
teknium1 May 26, 2026
66851dc
chore: add krislidimo to AUTHOR_MAP for PR #29775 (#32434)
kshitijk4poor May 26, 2026
9d10c45
fix(telegram): tighten table row-group spacing and drop redundant fir…
krislidimo May 21, 2026
f4953bc
fix(subdirectory_hints): prevent loading AGENTS.md outside workspace
May 25, 2026
5744b17
harden: restrict markdown link schemes; parse untrusted XML with defu…
TheOnlyMika May 25, 2026
31c8d5f
chore(wecom): make defusedxml dep acquireable and tolerant of absence
teknium1 May 26, 2026
2517917
fix(cli): restore fallback paste collapse + handle long single-line p…
teknium1 May 26, 2026
8b69ec0
feat(mcp): Nous-approved MCP catalog with interactive picker (#30870)
teknium1 May 26, 2026
ccd3d04
chore(models): swap qwen3.6-plus → qwen3.7-max in openrouter+nous lis…
teknium1 May 26, 2026
5101326
fix(cron): clarify schedule is required for create in tool schema
ygd58 May 26, 2026
556bf7c
test(cron): guard schedule-required description text on CRONJOB_SCHEMA
teknium1 May 26, 2026
f05a473
fix(gateway): refresh cached agent tools on /reload-mcp
teknium1 May 26, 2026
bb4703c
docs(auth): replace stale 'hermes login' references with 'hermes auth…
teknium1 May 26, 2026
43a3f11
fix(agent): recover Codex streams with null output
carltonawong May 27, 2026
2a8d217
chore(release): map carltonawong noreply to GitHub login
teknium1 May 27, 2026
1e267c4
Merge pull request #29025 from slowtokki0409/codex/ignore-local-runti…
benbarclay May 27, 2026
16e86ce
chore(release): map wangpuv contributor email for #32933 (#33005)
teknium1 May 27, 2026
bba5097
fix: parse Codex image generation SSE directly
wangpuv May 27, 2026
840f79e
Merge pull request #31031 from Sunil123135/feat/windows-docker-desktop
benbarclay May 27, 2026
628aaea
Merge pull request #32412 from jonpol01/fix/docker-env-propagation
benbarclay May 27, 2026
7d94eee
Merge pull request #32122 from yu-xin-c/codex/docs-docker-audio-bridg…
benbarclay May 27, 2026
3c7f786
Merge pull request #31557 from yu-xin-c/codex/docs-xurl-docker-home-2…
benbarclay May 27, 2026
2fc77c5
feat(opencode-go): route qwen3.7-max via anthropic_messages
beardthelion May 26, 2026
0a83247
feat: add TUI session orchestrator
ticketclosed-wontfix May 17, 2026
9feadc2
chore(release): map ticketclosed-wontfix noreply to GitHub login
teknium1 May 27, 2026
81a4f28
Merge pull request #22534 from wesleysimplicio/fix/voice-mode-docker-…
benbarclay May 27, 2026
1e5884e
refactor(docker): drop build-essential from apt install (#27507)
benbarclay May 27, 2026
3d9a26a
Merge remote-tracking branch 'origin/main' into jq/hermes-update-bran…
jquesnelle May 27, 2026
9d3e931
Merge pull request #29591 from NousResearch/jq/hermes-update-branch-flag
jquesnelle May 27, 2026
b6ca56f
fix(codex-responses): gracefully recover from invalid_encrypted_conte…
teknium1 May 27, 2026
9eadb68
fix(docker): targeted chown to preserve host file ownership in HERMES…
benbarclay May 27, 2026
22eb4d1
fix(docker): chown ui-tui and node_modules on UID remap so TUI esbuil…
benbarclay May 27, 2026
27a29ee
feat(docker): upgrade Node to 22 LTS via multi-stage from node:22-boo…
benbarclay May 27, 2026
c3bdb2a
ci(docker): add shellcheck shell=sh directive to main-wrapper.sh
benbarclay May 27, 2026
fb298a9
fix(docker): mkdir HERMES_HOME as root in stage2 before chown / privi…
benbarclay May 27, 2026
cb38ce2
refactor(codex): drop SDK responses.stream() helper; consume events d…
teknium1 May 27, 2026
febc4cf
remove Vercel AI Gateway and Vercel Sandbox (#33067)
teknium1 May 27, 2026
25f43d3
feat(api-server): add GET /v1/skills and /v1/toolsets (#33016)
teknium1 May 27, 2026
9769794
feat(nix): add #messaging and #full package variants (#33108)
alt-glitch May 27, 2026
4243b6d
fix(codex): update silent-hang workaround hint
EvilHumphrey May 27, 2026
f0be322
chore(release): map EvilHumphrey noreply for #33034 salvage
teknium1 May 27, 2026
f7527b0
feat: add API server session controls
Codename-11 May 20, 2026
464b51d
Support media in session chat API
Schwartz10 May 22, 2026
9622326
chore(api-server): mark skills_api capability True now that /v1/skill…
teknium1 May 27, 2026
f0fdb5e
feat(catalog): add qwen3.7-max to alibaba + alibaba-coding-plan model…
orcool May 27, 2026
4920f84
test(codex): cover null output stream terminal events
superearn-fisher May 27, 2026
c752205
chore(release): map superearn-fisher noreply for #33122 salvage
teknium1 May 27, 2026
249534e
plugins: add security-guidance — pattern-matched warnings on dangerou…
teknium1 May 27, 2026
f2b479e
test(dashboard): pin current loopback auth behavior as regression har…
benbarclay May 21, 2026
8773bbf
feat(dashboard): add should_require_auth predicate for OAuth gate
benbarclay May 21, 2026
949ad95
feat(dashboard): stash auth_required flag on app.state
benbarclay May 21, 2026
2dc6d03
feat(dashboard-auth): define DashboardAuthProvider ABC + Session data…
benbarclay May 21, 2026
1bbfed7
test(dashboard-auth): cover registry register/get/list/clear semantics
benbarclay May 21, 2026
c32b17f
feat(plugins): add register_dashboard_auth_provider hook on PluginCon…
benbarclay May 21, 2026
865cae4
feat(dashboard-auth): json-lines audit log at $HERMES_HOME/logs/dashb…
benbarclay May 21, 2026
628a52f
test(dashboard-auth): stub auth provider for E2E gate testing
benbarclay May 21, 2026
a30c4d8
feat(dashboard-auth): cookie helpers for session_at/session_rt/pkce
benbarclay May 21, 2026
5b17eab
feat(dashboard-auth): auth gate middleware + /auth/* routes + /login …
benbarclay May 21, 2026
53736b3
feat(dashboard-auth): fail-closed on no providers; proxy_headers when…
benbarclay May 21, 2026
53999b9
docs(dashboard-auth): plan v2 — incorporate Portal OAuth contract (PR…
benbarclay May 21, 2026
848baeb
feat(dashboard-auth): plugins/dashboard_auth/nous — contract-complian…
benbarclay May 21, 2026
b69fce9
feat(dashboard-auth): single-use WS tickets + POST /api/auth/ws-ticket
benbarclay May 21, 2026
b2360ba
feat(dashboard-auth): _ws_auth_ok helper + ticket auth on all 4 WS en…
benbarclay May 21, 2026
8971e94
feat(dashboard-auth): SPA WS auth — getWsTicket() + buildWsAuthParam()
benbarclay May 21, 2026
5e9308b
feat(dashboard-auth): Phase 6 — 401 re-auth envelope + next= propagation
benbarclay May 21, 2026
2fc4615
feat(dashboard-auth): Phase 7 — SPA AuthWidget + /api/status auth fields
benbarclay May 21, 2026
7c9cdbc
docs(dashboard-auth): Phase 7 — OAuth Authentication section in web-d…
benbarclay May 21, 2026
af3d4a6
fix(dashboard-auth): ChatPage cleanup closes WS via wsRef.current
benbarclay May 21, 2026
b3dc539
feat(dashboard-auth): Nous plugin always-on; default portal URL; spec…
benbarclay May 21, 2026
4272977
fix(dashboard): trigger plugin discovery in cmd_dashboard before star…
benbarclay May 23, 2026
a498485
feat(dashboard-auth-nous): surface token iss/aud in verification-fail…
benbarclay May 23, 2026
c598076
test(dashboard-auth): strip HERMES_DASHBOARD_OAUTH_* env vars in herm…
benbarclay May 25, 2026
866cc98
fix(dashboard-auth): use fixed-length sig suffix in stub token framing
benbarclay May 25, 2026
c310419
fix(dashboard-auth): bypass loopback WS peer check in gated mode
benbarclay May 25, 2026
034ad95
fix(dashboard-auth): propagate next= through login page + PKCE cookie
benbarclay May 25, 2026
b26d81d
feat(dashboard-auth): honour X-Forwarded-Prefix + __Host-/__Secure- c…
benbarclay May 25, 2026
e2a92ce
chore: gitignore .hermes/ working directory; drop tracked plan artifact
benbarclay May 25, 2026
61dcc33
feat(dashboard-auth): config.yaml as canonical surface for dashboard.…
benbarclay May 26, 2026
0af37ff
style(dashboard-auth): redesign /login page to match Nous design system
benbarclay May 26, 2026
a890389
feat(dashboard-auth): HERMES_DASHBOARD_PUBLIC_URL / dashboard.public_…
benbarclay May 26, 2026
187cf0f
tools(terminal): nudge homebrewed CI pollers at the tool surface (#33…
teknium1 May 27, 2026
b1a46b3
fix(codex): drop transient rs_tmp reasoning replay state
kpadilha May 13, 2026
c819bc5
chore(release): map kpadilha noreply for #11038 salvage
teknium1 May 27, 2026
9c69204
fix(codex_responses_adapter): drop foreign-issuer reasoning on replay
chaconne67 May 27, 2026
581b021
chore(release): map chaconne67 noreply for #31629 salvage
teknium1 May 27, 2026
8807b1c
fix(gateway): hide telegram compaction status noise
sir-ad May 25, 2026
efa9525
fix: ignore Telegram start pings
rdasilva1016-ui May 23, 2026
60f84c6
gateway: quiet Telegram operational chatter
houenyang-momo May 23, 2026
2f7ba51
refactor(gateway): drop try/except wrappers around resolve_display_se…
teknium1 May 27, 2026
4feb181
chore(release): map sir-ad + rdasilva1016-ui in AUTHOR_MAP
teknium1 May 27, 2026
2bbd534
fix(cli): sync credential_pool on Codex re-auth
konsisumer May 27, 2026
f1422ff
fix(gateway): classify Codex 429 quota as rate-limit, not missing cre…
konsisumer May 27, 2026
0b6ace6
test(verbose): align with telegram tier-1 inbox default
teknium1 May 27, 2026
bb65beb
Merge pull request #30504 from ilonagaja509-glitch/fix/30394-docker-a…
benbarclay May 27, 2026
ea34925
fix(discord): recover Windows voice opus decoding
helix4u May 27, 2026
3e33e14
fix(docker): discover agent-browser Chromium binary at boot
benbarclay May 27, 2026
69dfcdc
fix(auth): codex chat path falls back to credential_pool when singlet…
teknium1 May 27, 2026
0325e18
fix(gateway): keep Telegram heartbeat + interim commentary on; edit h…
teknium1 May 27, 2026
a699de8
fix(xai-oauth): strip service_tier and add safety-net sanitization fo…
Nami4D May 19, 2026
b4eea18
fix(xai-oauth): gate slash-enum strip on model name + add regression …
teknium1 May 26, 2026
825948e
ci(docker): simplify tagging — push both :main and :latest on main push
ethernet8023 May 27, 2026
f0de3cd
fix(agent): roll back switch_model() state when client rebuild fails …
teknium1 May 27, 2026
458a94e
fix(cli): keep destructive slash modal on Linux
LeonSGP43 May 26, 2026
dd0d5d5
chore: add JohnC1009 to AUTHOR_MAP (#33351)
kshitijk4poor May 27, 2026
414a5bc
fix(auth): fall back to global auth.json in _load_provider_state
JohnC1009 May 25, 2026
2e18160
fix(agent): isolate credential pool on provider fallback
zccyman May 27, 2026
2e3c662
Add Honcho runtime peer mapping
mavrickdeveloper May 17, 2026
382b1fc
Cover Honcho runtime peer edge cases
mavrickdeveloper May 17, 2026
30b391a
Avoid Honcho runtime peer collisions
mavrickdeveloper May 17, 2026
00e6830
fix(honcho): inherit identity-mapping config in cloned profile blocks
erosika May 21, 2026
c03960d
fix(honcho): include user_id in agent cache signature to prevent shar…
erosika May 21, 2026
0bac880
feat(honcho-setup): add deployment-shape step to identity-mapping wizard
erosika May 21, 2026
3cf5e82
refactor(honcho): accept pinUserPeer as backwards-compatible alias fo…
erosika May 21, 2026
58987cb
docs(honcho): document identity-mapping config + resolver ladder + de…
erosika May 21, 2026
6feb2af
fix(honcho): plug pinPeerName transition gaps
erosika May 26, 2026
939499b
chore(honcho): trim PR-history narration from docs and tests
erosika May 26, 2026
1a8e670
fix(honcho): cover pinUserPeer + aiPeer edge cases in setup, clone, a…
erosika May 26, 2026
1800a1c
fix(honcho): align peer-card read and write paths
May 18, 2026
bcae3fc
fix(honcho): align user context peer perspective
May 11, 2026
c89393b
chore(honcho): trim peer-card fallback comment
erosika May 27, 2026
eccbbe4
chore(release): map adopted Honcho contributors
erosika May 27, 2026
9919caf
feat(image_gen): add Krea provider plugin (Krea 2 Medium + Large) (#3…
teknium1 May 27, 2026
486d632
fix(auxiliary): coerce None final.output to empty list in Codex aux a…
teknium1 May 27, 2026
283bb81
fix(agent): tolerate large codex stream prefill
sanghyuk-seo-nexcube May 27, 2026
3476509
chore(release): map sanghyuk-seo-nexcube for #33383 salvage
teknium1 May 27, 2026
dc9d677
fix(agent): classify TypeError('NoneType ... not iterable') as retrya…
Brixyy May 27, 2026
8386f84
chore(release): map Brixyy for #33136 salvage
teknium1 May 27, 2026
fc47b72
fix(codex): omit tools key from Codex Responses kwargs when no tools …
xxxigm May 27, 2026
c94ad89
fix(kanban): retry corrupt-board dispatch after quarantine
donovan-yohan May 27, 2026
5deb384
chore(release): map donovan-yohan for #33263 salvage
teknium1 May 27, 2026
e8955f2
fix(codex): drop dead model slugs that HTTP 400 on ChatGPT Pro (#33424)
teknium1 May 27, 2026
6f2a2f1
fix: check upstream even when origin/main has no new commits
francip Apr 3, 2026
53bdef5
test(cli): regression test for hermes update fork upstream sync (#26172)
kshitijk4poor May 27, 2026
a38e283
fix: preserve nested official skill install paths
wysie May 27, 2026
f040710
fix: backfill official optional skill provenance
wysie May 27, 2026
ee80dfd
fix: preserve skill packages during curator consolidation
wysie May 27, 2026
0537e26
fix(skills): atomic lock write + drop dead _validate_category_name
kshitijk4poor May 27, 2026
4efb40c
fix(install): set world-readable uv python dirs for root FHS layout
wesleysimplicio May 9, 2026
963d22c
test(install): harden uv-python-path regression test against future d…
kshitijk4poor May 27, 2026
6416dd5
fix(kanban): harden SQLite against torn-write corruption (secure_dele…
steveonjava May 23, 2026
5c49cd0
fix(state): never silently downgrade WAL to DELETE on transient EIO
steveonjava May 24, 2026
e83252d
fix(kanban): preserve original exception when write_txn rollback fails
steveonjava May 24, 2026
c002668
fix(kanban): add grace period to detect_crashed_workers
steveonjava May 24, 2026
99c19eb
fix(kanban): add post-commit page_count invariant check to write_txn
May 25, 2026
ffdc937
fix(kanban): hoist zombie reaper out of dispatch_once
steveonjava May 26, 2026
dc98314
fix(kanban): skip redundant WAL pragma on already-WAL connections
steveonjava May 26, 2026
2d5dcfa
test(kanban): update dispatcher tick counter for hoisted zombie reaper
kshitijk4poor May 27, 2026
36c99af
test(kanban): align two tests with recent kanban hardening
teknium1 May 28, 2026
0927fb5
feat(docker): auto-redirect `gateway run` to supervised mode inside s…
benbarclay May 28, 2026
912e6e2
fix(tui): suppress mouse-residue leaks during Python launcher startup…
OutThisLife May 28, 2026
b345323
fix(docker): tee supervised gateway stdout to docker logs
benbarclay May 28, 2026
aeb992d
fix(docker): drop `docker exec` to hermes uid before invoking the CLI
benbarclay May 28, 2026
71b4a6b
fix(docker): install python-is-python3 so bare `python` resolves in c…
teknium1 May 27, 2026
c341a2d
fix(docker): align HOME for dashboard and s6 gateway services (#33481)
Dusk1e May 28, 2026
c9410b3
feat(web): add collapsible sidebar for the dashboard (#33421)
austinpickett May 28, 2026
10f13c3
fix(web): allow mobile dashboard scrolling (#28051) (#28577)
wesleysimplicio May 28, 2026
6d947e4
feat(image_gen/fal): add Krea 2 Medium + Large to FAL catalog (#33506)
teknium1 May 28, 2026
ebe04c6
fix(kanban): close kanban.db FD after every connect() in long-lived p…
teknium1 May 28, 2026
66489f3
fix(docker): bake build-time git SHA into the image
benbarclay May 28, 2026
4a6f186
test: cover ci-unblocker production regressions
stephenschoettler May 28, 2026
b924b22
fix(docker): `hermes update` prints `docker pull` guidance instead of…
benbarclay May 28, 2026
875d930
test(docker-update): stub subprocess.run in git-install regression guard
benbarclay May 28, 2026
4e702fe
test(ci): harden two flaky tests against CI noise (#33675)
teknium1 May 28, 2026
3ad4693
docs(voice): use `uv pip install faster-whisper` in STT install hints…
briandevans May 28, 2026
90b6b3d
fix(kanban): harden sqlite connection concurrency
2rook-orchestrator May 26, 2026
3ba8962
fix(kanban): add Windows init lock guard
2rook-orchestrator May 26, 2026
7b778db
chore(release): map MoonRay305 contributor email for #32759 salvage
kshitijk4poor May 28, 2026
0bf9b86
fix(website): pin serialize-javascript and uuid via npm overrides
stephenschoettler May 28, 2026
406901b
feat(auth) normalise the way in which we check whether a user has fre…
rewbs May 25, 2026
1cf5e63
fix(auth): refresh Nous entitlement in tool menus
rewbs May 27, 2026
dc52b82
test(auth): update entitlement CI expectations
rewbs May 28, 2026
459d769
fix(agent): preload jiter native parser
helix4u May 28, 2026
442a920
Fix xAI OAuth timeout manual fallback
LeonSGP43 May 27, 2026
1a9ef83
fix(security): require API_SERVER_KEY before dispatching API server work
Dusk1e May 25, 2026
8595281
fix: expose context engine tools with saved toolsets
stephenschoettler May 23, 2026
87e5b2f
feat(mcp): support TLS client certificates (mTLS) for HTTP and SSE se…
teknium1 May 28, 2026
986abb3
docs: drop stale Kimi/DeepSeek vision example (#33736)
teknium1 May 28, 2026
43abc51
fix(security): require source CIDR allowlisting for public msgraph we…
Dusk1e May 25, 2026
09a5cd8
fix(auth): sync manual:device_code Codex pool entries on re-auth (#33…
teknium1 May 28, 2026
fb9f3a4
fix(skills): pull full ClawHub catalog into the skills index (200 → 2…
teknium1 May 28, 2026
9b5dae1
feat(context-engine): host contract for external context engines
teknium1 May 28, 2026
538f0fa
fix(kanban): wrap columns into rows and fix vertical overflow
vynxevainglory-ai May 20, 2026
70abae8
fix(kanban): show horizontal scrollbar instead of wrapping columns
teknium1 May 28, 2026
bb0ac5c
chore(release): AUTHOR_MAP entry for vynxevainglory-ai
teknium1 May 28, 2026
aa34660
fix(android): reject unsafe tar members in psutil compatibility insta…
Dusk1e May 25, 2026
4ed4825
fix(xai-proxy): handle 429 rate-limit responses in proxy retry path
sprmn24 May 19, 2026
c7f7783
test(xai-proxy): regression coverage for #28932 429 handling
teknium1 May 28, 2026
8b6beaa
docs: 30-day overhaul — correctness audit, PR coverage, Nous Portal w…
teknium1 May 28, 2026
031983b
fix: limit pre-update state snapshots
AdityaRajeshGadgil May 5, 2026
247b24b
chore(release): add AUTHOR_MAP entry for AdityaRajeshGadgil
teknium1 May 28, 2026
a91b1c8
fix(tirith): reject non-regular tar members during auto-install process
Dusk1e May 25, 2026
9179396
fix(stream-consumer): only set _final_content_delivered when final re…
indigokarasu May 28, 2026
b5495db
fix(agent): re-pad reasoning_content on cross-provider fallback to re…
bisko May 28, 2026
f8896de
chore(release): map biser@bisko.be -> bisko in AUTHOR_MAP
teknium1 May 28, 2026
10ee4a7
fix(gateway): drain on Windows `hermes gateway stop` so sessions surv…
teknium1 May 28, 2026
e9f3f2b
fix(tools): unescape common sequences in new_string when escape_norma…
liuhao1024 May 28, 2026
78be458
fix(patch): widen new_string \t/\r unescape to all match strategies (…
teknium1 May 28, 2026
432a691
fix(update): stream + idle-kill `npm run build` so a stalled webui-bu…
teknium1 May 28, 2026
6f9182c
fix(kanban): content-addressed corrupt-DB backup filename
teknium1 May 28, 2026
a1eaad2
perf(skills-page): lazy-fetch the catalog instead of bundling 34MB in…
teknium1 May 28, 2026
eafe11d
fix(gateway): backfill Discord thread context
Pluviobyte May 28, 2026
68ddd6b
refactor(discord): inline backfill gate and document intent
teknium1 May 28, 2026
b243afb
fix(discord): skip backfill for auto-created threads and update test …
teknium1 May 28, 2026
5e1f793
chore(web): remove web_crawl tool + provider crawl plumbing (#33824)
teknium1 May 28, 2026
e0572a6
fix(skills-hub): stop ellipsis-truncating the Identifier column (#33810)
teknium1 May 28, 2026
67011cc
feat(agent): buffer retry/fallback status, surface only on terminal f…
teknium1 May 28, 2026
c0d0469
docs(email): clarify gateway vs Himalaya setup
helix4u May 28, 2026
a82c88b
fix(xai-oauth): accept bare-code manual paste (state=None) (#26923) (…
kshitijk4poor May 28, 2026
0554ef1
fix(agent): fallback immediately on provider content-policy blocks (#…
kshitijk4poor May 28, 2026
e8b9369
feat(openrouter): pass session_id in extra_body for sticky routing
Cybourgeoisie May 28, 2026
1a74795
feat: add claude-opus-4.8 and claude-opus-4.8-fast (#34003)
kshitijk4poor May 28, 2026
0c859a1
chore: release v0.15.0 (2026.5.28) (#34008)
teknium1 May 28, 2026
fe5c8ec
fix(dashboard): auto-reload SPA on stale-token 401 in loopback mode (…
teknium1 May 28, 2026
c661fef
Merge remote-tracking branch 'origin/main' into refactor/use-ds-primi…
austinpickett May 28, 2026
b1d3ead
docs: tweak v0.15.0 release notes (#34037)
teknium1 May 28, 2026
102eb4a
fix(nix): update hermes-web npmDepsHash for bumped @nous-research/ui
austinpickett May 28, 2026
7050c05
fix(skills): pull full skills.sh catalog via sitemap (858 → 19,932) (…
teknium1 May 28, 2026
7a8589e
fix(gateway): default media-delivery validation to denylist-only, res…
teknium1 May 28, 2026
5f66c36
fix(redact): pass web URLs through unchanged (#34029)
teknium1 May 28, 2026
3a9bc9d
fix(model picker): unify /model and `hermes model` lists, add disk ca…
teknium1 May 28, 2026
f30db14
fix(kanban): SIGTERM on worker must terminate the process (#28181)
teknium1 May 28, 2026
5cbc3fb
fix(cli): /yolo in chat must enable session bypass, not just set env var
kshitijk4poor May 28, 2026
7a3c38d
fix: stop probe stepdown without provider context limit
May 28, 2026
c5e496e
chore: map yanghongda@jackyun.com -> yangguangjin in AUTHOR_MAP
teknium1 May 28, 2026
321ce94
test: update non-minimax overflow test to match new keep-context beha…
teknium1 May 28, 2026
490b3e7
feat(hindsight): default recall_types to observation only
nicoloboschi May 28, 2026
4df62d2
docs(hindsight): correct recall_types scope — tool path is also narrowed
kshitijk4poor May 28, 2026
ea5a6c2
ci(deploy): allow workflow_dispatch to also trigger Vercel deploy (#3…
teknium1 May 28, 2026
a3cd974
chore(web): bump @nous-research/ui to 0.18.2
austinpickett May 28, 2026
0acb7f4
fix(nix): update hermes-web npmDepsHash for @nous-research/ui 0.18.2
austinpickett May 28, 2026
5a95fb2
feat: expose completed-turn message context to memory providers
devwdave May 28, 2026
d464d08
chore: add devwdave to AUTHOR_MAP
kshitijk4poor May 28, 2026
11d9309
Merge pull request #34097 from kshitijk4poor/salvage/memori-trace-mes…
kshitijk4poor May 28, 2026
a5c1f92
fix(web): stop /api/auth/me 401 from triggering a reload loop
austinpickett May 28, 2026
130396c
ci(docker): avoid gha cache on arm64 PR builds
BROCCOLO1D May 28, 2026
ef009a9
docs(reference): document --no-supervise / HERMES_GATEWAY_NO_SUPERVIS…
r266-tech May 28, 2026
fb51253
docker: opt in to dashboard --insecure via env var, never derive from…
benbarclay May 28, 2026
e7c9965
fix(mcp): resolve bare npx/npm/node against /usr/local/bin
benbarclay May 28, 2026
78a54d2
fix(skills-page): source pills and category sidebar collapsed to All …
teknium1 May 29, 2026
f3acdd9
Merge pull request #30698 from NousResearch/refactor/use-ds-primitives
teknium1 May 29, 2026
1b1e305
test(docker): repair dashboard tests broken by the insecure-opt-in fix
benbarclay May 29, 2026
769ee86
feat(kanban): attach images referenced in task bodies to worker visio…
teknium1 May 29, 2026
e71a2bd
chore: release v0.15.1 (2026.5.29) (#34222)
teknium1 May 29, 2026
827f7f0
fix(packaging): ship bundled plugin.yaml manifests in wheel and sdist
teknium1 May 29, 2026
77a1650
chore: bump version to v0.15.2 (2026.5.29.2)
ethernet8023 May 29, 2026
926c647
Merge upstream NousResearch/hermes-agent v2026.5.29 into AmbulnzLLC fork
vigo-agent[bot] May 29, 2026
e47e6f1
Merge upstream NousResearch/hermes-agent v2026.5.29.2 into AmbulnzLLC…
vigo-agent[bot] Jun 2, 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
  •  
  •  
  •  
6 changes: 6 additions & 0 deletions .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,10 @@ node_modules
**/node_modules
.venv
**/.venv
.notebooklm-cli-venv/
.notebooklm-playwright/
.pip-cache/
.uv-cache/

# Built artifacts that are regenerated inside the image. Excluded so local
# rebuilds on the developer's machine don't invalidate the npm-install layer
Expand All @@ -25,6 +29,8 @@ ui-tui/packages/hermes-ink/dist/

# Runtime data (bind-mounted at /opt/data; must not leak into build context)
data/
.hermes-docker/
.notebooklm-home/

# Compose/profile runtime state (bind-mounted; avoid ownership/secret issues)
hermes-config/
Expand Down
7 changes: 5 additions & 2 deletions .github/actions/hermes-smoke-test/action.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,9 +29,13 @@ runs:
- name: hermes --help
shell: bash
run: |
# Use the image's real ENTRYPOINT (/init + main-wrapper.sh) so
# this exercises the actual production startup path. PR #30136
# review caught that an --entrypoint override here had been
# silently neutered by the s6-overlay migration — stage2-hook
# ignores its CMD args, so the smoke test was a no-op.
docker run --rm \
-v /tmp/hermes-test:/opt/data \
--entrypoint /opt/hermes/docker/entrypoint.sh \
"${{ inputs.image }}" --help

- name: hermes dashboard --help
Expand All @@ -43,5 +47,4 @@ runs:
# installed package.
docker run --rm \
-v /tmp/hermes-test:/opt/data \
--entrypoint /opt/hermes/docker/entrypoint.sh \
"${{ inputs.image }}" dashboard --help
26 changes: 17 additions & 9 deletions .github/workflows/deploy-site.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,12 @@ concurrency:

jobs:
deploy-vercel:
if: github.event_name == 'release'
# Triggered automatically on release publish (production cuts) and
# manually via `gh workflow run deploy-site.yml` when an out-of-band
# main commit needs to ship live before the next release tag — e.g.
# a skills-index PR that doesn't touch website/** paths and so
# doesn't auto-deploy via the deploy-docs path.
if: github.event_name == 'release' || github.event_name == 'workflow_dispatch'
runs-on: ubuntu-latest
steps:
- name: Trigger Vercel Deploy
Expand Down Expand Up @@ -50,20 +55,23 @@ jobs:
- name: Install PyYAML for skill extraction
run: pip install pyyaml==6.0.2 httpx==0.28.1

- name: Build skills index (unified multi-source catalog)
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
# Always rebuild — the file isn't committed (gitignored), so a
# fresh checkout starts without it and we want the freshest crawl
# in every deploy. Failure is non-fatal: extract-skills.py will
# fall back to the legacy snapshot cache and the Skills Hub page
# still renders, just without the latest community catalog.
python3 scripts/build_skills_index.py || echo "Skills index build failed (non-fatal)"

- name: Extract skill metadata for dashboard
run: python3 website/scripts/extract-skills.py

- name: Regenerate per-skill docs pages + catalogs
run: python3 website/scripts/generate-skill-docs.py

- name: Build skills index (if not already present)
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: |
if [ ! -f website/static/api/skills-index.json ]; then
python3 scripts/build_skills_index.py || echo "Skills index build failed (non-fatal)"
fi

- name: Install dependencies
run: npm ci
working-directory: website
Expand Down
68 changes: 68 additions & 0 deletions .github/workflows/docker-lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,68 @@
name: Docker / shell lint

# Lints the container build inputs: Dockerfile (via hadolint) and any shell
# scripts under docker/ (via shellcheck). These catch the class of regression
# the behavioral docker-publish smoke test can't — unquoted variable
# expansions, silently-failing RUN commands, etc.
#
# Rules and ignores are documented in .hadolint.yaml at the repo root.
# shellcheck severity is pinned to `error` so SC1091-style "can't follow
# sourced script" info-level warnings don't fail the job — the .venv
# activate script doesn't exist at lint time.

on:
push:
branches: [main]
paths:
- Dockerfile
- docker/**
- .hadolint.yaml
- .github/workflows/docker-lint.yml
pull_request:
branches: [main]
paths:
- Dockerfile
- docker/**
- .hadolint.yaml
- .github/workflows/docker-lint.yml

permissions:
contents: read

concurrency:
group: docker-lint-${{ github.ref }}
cancel-in-progress: true

jobs:
hadolint:
name: Lint Dockerfile (hadolint)
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- name: Checkout code
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: hadolint
uses: hadolint/hadolint-action@54c9adbab1582c2ef04b2016b760714a4bfde3cf # v3.1.0
with:
dockerfile: Dockerfile
config: .hadolint.yaml
failure-threshold: warning

shellcheck:
name: Lint docker/ shell scripts (shellcheck)
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- name: Checkout code
uses: actions/checkout@de0fac2e4500dabe0009e67214ff5f5447ce83dd # v6.0.2

- name: shellcheck
uses: ludeeus/action-shellcheck@00cae500b08a931fb5698e11e79bfbd38e612a38 # v2.0.0
env:
# Severity = error: SC1091 (can't follow sourced script) is info-
# level and would otherwise fail when the venv activate script
# doesn't exist at lint time.
SHELLCHECK_OPTS: --severity=error
with:
scandir: ./docker
Loading
Loading