Commit Graph

34825 Commits

Author SHA1 Message Date
teknium1 dfc28b61a0 chore(contributors): map catalog submitter email to GitHub login 2026-09-14 19:38:14 -07:00
teknium1 d53c629785 chore(contributors): map maintainer noreply email 2026-09-14 19:38:14 -07:00
dongxu0413 603bc6ed44 feat(plugins): add Octen web provider catalog entry 2026-09-14 19:38:14 -07:00
teknium1 110baa095b chore(contributors): map catalog submitter email(s) to GitHub login 2026-09-14 19:27:57 -07:00
MartinLeclercq 50551b24fa feat(plugin-catalog): add metamask-wallet community entry
MetaMask Agent Wallet for Hermes, pinned at v0.4.0 (b56d6bb): chat-only setup, reads,
approval-gated transfers/swaps/signatures, gated Guard Mode policy editor, background 2FA
watcher. Keys stay in MetaMask (server-wallet TEE or BYOK). 11 tools, 2 hooks, no env vars.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
2026-09-14 19:27:57 -07:00
teknium1 a9eb8b5efb chore(contributors): map catalog submitter email(s) to GitHub login 2026-09-14 19:27:27 -07:00
Nacho b0bc5f54ad plugin-catalog: pin hermes-live-voice to v0.2.1 (5f0022b) — audit fixes for the review in that repo's issue #1 2026-09-14 19:27:27 -07:00
Nacho 268c83dfed Update pin (quota UX) 2026-09-14 19:27:27 -07:00
Nacho 0dee630108 Update pin (barge-in hotfix) 2026-09-14 19:27:27 -07:00
Nacho 543fd29a8a Update pin (barge-in) 2026-09-14 19:27:27 -07:00
Nacho 86ab52310f Update pin (voice indicator cleanup) 2026-09-14 19:27:27 -07:00
Nacho ae20ae725d Update pin (self-contained vendored fallback) 2026-09-14 19:27:27 -07:00
Nacho ad862495a1 Update pin (mute/connect fix) 2026-09-14 19:27:27 -07:00
Nacho ae6e572074 Update pin to v0.2.0 (delegation hardening + voice UX) 2026-09-14 19:27:27 -07:00
Synero 913ce5b64a feat(plugin-catalog): add hermes-live-voice (community) 2026-09-14 19:27:27 -07:00
teknium1 1b9cb18359 chore(contributors): map catalog submitter email(s) to GitHub login 2026-09-14 19:26:54 -07:00
Tony Simons b415a18153 plugin catalog: bump hermes-newswire pin (authorship fix rebased history) 2026-09-14 19:26:54 -07:00
Tony Simons cd14f06dbf plugin catalog: add community plugin hermes-newswire
Breaking-news ticker for Hermes Desktop (RSS/Atom/JSON-Feed strip above
the statusbar; feed search + discovery; per-source favicons; grouping
modes; offline cache; in-app reading; zero API keys / model tokens).
Owner-submitted. Validated: 'hermes plugins validate' 10/10 checks;
102-test suite + ESM render smoke. Pinned 10ea9ba (repo published today —
2-week pin-maturity window flagged in the PR body for maintainer call).
2026-09-14 19:26:54 -07:00
teknium1 d16765a4b4 chore(contributors): map catalog submitter email(s) to GitHub login 2026-09-14 19:26:23 -07:00
poponline63 144942734e Add hermes-pets-all to the plugin catalog 2026-09-14 19:26:23 -07:00
Jeffrey Quesnelle d08032655f Merge pull request #111423 from NousResearch/feat/local-engine-update-prompt
feat(local-models): prefer b10964 and add one-click engine updates
2026-09-14 22:25:46 -04:00
Vocllum a982d2c882 feat(plugin-catalog): add hermes-auto-titler (community) 2026-09-14 19:13:48 -07:00
emozilla c89b1d1318 test(desktop): complete SDK gateway routing mock 2026-09-14 22:12:53 -04:00
emozilla de5a1da632 feat(desktop): add one-click local engine updates 2026-09-14 21:49:14 -04:00
emozilla e9e363c856 feat(local-runtime): prefer llama.cpp b10964 2026-09-14 21:49:13 -04:00
teknium1 2179a279ae fix(desktop): dragging a link from a browser attaches an @url chip
Dropping a link out of a browser onto the Desktop composer toasted
"Drop files — Could not attach <title>.url" and attached nothing. A browser
link drag carries `text/uri-list` plus, on Windows, a virtual `<title>.url`
shortcut File (`.webloc` on macOS) that has no on-disk path. The drop
pipeline only understood Files and in-app paths: the path-less stub went to
the upload branch, `attachContextFilePath('')` returned false, and the user
had to copy/paste the URL instead.

