Commit Graph

790 Commits

Author SHA1 Message Date
Tilly-YL 2952119bce fix(desktop): remember selected profile across restarts
The profile rail's live workspace switch never persisted the selection,
so the Desktop always booted back into the previous startup profile
(#79886). Route the successful primary-backend activation through a new
persistence-only hermes:profile:remember IPC (validated
writeActiveDesktopProfile) that records the choice WITHOUT tearing down
the backend or reloading the window like hermes:profile:set does.
Registry-source picks name another source's profiles and do not touch
the startup preference. Reapplied semantically over three weeks of
main.ts/preload.ts drift (selectProfile now routes through
activateOnCurrentSource, #91349/#91365 seams).

Fixes #79886
Salvaged from #79888.
2026-08-26 00:22:27 -07:00
Teknium e0210ab6c9 chore: contributor email mappings for salvage class-4 2026-08-26 00:21:49 -07:00
LovePlayCode 1808d33a24 fix(desktop): keep owner-routed tile gateways out of idle prune
Bot chats stay on a secondary while chrome stays on the launch profile.
The keep-set only counted busy sessions, so idle prune closed the tile
socket and resume spun forever. Keep open tiles, route catalog reads to
the owner, and hydrate model/provider from resume.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-26 00:21:29 -07:00
Teknium 708b24513d chore: map contributor email for jwtor7 2026-08-25 23:33:46 -07:00
Teknium a7e1410faf chore: map Kavyrocom attribution 2026-08-25 23:15:49 -07:00
Teknium 2664599644 test(gateway): prove the profile_route_rejected sentinel is observable
Review follow-up for the salvaged #94848: the ProfileRouteRejected marker
looked write-only inside the primary handler. Document that
_handle_message's ingress gate reads the same marker to drop the message
fail-closed, and add a regression test showing the rejected route is
stamped once, dispatch falls back to the default home, and routing is not
re-run on redelivery.
2026-08-25 23:15:15 -07:00
Teknium 1f78750280 chore: add contributor email mappings for salvaged PRs 2026-08-25 22:51:31 -07:00
Teknium ad1d159bfb chore: map kgparadzayi attribution 2026-08-25 21:59:38 -07:00
Teknium a5fbf9a171 chore: map contributor email for hermias1 2026-08-25 21:59:23 -07:00
MagMueller 648361e788 chore: map contributor email 2026-08-25 16:25:37 -07:00
Teknium 95668f5eab fix(mcp): Atlassian catalog entry no longer 404s + Grafana defensive curation
- atlassian: /v1/sse was deprecated by Atlassian after June 30 2026 —
  installs OAuth'd fine then failed every handshake with 404 (#91538).
  Now points at /v1/mcp/authv2, the endpoint Atlassian's docs recommend
  for custom clients (live-probed: OAuth 2.1 + DCR intact).
- grafana (on top of @cedricziel's #93183 entry): defensive
  default_excluded for ask_assistant (opaque Assistant delegation
  meta-tool, bills usage) and agento11y_* (Grafana's own agent-obs
  product suite) — both from Grafana's published tool tables, both
  no-ops until the Cloud surface serves them; billing note added to
  post_install.
2026-08-25 14:49:40 -07:00
Krzysztof Radzikowski 36f1423411 fix(update): gateway-only concurrent instances no longer abort hermes update (#37039)
On Windows, the pre-update concurrent-instance gate aborted with exit 2
whenever ANY other process held the venv hermes.exe shim — including the
gateway itself, which _pause_windows_gateways_for_update() stops moments
later and the post-update restart phase brings back. Users with a running
gateway were forced into a manual taskkill dance before every update.

The gate now filters gateway runtimes out of the abort list and proceeds
when nothing else is concurrent. Classification delegates to
_is_pausable_gateway -> gateway.status.looks_like_gateway_command_line
(the canonical shlex-tokenized, profile-selector-aware matcher shared by
the Desktop preflight exemption and the venv-holder guard fallback), so
the gate's exemption and the pause machinery cannot drift apart. Anything
not positively identified as a gateway — REPLs, dashboard, Desktop
backend children, gateway MANAGEMENT commands like 'gateway status',
unreadable cmdlines — still aborts exactly as before, and the abort
message now lists only the PIDs that are actually the user's problem.

Surgical reapply of PR #37039 by @damadorPL onto current main (the gate
moved from hermes_cli/main.py to hermes_cli/update_cmd.py in the main.py
decomposition); his substring classifier was replaced with the canonical
matcher, which also fixes the 'hermes gateway status' misclassification
flagged in review.

Co-authored-by: Hermes <hermes@nousresearch.com>
2026-08-25 14:48:51 -07:00
Jeffrey Quesnelle 5b82658b3c Merge pull request #90129 from rroverin/fix/nvidia-nim-tool-message-name-field
fix(providers): strip name/tool_name from NVIDIA NIM tool messages
2026-08-25 16:39:36 -04:00
Teknium 52bcfb47de chore: map contributor email for attribution gate 2026-08-25 12:09:08 -07:00
Teknium 0268c0b8c0 chore: map 2ndNatureAI attribution 2026-08-25 02:31:34 -07:00
kshitijk4poor e5032945cb chore: map contributor email for salvage attribution
Map macd@google.com (Mark McDonald, @markmcd) so the contributor
attribution check passes for the salvage of PR #94522.
2026-08-25 13:14:30 +05:30
Teknium 760d3af0d7 chore: map contributor email for salvage attribution 2026-08-25 00:31:14 -07:00
Leegenux 6ce7ab8bfb feat(browser): make snapshot threshold configurable 2026-08-24 21:51:44 -07:00
Nathan Shan d934bbd4d5 fix(agent): race Codex IPv6 and IPv4 connections
- Add RFC 8305-style staggered address attempts for synchronous ChatGPT Codex requests.
- Share the keepalive client builder across primary and auxiliary model paths.
- Cover blackholed IPv6 fallback, provider scoping, and existing proxy and TLS behavior.
2026-08-24 21:46:05 -07:00
Vignesh Ramesh a0795acc83 fix(codex): identify Hermes requests 2026-08-24 11:25:04 -07:00
kshitijk4poor 446423d96e fix(approval): fail closed when the deadline import is unavailable; log clamp engagement
Review round (#86412):
- the except-import fallback returned the RAW oversized value, re-opening
  the exact macOS time_t overflow this fix prevents; it now fails closed
  to a finite ~1-year cap matching agent.deadline.MAX_SAFE_TIMEOUT_S
- clamp engagement logs a WARNING so operators see the semantic change
- new tests: float-form oversized value (YAML 1e18), warning emission,
  and the import-failure fail-closed path (blocked-import probe proving
  the result stays Lock.acquire-safe)
2026-08-24 16:18:45 +05:30
kshitij 6e534df114 Merge pull request #93773 from kshitijk4poor/fix/codex-sdk-transform-bypass-93650-v2
fix: route codex payloads around the SDK's GIL-holding request transform (#93650)
2026-08-24 16:11:18 +05:30
Fabiao De Gongniu 97850afa33 fix(hindsight): send configured event timestamps
Use Hermes timezone-aware timestamps for retained events and turn messages. Pass the public timestamp field supported by hindsight-client 0.6.1 and cover the final serialized request field.
2026-08-24 03:23:52 -07:00
Teknium f28718c331 chore: map contributor email for shanthans-es 2026-08-24 03:20:46 -07:00
Teknium 8eba0d2fd6 chore: map dougatbuck contributor email 2026-08-24 03:19:47 -07:00
Teknium 94af11a920 chore: map contributor email for jeremyrandria-debug 2026-08-24 03:14:24 -07:00
kshitijk4poor 9857bcba5c fix: widen secure_parent_dir to skip entire install tree
Replace hardcoded /opt/hermes check with dynamic install-tree detection
using Path(__file__).resolve().parent. This catches ALL install paths
(Docker /opt/hermes, apt /usr/local/lib/hermes-agent, git clone, custom)
instead of just the Docker image path. Also covers subdirectories of the
install tree, not just the top-level dir.

Add regression test test_install_tree_skipped to verify both the install
root and subdirectories are excluded from chmod.

Add contributor email mapping for bradmarshall987.

Follow-up to PR #93050 by @bradmarshall987.
2026-08-24 15:42:09 +05:30
kshitijk4poor ee924a1bc5 chore: add cycorld to AUTHOR_MAP for PR #92189 salvage 2026-08-24 15:30:11 +05:30
kshitijk4poor f14f62d91b chore: AUTHOR_MAP for kchernev (PR #93681 salvage) 2026-08-24 15:29:46 +05:30
Ben Barclay 9a91f7058c Merge remote-tracking branch 'origin/main' into fix/pkce-samesite-none-salvage 2026-08-24 16:48:06 +10:00
quexiaolong 7e67f64fce fix(desktop): bots group chat sends message on IME composition Enter
macOS Chinese pinyin IME: pressing Enter to confirm a candidate word in
the group-chat composer submitted the draft as a message mid-composition.
The GroupMentionInput onKeyDown checked only `event.key === 'Enter' &&
!event.shiftKey` with no IME guard, unlike the core composer which guards
isComposing + keyCode 229 (#44135).

Add the same guard to the three Enter handlers in the bots plugin:
- GroupMentionInput (group composer + reply box) — the reported bug
- GroupClarifyCard free-text answer input — same premature-submit
- skill-hub search input — same premature-trigger

Closes #93528
2026-08-23 23:33:33 -07:00
Teknium 03662dca77 chore(release): map KHALIDagara contributor email 2026-08-23 21:12:26 -07:00
Teknium 95af45419f chore: map beplee contributor email for attribution gate 2026-08-23 21:12:20 -07:00
Teknium fdff700dc2 chore: map e-macgregor contributor email 2026-08-23 19:55:17 -07:00
Teknium ea25bf204d chore: map contributor email for cxxCoolStar 2026-08-23 19:02:30 -07:00
Teknium 74e483d326 chore: add contributor email mapping for jackijianxa 2026-08-23 19:00:36 -07:00
Teknium ca226b5e06 chore: map contributor emails for ring-2 salvage (A2chitect, c-pompa) 2026-08-23 18:58:40 -07:00
Teknium 9ab056d4e8 chore: map wingkwong contributor email 2026-08-23 18:27:32 -07:00
Teknium 83bb0f1b40 chore: map UniversePeak contributor email 2026-08-23 18:27:15 -07:00
aniruddhaadak80 ac83bb0667 chore: map contributor email aniruddhaadak80@gmail.com 2026-08-23 18:27:07 -07:00
Teknium 4bc31a435b chore: map Aintworth contributor email 2026-08-23 18:27:04 -07:00
Teknium 31ade5da7b chore: add contributor email mappings for salvage 2026-08-23 18:25:42 -07:00
Teknium 63b42d3070 chore: add contributor email mappings for salvage 2026-08-23 18:25:35 -07:00
Teknium 0c713049ef chore: add contributor email mapping for zgqq 2026-08-23 18:10:31 -07:00
Teknium c94ee2e06f chore: add contributor email mappings for arcimun and KeaneYan 2026-08-23 18:01:59 -07:00
Artur Hapantsou b34edd6b01 fix: execute_code and argv-list payloads no longer bypass the gateway lifecycle guard (#68289)
execute_code lacked the lifecycle guard entirely, and Python argv-list
forms (subprocess.run([...])) separated command words with brackets and
commas the shell-shaped pattern could not see. Mirror the terminal_tool
guard in execute_code (ownership-gated per #92560) and strip argv-list
punctuation in the token-join re-scan. Salvaged from PR #68289 by
@arcimun, adapted to the ownership gate and current guard structure.
2026-08-23 18:01:59 -07:00
Teknium ca8a598787 chore: add contributor email mapping for 03farren 2026-08-23 17:56:36 -07:00
Teknium fa63c3e1c2 chore: add contributor email mapping for acewong7 2026-08-23 17:54:20 -07:00
Teknium ec169b4885 chore: add contributor email mapping for eaglezzz0522-cloud 2026-08-23 17:50:48 -07:00
Teknium 778c384120 chore: map JinUltimate1995 contributor email 2026-08-23 17:47:50 -07:00