Skip to content

fix(sec): patch vulnerable deps + add publication-age floors and npm script allow-list - #75037

Merged
ethernet8023 merged 26 commits into
mainfrom
sec-fixes
Jul 31, 2026
Merged

ethernet8023 merged 26 commits into
mainfrom
sec-fixes

Conversation

@ethernet8023

@ethernet8023 ethernet8023 commented Jul 30, 2026

Copy link
Copy Markdown
Collaborator

What does this PR do?

Supply-chain / vulnerability sweep across both dependency trees, plus two structural guardrails so the same drift doesn't creep back in.

Two halves:

1. Patch the known-vulnerable pins. Python deps bumped to the fixed releases (Pillow, mcp, pygments, pynacl, pyasn1, pydantic-settings, pytest, msgpack, httplib2, cbor2, tornado, setuptools), npm deps updated to clear npm audit.

2. Shrink the window a new compromise has to land in. A malicious package version is usually yanked within days of publication, so the highest-leverage defence is not installing anything that was published in the last two weeks:

  • .npmrc gets min-release-age=14
  • pyproject.toml [tool.uv] gets exclude-newer = "14 days"

Both carry explicit, commented escape hatches for the packages that genuinely need a fresher release (either because they ship a vuln fix that is itself younger than 14 days, or because they release constantly — @assistant-ui/*, @radix-ui/*). Every exclusion says when to remove it.

Also adds allowScripts to the root package.json, so npm lifecycle scripts run only for the handful of packages that legitimately need them (esbuild, node-pty, electron, electron-winstaller, agent-browser) and are denied everywhere else — that's the exact execution path the recent worm campaigns used.

This follows the existing pinning policy in AGENTS.md ("Dependency Pinning Policy") and extends it from version ceilings to publication age + script execution.

Related Issue

N/A — proactive supply-chain hardening, no single issue.

Type of Change

  • 🔒 Security fix

Changes Made

Publication-age floors (new)

  • .npmrc — new file: min-release-age=14 with per-package, individually commented exclusions
  • pyproject.toml[tool.uv] exclude-newer = "14 days", with exclude-newer-package opting out vercel / nemo-relay
  • uv.lock — regenerated under the new constraint

Install-time script execution

  • package.jsonallowScripts allow-list; everything not named is denied

Python dependency bumps (pyproject.toml, uv.lock, tools/lazy_deps.py)

  • Pillow 12.2.0 → 12.3.0 (kept in sync in tools/lazy_deps.py::tool.vision)
  • mcp 1.26.0 → 1.28.1 ([mcp], [computer-use], [dev], and tools/lazy_deps.py::tool.computer_use)
  • setuptools → 83.0.0, incl. [build-system] requires (torch >= 2.13 requires 83)
  • pytest 9.0.2 → 9.1.1, pygments → 2.20.0, pyasn1 → 0.6.4, pydantic-settings → 2.14.2, msgpack → 1.2.1, httplib2 → 0.32.0, cbor2 → 6.1.3, tornado → 6.5.7
  • pynacl → 1.6.2 via [tool.uv] override-dependenciesdiscord.py 2.7.1 pins pynacl<1.6 and 1.5.0 is vulnerable; upstream has the fix on main but no release yet, so we force the override with a comment to drop it after the next discord.py release

npm dependency bumps

  • exact version pins across every workspace package.json (apps/desktop, apps/bootstrap-installer, apps/shared, ui-tui, ui-tui/packages/hermes-ink, web, tests-js, root) — no more caret ranges
  • brace-expansion forced to 5.0.8 via root overrides
  • package-lock.json regenerated

Toolchain

  • nix/hermes-agent.nix + flake.lock — nodejs 22 → 26, nixpkgs bumped
  • eslint.config.shared.mjs — drop eslint-plugin-react (its rules are already covered by react-hooks + the TS config; it was blocking the eslint 10 upgrade that carries the vuln fix). Call-site churn across apps/desktop/src/** is the resulting lint autofix.
  • tests/tools/test_computer_use.py — follows the mcp version bump

How to Test

  1. npm ci && npm audit — clean
  2. uv lock --check — lock matches pyproject.toml under the new exclude-newer
  3. nix develop -c scripts/run_tests.sh — Python suite green
  4. nix develop -c npm run check — typecheck + lint + JS tests green
  5. Sanity-check the guardrails actually bite: adding a dep published today should be refused by both npm install and uv lock unless it's on an exclusion list.

Checklist

Code

  • I've read the Contributing Guide
  • My commit messages follow Conventional Commits
  • I searched for existing PRs to make sure this isn't a duplicate
  • My PR contains only changes related to this fix/feature
  • I've run the test suite and all tests pass
  • I've added tests for my changes — N/A, this is a dependency/config change; the existing suites are the regression surface
  • I've tested on my platform: NixOS (Linux 7.1.0)

Documentation & Housekeeping

  • I've updated relevant documentation — N/A; AGENTS.md's Dependency Pinning Policy still describes the pinning rules correctly. Happy to add a short "publication-age floor" paragraph there if reviewers want it documented.
  • I've updated cli-config.yaml.example if I added/changed config keys — N/A
  • I've updated CONTRIBUTING.md / AGENTS.md — see above
  • I've considered cross-platform impact — .npmrc / [tool.uv] are platform-neutral; exclude-newer-package explicitly opts out the platform-gated nemo-relay and vercel so non-Linux resolution isn't broken
  • I've updated tool descriptions/schemas — N/A

Notes for the reviewer

The exclusion lists in .npmrc are deliberately verbose — one comment per entry stating the reason and the removal condition — because an undocumented exclusion is how a 14-day floor quietly becomes a 0-day floor. Please push back on any entry whose justification looks weak.

closes:

closes #72683
closes #72108
closes #50901
closes #43997
closes #68736
closes #73426
closes #50902
closes #51471
closes #60201
closes #73222
closes #69711
closes #68973
closes #63942
closes #73474
closes #73219
closes #72587
closes #73476
closes #73475
closes #72878
closes #69864
closes #73662
closes #73857
closes #66871
closes #63099
closes #68648
closes #65150
closes #68961
closes #65345
closes #61248
closes #70003
closes #51305
closes #54424
closes #50052
closes #47998

Issues that remain open and are NOT fixed here

  • #60841 — the specific versions it names are fixed, but its actual complaint is structural: pip-audit --fix is transient because the next uv sync reverts to uv.lock. That's a workflow bug, untouched by this PR.
  • #59998hermes update reports success while leaving vulnerable deps installed. Needs a post-update CVE signal; out of scope here.
  • #5197 / #45041 / #46738 — recurring audit automation, Dependency Review gate, OSV coverage for bridge lockfiles. This PR fixes today's advisories; it does not stop tomorrow's from landing silently.
  • #51212 / #51292 — container base-image CVEs. Different layer entirely.

Contributor attribution

This PR consolidates work from 24 contributors across the superseded PRs listed above.
Please use the block below verbatim in the squash-merge commit message so
each of them keeps authorship in git history.

Co-authored-by: Kingsley Wong <7207924+datanerdie@users.noreply.github.com>
Co-authored-by: viky <vikyw89@gmail.com>
Co-authored-by: FT_IOxCS <237263164+ft-ioxcs@users.noreply.github.com>
Co-authored-by: 方明元 <fmy3@qq.com>
Co-authored-by: Yorkstone Supplies <58149681+sycamoregroupltd@users.noreply.github.com>
Co-authored-by: Steven Cuz Leath <Steven.Leath@gmail.com>
Co-authored-by: Kyle French <248366920+Dadmin88@users.noreply.github.com>
Co-authored-by: Eugeniusz Gilewski <egilewski@egilewski.com>
Co-authored-by: Christopher Gara <79837758+christopherrobin88@users.noreply.github.com>
Co-authored-by: LironTTG <147833337+LironTTG@users.noreply.github.com>
Co-authored-by: Austin Porada <bbasketballer75@gmail.com>
Co-authored-by: cresslank <9219265+cresslank@users.noreply.github.com>
Co-authored-by: Ion Mudreac <mudreac@gmail.com>
Co-authored-by: martinramos002 <262243228+martinramos002-bot@users.noreply.github.com>
Co-authored-by: Sensie-Agents <agents@joinsensie.com>
Co-authored-by: alexwill87 <173086651+alexwill87@users.noreply.github.com>
Co-authored-by: BullishMomentum56 <218643122+BullishMomentum56@users.noreply.github.com>
Co-authored-by: pintadoai <240097310+pintadoai@users.noreply.github.com>
Co-authored-by: Alfred Sahlberg <dinmail@gmail.com>
Co-authored-by: liuhao1024 <sunsky.lau@gmail.com>
Co-authored-by: Richard Ham <richard.ham@live.com>
Co-authored-by: jrcrittenden <jrcrittenden@gmail.com>
Co-authored-by: 峯岸 亮 <1920071390@campus.ouj.ac.jp>
Co-authored-by: Marcus Martini <6473852+napoleonmm83@users.noreply.github.com>

Notes on how this list was built:

contributors/emails/ mappings added

scripts/contributor_audit.py resolves Co-authored-by trailers through
contributors/emails/, so a plain-email co-author with no mapping drops out
of the generated release notes. Nine mappings were missing and are added in
this PR:

email login
vikyw89@gmail.com vikyw89
fmy3@qq.com superafun
Steven.Leath@gmail.com Leathal1
bbasketballer75@gmail.com bbasketballer75
mudreac@gmail.com mudrii
agents@joinsensie.com Sensie-agents
dinmail@gmail.com sahlbergalfred4-lgtm
richard.ham@live.com zebadee2kk
jrcrittenden@gmail.com jrcrittenden

egilewski@egilewski.com, sunsky.lau@gmail.com and
1920071390@campus.ouj.ac.jp were already mapped. Every other co-author uses
a GitHub id+login noreply address, which auto-resolves and needs no file.
tests/scripts/test_contributor_map.py passes (7/7).

Newly added to the closes: list

Deliberately NOT closed: #28749

#28749 (@jrcrittenden)
gates release age at hermes update time for installed users via
security.minimum_release_age_days. This PR only puts a floor on installs
from the repo. The two are orthogonal — repo-side floor plus user-side gate —
and #28749 should stay open and land on its own. Its author is credited above
because the idea overlaps, not because this supersedes it.

@ethernet8023
ethernet8023 requested a review from a team July 30, 2026 21:14
@github-actions

github-actions Bot commented Jul 30, 2026

Copy link
Copy Markdown
Contributor

૮ >ﻌ< ა ci review

ran on bc49e98

ℹ️ Info

CI-sensitive file review · View job

PR touches sensitive files, but the ci-reviewed label has been added, approving them.

Sensitive files changed:


Desktop E2E visual evidence · View test artifacts · View job

2 visual diffs.

inline evidence is publishing...

@alt-glitch alt-glitch added type/bug Something isn't working P3 Low — cosmetic, nice to have comp/desktop Electron desktop app (apps/desktop/*) area/config Config system, migrations, profiles area/install-update Installer, updater, packaging, wheels, doctor area/nix Nix flake, NixOS module, container packaging dependencies Pull requests that update a dependency file needs-decision Awaiting maintainer decision before any implementation sweeper:risk-compatibility Sweeper risk: may break existing users, config, migrations, defaults, or upgrades labels Jul 30, 2026
@ethernet8023
ethernet8023 force-pushed the sec-fixes branch 2 times, most recently from 15b9fdd to f1978a3 Compare July 30, 2026 22:57
@ethernet8023 ethernet8023 added the ci-reviewed applied to manually approve dangerous changes label Jul 30, 2026
@ethernet8023
ethernet8023 force-pushed the sec-fixes branch 4 times, most recently from e645731 to f2532ae Compare July 31, 2026 01:36
cbor2 5.8.0 has a known vulnerability PYSEC-2026-2123

it's fixed in >= 5.9.0
httplib2 0.31.0 has a known vulnerability PYSEC-2026-3444

it's fixed in >= 0.32.0
@ethernet8023
ethernet8023 force-pushed the sec-fixes branch 2 times, most recently from 58f4998 to 536e09f Compare July 31, 2026 02:07
teknium1
teknium1 previously approved these changes Jul 31, 2026

@teknium1 teknium1 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed the full diff (72 files, 23 commits) plus CI. This is exactly the direction we want: it extends the AGENTS.md Dependency Pinning Policy from version ceilings to publication age + install-script execution, which addresses the actual mechanics of the recent worm campaigns rather than just today's advisory list.

What I checked:

  • Python pins — all 12 bumps land on the fixed releases; mcp kept in sync across [mcp], [computer-use], [dev], tools/lazy_deps.py, and the test_computer_use.py fixture. The pynacl 1.6.2 override-dependencies escape hatch for discord.py's <1.6 pin is the right call and clearly commented for removal after the next discord.py release.
  • Age floors.npmrc min-release-age=14 + [tool.uv] exclude-newer = "14 days", with every exclusion individually commented with its removal condition. That per-entry "remove when X is >2wks old" discipline is what keeps a 14-day floor from silently decaying to 0 — appreciated.
  • allowScripts — allow-list covers exactly the packages that legitimately need lifecycle scripts (esbuild, node-pty, electron, electron-winstaller, agent-browser, fsevents; core-js on the website side). This closes the install-script execution path outright.
  • CI — full 48-check matrix green: uv lock --check, both Docker builds, every JS workspace check, Python suite, Desktop E2E. Mergeable against current main despite the fast-moving base.

Minor notes (non-blocking):

  1. Commit d670c89a00 says "update mcp to 1.29.0" but the final state consistently pins 1.28.1 — cosmetic, the tree is self-consistent.
  2. The nodejs 22→26 nix bump and the eslint-plugin-react removal widen the blast radius beyond pure pin bumps, but both are load-bearing (eslint 10 carries the vuln fix; the plugin was blocking it) and the resulting lint churn is mechanical autofix, verified by the green desktop/web check jobs.
  3. The "NOT fixed here" section at the bottom is genuinely useful triage — #60841's uv sync revert problem and #59998's post-update CVE signal are real follow-ups worth their own PRs.

This supersedes a cluster of open dupes (#50902, #51471, #72878, #73703, #48816) — we'll close those with credit once this lands.

Approving. Thanks Ari — this is thorough, well-documented work.

mcp 1.26.0 has 3 known vulnerabilities: PYSEC-2026-3481,
PYSEC-2026-3482, PYSEC-2026-3483

they're fixed in >= 1.28.1
msgpack 1.1.2 has 1 known vulnerability: GHSA-6v7p-g79w-8964

it's fixed in >= 1.2.1
pillow 12.2.0 has 26 known vulnerabilities:

GHSA-45hq-cxwh-f6vc
GHSA-4x4j-2g7c-83w6
GHSA-5x94-69rx-g8h2
GHSA-62p4-gmf7-7g93
GHSA-6r8x-57c9-28j4
GHSA-8v84-f9pq-wr9x
GHSA-9hw9-ch79-4vh6
GHSA-fj7v-r99m-22gq
GHSA-jjj6-mw9f-p565
GHSA-pg7v-jwj7-p798
GHSA-phj9-mv4w-65pm
GHSA-vjc4-5qp5-m44j
GHSA-xj96-63gp-2gmr
PYSEC-2026-2253
PYSEC-2026-2254
PYSEC-2026-2255
PYSEC-2026-2256
PYSEC-2026-2257
PYSEC-2026-3451
PYSEC-2026-3452
PYSEC-2026-3453
PYSEC-2026-3454
PYSEC-2026-3493
PYSEC-2026-3494
PYSEC-2026-3495
PYSEC-2026-3496

they're fixed in >= 12.3.0
pyasn1 0.6.3 has 5 known vulnerabilities:

GHSA-8ppf-4f7h-5ppj
GHSA-hm4w-wwcw-mr6r
PYSEC-2026-3455
PYSEC-2026-3456
PYSEC-2026-3457

they're fixed in >= 0.6.4
The repo's .npmrc sets engine-strict=true and package.json pins
engines.npm, so an npm outside that range aborts every npm ci /
npm install we run inside the checkout:

    npm error code EBADENGINE
    npm error notsup Required: {"npm":"<11.10.0 || >=12.0.0"}
    npm error notsup Actual:   {"npm":"11.10.0"}

Our callers made that worse: _run_npm_install_deterministic sees
`npm ci` fail and falls through to `npm install`, which fails
identically, so the user got a buried EBADENGINE and no remedy.

React to the failure instead of predicting it. npm states the
required range in its own error, so there is no need for a version
probe on the happy path or a semver range matcher — the recovery
reads the constraint out of the output it just produced, upgrades,
and retries once.

Scope is deliberately narrow. Hermes only upgrades an npm inside its
own managed Node tree ($HERMES_HOME/node), installing with --prefix
so bin/npm keeps resolving to the upgraded lib/node_modules/npm; a
managed install writes prefix=~/.local into node/etc/npmrc, so
without the override the "upgrade" would land elsewhere while the
managed npm stayed stale. A system / nvm / brew / Nix npm belongs to
the user, so that case prints the exact command and lets the original
failure stand.

The upgrade runs from a temp cwd with npm_config_min_release_age=0,
otherwise the checkout's own min-release-age gate would refuse the
npm release we need.

_run_npm_install_deterministic's capture_output=False callers (the
desktop install) streamed npm output and returned stderr=None, which
would leave the recovery nothing to read — stderr is now teed, so
live output is unchanged and the text stays inspectable.

Verified end to end against real npm binaries on copies of a managed
tree: managed npm 11.10.0 -> EBADENGINE -> upgraded to 12.0.2 ->
retry exits 0; a foreign npm 11.10.0 hard-fails with the manual
command and is left untouched.
@ethernet8023

Copy link
Copy Markdown
Collaborator Author

updated to fix the mcp commit message, and added an important feature to HA to ensure the version of NPM we use can work with the publication-age floor.

scripts/contributor_audit.py resolves Co-authored-by trailers through
contributors/emails/, so a co-author with a plain (non-noreply) email and
no mapping file silently drops out of the generated release notes.

This PR consolidates ~30 open dependency/supply-chain PRs and credits their
authors as co-authors on the merge commit. Nine of those emails had no
mapping. Added via scripts/add_contributor.py, one file per email:

  vikyw89@gmail.com          -> vikyw89              (#50902)
  fmy3@qq.com                -> superafun            (#60201)
  Steven.Leath@gmail.com     -> Leathal1             (#69711)
  bbasketballer75@gmail.com  -> bbasketballer75      (#69864, #73857)
  mudreac@gmail.com          -> mudrii               (#66871, #63099)
  agents@joinsensie.com      -> Sensie-agents        (#65150)
  dinmail@gmail.com          -> sahlbergalfred4-lgtm (#70003)
  richard.ham@live.com       -> zebadee2kk           (#50052)
  jrcrittenden@gmail.com     -> jrcrittenden         (#28749)

egilewski@egilewski.com, sunsky.lau@gmail.com and 1920071390@campus.ouj.ac.jp
were already mapped. Every other co-author uses a GitHub id+login noreply
address, which auto-resolves and needs no file.

tests/scripts/test_contributor_map.py passes.
@ethernet8023
ethernet8023 enabled auto-merge July 31, 2026 17:59

@teknium1 teknium1 left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Re-reviewed the two new commits. Both look right — and nice catch on the npm 11.10–12.0 gap.

3975e9d7 — engine gate. npm 11.10–12.0 enforcing min-release-age while silently ignoring min-release-age-exclude[] is exactly the failure mode that would make this policy worse than no policy: the floor half-applies and every documented exception (react-router, eslint 10, vite 8.2…) hard-fails with no explanation. engine-strict=true + engines.npm: "<11.10.0 || >=12.0.0" refuses the broken range up front in both trees. Correct fix, correctly placed.

e803c5ae — EBADENGINE self-heal. This handles the fallout #1 creates for Hermes-managed installs sitting on npm 11.10.x, and the design choices are the ones I'd want:

  • Reacting to the failure instead of predicting it — no npm --version probe or semver matcher on the happy path; the recovery reads the Required: range straight out of npm's own error output.
  • Scope discipline: upgrades only an npm inside $HERMES_HOME/node (with --prefix so the managed tree upgrades in place rather than landing a second npm at the prefix=~/.local from node/etc/npmrc); system/nvm/brew/Nix npm gets the exact manual command and the original failure stands. Symlink resolution in managed_npm_prefix covers all three spellings of the managed npm.
  • The stderr tee in _run_npm_watching_for_engine_failure — the capture_output=False desktop path would otherwise hand the recovery stderr=None with nothing to parse. Live output unchanged, text retained.
  • Both npm call sites wired (_run_npm_install_deterministic and the TUI install path), one retry max, False on every non-managed/non-npm/Node-mismatch case.

One noted tension, acceptable: the self-upgrade runs with npm_config_min_release_age=0 from a temp cwd — necessary, since the age floor would refuse the very npm release the repair needs. It's scoped to the single npm@<range> install and nothing else.

17 new tests + the E2E verification against real npm binaries in both directions (managed 11.10.0 → upgraded → retry green; foreign 11.10.0 → manual command, untouched) is exactly the standard we want for this kind of recovery path.

Approving. Merge once the new head's CI is green.

@ethernet8023
ethernet8023 merged commit 6ecd335 into main Jul 31, 2026
47 of 48 checks passed
dplush pushed a commit to dplush/hermes-agent that referenced this pull request Aug 1, 2026
The 0.15 bump rode along with the npm audit pass in NousResearch#75037, but it was
not required by any advisory — `npm audit` reports 0 vulnerabilities with
0.14.24 pinned. It is a breaking major that costs us a working transcript,
so take the API stability instead.
teknium1 added a commit that referenced this pull request Aug 2, 2026
The #75037 revert restored pyproject.toml's pre-sweep dependency bounds
and removed the global exclude-newer floor, so the lockfile had to be
re-resolved. Regenerated with --no-config: the worktree sits under the
main checkout, and uv's ancestor-config discovery was leaking the
parent pyproject's exclude-newer stamp into the lock — which CI (no
ancestor config) then rejected.
randlee pushed a commit to randlee/hermes-agent that referenced this pull request Aug 11, 2026
fix(sec): patch vulnerable deps + add publication-age floors and npm script allow-list

Co-authored-by: Kingsley Wong <7207924+datanerdie@users.noreply.github.com>
Co-authored-by: viky <vikyw89@gmail.com>
Co-authored-by: FT_IOxCS <237263164+ft-ioxcs@users.noreply.github.com>
Co-authored-by: 方明元 <fmy3@qq.com>
Co-authored-by: Yorkstone Supplies <58149681+sycamoregroupltd@users.noreply.github.com>
Co-authored-by: Steven Cuz Leath <Steven.Leath@gmail.com>
Co-authored-by: Kyle French <248366920+Dadmin88@users.noreply.github.com>
Co-authored-by: Eugeniusz Gilewski <egilewski@egilewski.com>
Co-authored-by: Christopher Gara <79837758+christopherrobin88@users.noreply.github.com>
Co-authored-by: LironTTG <147833337+LironTTG@users.noreply.github.com>
Co-authored-by: Austin Porada <bbasketballer75@gmail.com>
Co-authored-by: cresslank <9219265+cresslank@users.noreply.github.com>
Co-authored-by: Ion Mudreac <mudreac@gmail.com>
Co-authored-by: martinramos002 <262243228+martinramos002-bot@users.noreply.github.com>
Co-authored-by: Sensie-Agents <agents@joinsensie.com>
Co-authored-by: alexwill87 <173086651+alexwill87@users.noreply.github.com>
Co-authored-by: BullishMomentum56 <218643122+BullishMomentum56@users.noreply.github.com>
Co-authored-by: pintadoai <240097310+pintadoai@users.noreply.github.com>
Co-authored-by: Alfred Sahlberg <dinmail@gmail.com>
Co-authored-by: liuhao1024 <sunsky.lau@gmail.com>
Co-authored-by: Richard Ham <richard.ham@live.com>
Co-authored-by: jrcrittenden <jrcrittenden@gmail.com>
Co-authored-by: 峯岸 亮 <1920071390@campus.ouj.ac.jp>
Co-authored-by: Marcus Martini <6473852+napoleonmm83@users.noreply.github.com>
randlee pushed a commit to randlee/hermes-agent that referenced this pull request Aug 11, 2026
The 0.15 bump rode along with the npm audit pass in NousResearch#75037, but it was
not required by any advisory — `npm audit` reports 0 vulnerabilities with
0.14.24 pinned. It is a breaking major that costs us a working transcript,
so take the API stability instead.
prmartinow pushed a commit to prmartinow/hermes-agent that referenced this pull request Aug 26, 2026
fix(sec): patch vulnerable deps + add publication-age floors and npm script allow-list

Co-authored-by: Kingsley Wong <7207924+datanerdie@users.noreply.github.com>
Co-authored-by: viky <vikyw89@gmail.com>
Co-authored-by: FT_IOxCS <237263164+ft-ioxcs@users.noreply.github.com>
Co-authored-by: 方明元 <fmy3@qq.com>
Co-authored-by: Yorkstone Supplies <58149681+sycamoregroupltd@users.noreply.github.com>
Co-authored-by: Steven Cuz Leath <Steven.Leath@gmail.com>
Co-authored-by: Kyle French <248366920+Dadmin88@users.noreply.github.com>
Co-authored-by: Eugeniusz Gilewski <egilewski@egilewski.com>
Co-authored-by: Christopher Gara <79837758+christopherrobin88@users.noreply.github.com>
Co-authored-by: LironTTG <147833337+LironTTG@users.noreply.github.com>
Co-authored-by: Austin Porada <bbasketballer75@gmail.com>
Co-authored-by: cresslank <9219265+cresslank@users.noreply.github.com>
Co-authored-by: Ion Mudreac <mudreac@gmail.com>
Co-authored-by: martinramos002 <262243228+martinramos002-bot@users.noreply.github.com>
Co-authored-by: Sensie-Agents <agents@joinsensie.com>
Co-authored-by: alexwill87 <173086651+alexwill87@users.noreply.github.com>
Co-authored-by: BullishMomentum56 <218643122+BullishMomentum56@users.noreply.github.com>
Co-authored-by: pintadoai <240097310+pintadoai@users.noreply.github.com>
Co-authored-by: Alfred Sahlberg <dinmail@gmail.com>
Co-authored-by: liuhao1024 <sunsky.lau@gmail.com>
Co-authored-by: Richard Ham <richard.ham@live.com>
Co-authored-by: jrcrittenden <jrcrittenden@gmail.com>
Co-authored-by: 峯岸 亮 <1920071390@campus.ouj.ac.jp>
Co-authored-by: Marcus Martini <6473852+napoleonmm83@users.noreply.github.com>
prmartinow pushed a commit to prmartinow/hermes-agent that referenced this pull request Aug 26, 2026
The 0.15 bump rode along with the npm audit pass in NousResearch#75037, but it was
not required by any advisory — `npm audit` reports 0 vulnerabilities with
0.14.24 pinned. It is a breaking major that costs us a working transcript,
so take the API stability instead.
melon-xf added a commit to melon-xf/hermes-agent that referenced this pull request Sep 3, 2026
fix(sec): patch vulnerable deps + add publication-age floors and npm script allow-list

Co-authored-by: Kingsley Wong <7207924+datanerdie@users.noreply.github.com>
Co-authored-by: viky <vikyw89@gmail.com>
Co-authored-by: FT_IOxCS <237263164+ft-ioxcs@users.noreply.github.com>
Co-authored-by: 方明元 <fmy3@qq.com>
Co-authored-by: Yorkstone Supplies <58149681+sycamoregroupltd@users.noreply.github.com>
Co-authored-by: Steven Cuz Leath <Steven.Leath@gmail.com>
Co-authored-by: Kyle French <248366920+Dadmin88@users.noreply.github.com>
Co-authored-by: Eugeniusz Gilewski <egilewski@egilewski.com>
Co-authored-by: Christopher Gara <79837758+christopherrobin88@users.noreply.github.com>
Co-authored-by: LironTTG <147833337+LironTTG@users.noreply.github.com>
Co-authored-by: Austin Porada <bbasketballer75@gmail.com>
Co-authored-by: cresslank <9219265+cresslank@users.noreply.github.com>
Co-authored-by: Ion Mudreac <mudreac@gmail.com>
Co-authored-by: martinramos002 <262243228+martinramos002-bot@users.noreply.github.com>
Co-authored-by: Sensie-Agents <agents@joinsensie.com>
Co-authored-by: alexwill87 <173086651+alexwill87@users.noreply.github.com>
Co-authored-by: BullishMomentum56 <218643122+BullishMomentum56@users.noreply.github.com>
Co-authored-by: pintadoai <240097310+pintadoai@users.noreply.github.com>
Co-authored-by: Alfred Sahlberg <dinmail@gmail.com>
Co-authored-by: liuhao1024 <sunsky.lau@gmail.com>
Co-authored-by: Richard Ham <richard.ham@live.com>
Co-authored-by: jrcrittenden <jrcrittenden@gmail.com>
Co-authored-by: 峯岸 亮 <1920071390@campus.ouj.ac.jp>
Co-authored-by: Marcus Martini <6473852+napoleonmm83@users.noreply.github.com>
melon-xf added a commit to melon-xf/hermes-agent that referenced this pull request Sep 3, 2026
The 0.15 bump rode along with the npm audit pass in NousResearch#75037, but it was
not required by any advisory — `npm audit` reports 0 vulnerabilities with
0.14.24 pinned. It is a breaking major that costs us a working transcript,
so take the API stability instead.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area/config Config system, migrations, profiles area/install-update Installer, updater, packaging, wheels, doctor area/nix Nix flake, NixOS module, container packaging ci-reviewed applied to manually approve dangerous changes comp/desktop Electron desktop app (apps/desktop/*) dependencies Pull requests that update a dependency file needs-decision Awaiting maintainer decision before any implementation P3 Low — cosmetic, nice to have sweeper:risk-compatibility Sweeper risk: may break existing users, config, migrations, defaults, or upgrades type/bug Something isn't working

Projects

None yet

3 participants