`extractDroppedFiles` now reads `text/uri-list`, drops the path-less
shortcut stub when a link is present, and emits `{ url }` entries;
`droppedFileInlineRef` turns them into the same `@url:` chip the "+ → Add
URL" dialog and paste-linkify produce, so every drop surface (composer
form, text box, conversation area, edit composer) gets it for free.
`dragHasAttachments` accepts `text/uri-list` so the form-level enter/over
handlers claim the drag at all. A path-less *image* dragged off a web page
keeps its bytes and wins over the link to its own src.
2026-09-14 18:06:05 -07:00
teknium1 9326d9cdc4 fix(bot-mode): show the current thread and newest unresolved failure
Attribute drive-level errors to the thread being drained, not the send
that created the queue. Reinsert repeat member failures in recency order
so the collapsed activity row cannot show an older sibling failure.

Cover both invariants and the repeated-refusal sequence in native Desktop.
Thanks to @kvnloo for identifying both review findings.
2026-09-14 17:35:04 -07:00
teknium1 3040c87ac1 fix(bot-mode): do not retry failures from already queued sends
Keep failed-member exclusion across the room queue, rather than resetting
it per pending thread. A new user action after failure still permits a new
attempt. Share the drain activity epoch so a skipped queued thread cannot
hide the preceding member failure.

Proven red in real Electron: hold transport refusal, enqueue same-thread
and cross-thread sends, then release; old head submits three times, fixed
head once. Strengthen follow-up evidence with distinct provider replies,
exact public log order/count, and per-input inference counts.
2026-09-14 17:35:04 -07:00
teknium1 92a65be069 chore: keep Desktop version bump scoped to its package 2026-09-14 17:35:04 -07:00
teknium1 e80642df60 fix(bot-mode): keep group follow-ups ordered and late answers visible
Serialize room drives through their actual member completion, freeze input
watermarks by retained entry identity, and share the same completion path
with handoff continuations. Stop discards queued work without releasing an
active owner early; rename follows the existing room binding.

Observe stranded replies for the hard-cap duration plus grace after the
foreground wait, and retain unresolved failures in collapsed Activity.
Never automatically retry an ambiguous failed submit within the same drive.

Adapted from the queue and boundary approach in #92041 by @enwaiax and
harvest-budget approach in #107193 by @Finn763; #106502 by @wadib identified
failed-submit watermark consumption. The implementation retains current
numeric watermark storage, room lifecycle bindings and serial round limits.

Related: #92003, #105247, #100026
2026-09-14 17:35:04 -07:00
Teknium 9975fd56be Merge pull request #111320 from NousResearch/docs/plugin-catalog-no-self-update
Plugin catalog: no self-updaters instead of a 2-week pin age, enforced in CI
2026-09-14 17:34:43 -07:00
teknium1 42602bd12a docs(computer-use): skill matches the driver's current vocabulary
The skill described a SOM overlay burned into the screenshot, a driver-side
`capture` tool, and manual symlinking of the cua-driver skill pack; users
who read the driver's own docs then called raw MCP tools (`capture`,
bare `element_index`) and hit "no reviewed risk classification" and
`snapshot_id_required`. State plainly that `computer_use(action=...)` is a
wrapper vocabulary the driver never sees, that `element=N` is translated to
the snapshot token, what a `stale` refusal means, how text-only models get
vision (auxiliary.vision routing / mode=ax), and the Windows WindowsApps
doctor failure. `cua-driver skills install` links into ~/.hermes/skills now.
2026-09-14 17:34:31 -07:00
teknium1 a4d474777f fix(computer-use): doctor diagnoses a denied cua-driver spawn instead of crashing
On Windows the Hermes venv interpreter cannot CreateProcess a binary under
C:\Program Files\WindowsApps (WinError 5) even though the shell resolves it,
so `hermes computer-use doctor` died with a raw PermissionError traceback
from _open_mcp. Catch the spawn OSError and print what failed, why the tool
may still work (PATH resolves another copy), and the fix (reinstall outside
WindowsApps or HERMES_CUA_DRIVER_CMD), exit 2.
2026-09-14 17:34:31 -07:00
teknium1 45da78d645 test(computer-use): element click carries the token from the live schema alone
Invariant through the real click() path on the modern tools/list shape
(no capabilities[] array, element_token only in inputSchema); red on main.
2026-09-14 17:34:31 -07:00
Jeff J Hunter 65625dfe87 fix(computer_use): attach element_token when the driver schema accepts it
cua-driver 0.21 refuses a bare element_index:

    click: bare element_index is not accepted; pass element_token,
    or snapshot_id together with element_index

_maybe_attach_element_token gated solely on the trycua/cua#1961 capability
vocabulary. 0.21 stopped publishing per-tool capability sets — every tool
reports an empty set — while still accepting element_token in its input
schema. The gate therefore fails closed on 0.21.x and we send the bare
index, so the driver rejects the call.

The effect is total: every element-targeted click is refused, leaving
agents with only blind pixel coordinates. Observed against cua-driver
0.21.0 on X11, where a capture returned 762 elements with 762 tokens
cached and every subsequent click still failed with snapshot_id_required.

Check the live input schema first — supports_input_property() already
exists for exactly this, and its docstring notes it "deliberately inspects
tools/list rather than ... requiring a capability token the driver never
shipped". The capability check is retained as a fallback so drivers that
did ship the vocabulary are unaffected.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-09-14 17:34:31 -07:00
Adolanium 9a6eb21a88 fix(catalog): pin hermes-tailscale without self-updater 2026-09-14 17:32:15 -07:00
Adolanium 3bec474211 feat(catalog): add hermes-tailscale community plugin 2026-09-14 17:32:15 -07:00
Adolanium d4dbac6dc4 fix(catalog): pin hermes-ssh without self-updater 2026-09-14 17:31:46 -07:00
Adolanium cb84ee770f feat(catalog): add hermes-ssh community plugin 2026-09-14 17:31:46 -07:00
teknium1 8f7853188f fix(cron): keep deferred delivery exceptions from aborting ticks
Catch unexpected delivery exceptions after claim, retain diagnostics and continue
sibling admissions without authorizing replay. Preserve indefinite retention.

Reproduced PermissionError at target traversal after discovery. Native Electron
controlled-fault A/B confirms the healthy sibling settles and renders once.
2026-09-14 17:29:32 -07:00
teknium1 002ee41cfc fix(cron): keep unowned Bot Chat delivery on its resolved home
Extend deferred dispatch's destination pin to ordinary CLI fallback, so
custom-root and active-profile changes cannot redirect a checked target.
Refuse a missing destination before launch and name the target on failure.
Replace the old env-clearing expectation with two behavioral invariants
and retain the native Electron custom-root reproduction.

Adapted from the root-boundary fix and diagnosis in #104066.
Related #104055, #104066.

Co-authored-by: fangliquanflq <fangliquan@qq.com>
2026-09-14 17:29:32 -07:00
teknium1 3b0fe0cc2b fix(cron): keep deferred Bot Chat delivery bound to admission
Carry the original destination home and delivery ID into deferred drain and
its child, rather than re-resolving a mutable profile/root. Missing destinations
fail closed; supported-owner handoffs remain transferred, not ambiguous failures.
Capture the producer root before the background thread starts, and retain/log
malformed JSON without stopping healthy admissions or the whole cron tick.

Two invariants reproduced failures on the published head. Real Electron root
change and malformed-record cases are red before and green after; nested DM
control remains passing. No automatic retry of claimed or uncertain turns.
2026-09-14 17:29:32 -07:00
teknium1 6af84ead60 test(cron): retain native Bot Chat delivery reproduction 2026-09-14 17:29:32 -07:00
teknium1 5d8390d1a4 fix(cron): retain Bot Chat output while a CLI owner is open
Keep never-started output behind unsupported owners and drain in admission
order after release. Persist claims before execution and never replay uncertain
started turns. Existing supported-owner receipts keep their authority.

Credits 686f6c61's residual queue proposal in #100319. This is a scoped
implementation, not general retry of failed CLI subprocesses.

Native Electron before/after: CLI-owned target previously returned
SESSION_NOT_OWNED and remained empty after release/tick; now its queued
output and reply appear once in the target Bot Chat. Nested quiet CLI
message_agent delivery to a named Desktop owner also passes on base.
2026-09-14 17:29:32 -07:00
Adolanium e7bd70d92a feat(catalog): add shodan community plugin 2026-09-14 17:29:03 -07:00
Adolanium b5b8df57b7 fix(catalog): pin hermes-terminal without self-updater 2026-09-14 17:28:30 -07:00
Adolanium 0491ae8101 feat(catalog): add hermes-terminal community plugin 2026-09-14 17:28:30 -07:00
Adolanium 4b8e183912 feat(catalog): add hermes-rss community plugin 2026-09-14 17:27:59 -07:00
Adolanium 010ebe4736 fix(catalog): pin read-only Resetwatch package without updater 2026-09-14 17:27:30 -07:00
Adolanium 55fe7f6340 catalog: pin Resetwatch DeepSeek weekday pricing fix 2026-09-14 17:27:30 -07:00