Skip to content

Release Aiden Agent 0.61.0: security updates (Electron 43.8.3, MCP SDK 1.32.1, CI Node 22.23.4) - #584

Merged
sambitcreate merged 4 commits into
mainfrom
claude/project-thread-0nbs5t
Oct 22, 2026
Merged

sambitcreate merged 4 commits into
mainfrom
claude/project-thread-0nbs5t

Conversation

@sambitcreate

@sambitcreate sambitcreate commented Oct 22, 2026 •

Copy link
Copy Markdown
Owner

Requested by sbt · project thread

This PR is also the 0.61.0 release. The owner asked to ship these fixes right away as 0.61.0. Merging it bumps package.json/package-lock.json to 0.61.0, and the Release desktop workflow then publishes v0.61.0. The release is cut from main, so it also ships everything merged since 0.60.0: #559 (Bot hand-offs, rules, pause, Bot computers), #567, #579–#581 (dictation speed and the Metal engine) and #582.

Why

A check against the October 21, 2026 disclosures (PHP2Shell, the Linux PwnEscape kernel bug and the Node.js security release) found that PHP and the Linux bugs don't apply to Aiden. Node.js does, and the app had also drifted well behind on Electron. Write-up: https://claude.ai/artifact/GoQkap7rVYw31ivQcjJiib

What changes

Shipped app

  • Electron ^43.1.1 → ^43.8.3. The previous lock was 43.1.1 from July 14 (Chromium 150.0.7871.114, Node 24.18.0). 43.8.3 (Oct 21) carries Chromium 150.0.7871.250 with 23 releases' worth of backported Chromium/V8 fixes. It also clears five Electron advisories fixed after 43.6.0 (GHSA-gr2m-v5gq-v685, GHSA-j84w-jfhq-vhvj, GHSA-qmv3-fv6v-rmhq, GHSA-9qh4-3jw8-366w, GHSA-fw47-9c62-h3vw). Same major version and same Node ABI (148).
  • @modelcontextprotocol/sdk 1.30.0 → 1.32.1. Five high advisories, including OAuth credentials sent to an authorization server the MCP server picks (GHSA-6qxp-vccf-f47h) and headers re-sent on cross-origin redirects (GHSA-6prh-2h8m-c8cw). It also pulls in fixed hono, the express deps (proxy-addr, qs), fast-uri and ip-address.
  • yauzl 3.2.0 → 3.4.0 (GHSA-gmq8-994r-jv83). Used only by the Antigravity installer, which opens a pinned and hash-checked archive.
  • In-range npm audit fix: undici 7.30.1 (OpenAI SDK), seroval, brace-expansion, source-map-js and nanoid. Dev tools: vite 8.3.5, shell-quote, axios, follow-redirects and @xmldom/xmldom. electron-builder stays at 26.15.3 because scripts/patch-electron-builder-keychain.mjs refuses any other app-builder-lib.
  • Foreground glob follows Node 24.22's symlink rule. Electron 43.8.3 bundles Node 24.22.0, whose fs.glob no longer steps into a symlink after ** (Node 22.23.4 and 24.18.0 still do). The coding-tool glob worker mirrored the old rule, so the Electron foreground smoke (which compares it with Electron's native glob) failed on **/*. The worker now never follows a link after **, on every runtime. coding-tools.test.ts gives the five patterns whose answer differs between Node lines (**/*, **/*/*.ts, **/*/**/c.ts, **/*/, {src,link}/**/*) fixed expectations; the other patterns still use the native oracle. THIRD_PARTY_NOTICES.md notes the rule.

Build and test machines

  • Every workflow's node-version goes from 22.22.3 (May 13) to 22.23.4, the Node 22 security release from October 21. scripts/check-ci-policy.test.mjs follows the pin.

Release

Tests and docs

  • main/services/gemini-live/sdk-contract.test.ts now checks the Electron 43 major instead of exactly 43.1.1. The real oracle stays the same: the installed electron.d.ts must declare the display-media handler, exact-frame request and system picker.
  • packages/cli/README.md and README.md tell users to keep Node on the newest release of its line, since the CLI runs on the user's own Node. docs/plans/peer-mobile-reliability-plan.md gets the new CI pin, and .memory/security-updates-2026-10.md records the follow-up and the glob rule.

Not in this PR

  • Node 24.22.1 inside Electron. No Electron release ships it yet (43.8.3, 44.9.3 and 45.0.0 all carry 24.22.0). A follow-up Electron bump will close the Brotli decoder flaw (CVE-2026-111497) and the TLS hostname-check bypasses in the main process.
  • Remaining audit items need major bumps: oxfmt/tinypool, katex/remark-math, and the electron-builder downgrade. All of these are dev-only or low severity.

Local verification (cloud container)

  • npm run type-check: pass
  • eslint .: pass
  • npm run test:ci-policy: 68/68
  • npm run test:mcp: 345/345
  • npm run test:acp (covers the yauzl installer path): 150/150
  • npm run test:gemini-live: 7 + 186 + 103 pass
  • main/services/coding-tools.test.ts: 70/70 on Node 22.23.4; the two foreground glob tests also pass on Node 24.22.0
  • npm run test:foreground-file-tools:electron on Electron 43.8.3 (Node 24.22.0) under Xvfb: passed, all 13 glob patterns match native fs.glob (run with --no-sandbox because the container runs as root)
  • Release scripts (prepare-ci-release, check-release-consumers, check-ci-policy): 23/23
  • vite build, build:visual-viewer, build:electron:production and check-renderer-bundle-budget: pass
  • build:native:c could not run here because the container has no libsecret. Electron E2E and packaging run in hosted CI.

Flaky tests seen on this PR

🤖 Generated with Claude Code

https://claude.ai/code/session_01EUbjALmfAUbbvazRGDFaoi

…isories

- Electron ^43.1.1 -> ^43.8.3 (Chromium 150.0.7871.114 -> .250, backported
  Chromium/V8 security fixes, five Electron GHSAs fixed after 43.6.0)
- @modelcontextprotocol/sdk 1.30.0 -> 1.32.1 (OAuth credential steering,
  cross-origin redirect header leaks, server auth fixes)
- yauzl 3.2.0 -> 3.4.0
- In-range npm audit fixes (undici, hono, fast-uri, proxy-addr, qs,
  ip-address, seroval, shell-quote, vite and others); electron-builder
  stays at 26.15.3 for the guarded keychain patch
- CI node-version 22.22.3 -> 22.23.4 (Node's October 21 security release)
- Gemini Live declaration test checks the Electron 43 major, not 43.1.1
- Docs: CLI and root README Node guidance, plan pin, .memory note

Electron has not yet shipped Node 24.22.1; a follow-up bump is needed
when it does.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EUbjALmfAUbbvazRGDFaoi
@sambitcreate sambitcreate self-assigned this Oct 22, 2026
@very-hermes-bot

very-hermes-bot commented Oct 22, 2026 •

Copy link
Copy Markdown
Collaborator

Hermes Review Bot

Confidence: 5

Engine: agy/gemini-3.8-flash-high
Review mode: full
Head: ffc1f69b7725b88374db5ed659055110a3ecb304
Generated: 2026-10-22T17:13:35+00:00
Reviews: 1

Summary

Releases Aiden Agent 0.61.0, upgrading Electron to 43.8.3 (Chromium 150.0.7871.250), @modelcontextprotocol/sdk to 1.32.1, yauzl to 3.4.0, and applying transitive security audit fixes while keeping electron-builder pinned at 26.15.3. Updates all GitHub Actions workflows and the CI policy contract test to Node 22.23.4 to address the October 21, 2026 Node.js security advisories. Aligns main/services/coding-tool-glob-worker.ts with Node 24.22.0 (bundled in Electron 43.8.3) by preventing symlink traversal after globstar (**) patterns, and updates main/services/coding-tools.test.ts with fixed expectations for affected patterns to ensure tests pass across both Node 22 and 24 environments. Synchronizes documentation, license notices, and plan status across README.md, packages/cli/README.md, THIRD_PARTY_NOTICES.md, docs/plans/README.md, and .memory/security-updates-2026-10.md. Maintainers should double-check that the PR title and description are updated from 0.60.1 to 0.61.0 prior to merging, ensuring PR metadata reflects commit ffc1f69b7 and matches the published v0.61.0 tag.

Confidence Score: 5/5

One line justifying: Every changed file, dependency diff, CI workflow pin, glob worker traversal edge case, and release script was inspected and verified end-to-end against repository contracts and security baselines.

📁 Important Files Changed
  • package.json & package-lock.json: Bumps application release version to 0.61.0, upgrades Electron to ^43.8.3, @modelcontextprotocol/sdk to 1.32.1, yauzl to 3.4.0, and applies in-range transitive audit fixes while preserving electron-builder at 26.15.3.
  • .github/workflows/ci.yml, .github/workflows/linux-installers.yml, .github/workflows/model-catalog-refresh.yml, .github/workflows/release-consumers.yml, & .github/workflows/release.yml: Advances the pinned CI node-version from 22.22.3 to 22.23.4 across all test, packaging, and release jobs.
  • main/services/coding-tool-glob-worker.ts: Stops descending into directory symlinks encountered after globstar (**) tokens to conform with Node 24.22.0 / Electron 43.8.3 native fs.glob traversal semantics.
  • main/services/coding-tools.test.ts: Supplies explicit expected outputs for the five glob patterns affected by the Node 24.22 symlink traversal change, allowing tests to run consistently across host Node 22 and Electron Node 24 environments.
  • main/services/gemini-live/sdk-contract.test.ts: Relaxes the Electron manifest version assertion to match any Electron 43 release (/^43\./u) while retaining display media type declaration checks.
  • scripts/check-ci-policy.test.mjs: Updates the CI policy test assertion to enforce the Node 22.23.4 workflow pin.
  • README.md, packages/cli/README.md, THIRD_PARTY_NOTICES.md, docs/plans/README.md, docs/plans/peer-mobile-reliability-plan.md, & .memory/security-updates-2026-10.md: Synchronizes release version 0.61.0, Node line security advice, third-party glob traversal attribution, and security update documentation.

Findings

No findings.

📊 Sequence Diagram

Unchanged or not applicable for this change.

Machine-Readable Findings

[]

Last reviewed commit: ffc1f69b7725
Reviews (1) · Comment /hermes review to trigger a new review · /hermes review full for full re-review

Copy link
Copy Markdown
Owner Author

The Hermes Review Bot status failed during its own checkout. It ran a second or two after the PR was opened, before GitHub had published refs/pull/584/head (fatal: couldn't find remote ref refs/pull/584/head). That is a timing problem on the review host, not something in this diff, and no fix is needed here. I can't re-run that status from here because it is posted by the self-hosted Hermes service. It should pass on its next run against this head, 2ae61481.


Generated by Claude Code

Bump package.json and package-lock.json so the Release desktop workflow
publishes v0.60.1 with the October security updates, and record #559,
#579 and #581 as shipping in 0.60.1 in the plan index. The release also
carries #567, #580 and #582 from main.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EUbjALmfAUbbvazRGDFaoi
@sambitcreate sambitcreate changed the title Security updates: Electron 43.8.3, MCP SDK 1.32.1, CI Node 22.23.4 Release Aiden Agent 0.60.1: security updates (Electron 43.8.3, MCP SDK 1.32.1, CI Node 22.23.4) Oct 22, 2026

@pullfrog pullfrog Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Important

The Electron update breaks the required foreground file-tools smoke check. Reconcile the glob compatibility assertion before merging the 0.60.1 release.

Reviewed changes across both commits, including dependency integrity, runtime compatibility, CI configuration and release metadata.

  • Runtime dependencies: Electron 43.8.3, MCP SDK 1.32.1, yauzl 3.4.0 and transitive security updates, with the guarded electron-builder version retained.
  • CI and contracts: Node 22.23.4 workflow pins and the Gemini Live declaration check's move from an exact Electron patch to major 43.
  • Release and documentation: Version 0.60.1, updated plan release statuses and Node security guidance, including the outstanding embedded-Node follow-up.
  • Validation: Fresh npm ci, TypeScript, MCP, ACP, CI-policy, Gemini Live and release-metadata tests pass. The identical foreground smoke passes on Electron 43.1.1 and fails on 43.8.3 under a local isolated Linux harness; hosted macOS CI reports the same assertion failure. Full packaging and macOS E2E were not run locally.

Pullfrog  | Fix all ➔ | Fix 👍s ➔ | View workflow run | Using gpt-6.1-sol | 𝕏

Comment thread package.json
Electron 43.8.3 bundles Node 24.22.0, whose fs.glob no longer steps into
a symlink after `**`. The foreground glob worker mirrored the older rule,
so the Electron smoke that compares it with Electron's native glob failed
on `**/*`. Follow the newer rule on every runtime, give the five patterns
whose answer differs between Node lines fixed expectations in the unit
test, and note the rule in THIRD_PARTY_NOTICES.md.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EUbjALmfAUbbvazRGDFaoi
The owner chose a minor version for this release because it also ships
the features merged since 0.60.0 (#559, #567, #579-#582), not only the
October security updates. Bump package.json and package-lock.json to
0.61.0 and update the plan index to match.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01EUbjALmfAUbbvazRGDFaoi
@sambitcreate sambitcreate changed the title Release Aiden Agent 0.60.1: security updates (Electron 43.8.3, MCP SDK 1.32.1, CI Node 22.23.4) Release Aiden Agent 0.61.0: security updates (Electron 43.8.3, MCP SDK 1.32.1, CI Node 22.23.4) Oct 22, 2026

@pullfrog pullfrog Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

✅ No new issues found.

Reviewed changes since 4c94e6e2, covering the glob compatibility fix and the revised 0.61.0 release metadata.

  • Aligned glob traversal: Updated the worker's globstar transition to match Electron's embedded Node 24.22.0 without changing the smoke's symlink, cancellation, deadline or cleanup assertions.
  • Added runtime-independent expectations: Gave the five version-sensitive glob patterns fixed fixture results while retaining native comparisons for the remaining patterns, and documented the traversal rule.
  • Renamed the release: Changed the manifest, both lockfile version fields and plan release references from 0.60.1 to 0.61.0.
  • Verified the fix: Passed all 70 coding-tool tests, TypeScript, six release-metadata tests and the unchanged Electron 43.8.3 foreground smoke under Xvfb with a test-process-only sandbox override. Release selection returns v0.61.0; hosted CI is still running, and macOS packaging/E2E were not run locally.

Pullfrog  | View workflow run | Using gpt-6.1-sol | 𝕏

Copy link
Copy Markdown
Owner Author

iOS build and simulator tests failed on ffc1f69 (run 39819936715). Every other job passed, including Desktop build and diagnostics with the glob fix. Two XCTests timed out:

These failures don't come from this PR. It changes no Swift code and nothing the iOS app loads. The only thing it changes in the iOS job is the Node pin used for the policy checks before XCTest, and both failures are timing waits on a busy simulator. iOS is green on main at 5175c43. I'm re-running the failed jobs once. If it fails again, I'll treat it as real and dig in. Either way, the spec, the symptom and the run link go in the PR description, per AGENTS.md.


Generated by Claude Code

@sambitcreate
sambitcreate merged commit d6feb7b into main Oct 22, 2026
49 of 51 checks passed
@sambitcreate
sambitcreate deleted the claude/project-thread-0nbs5t branch October 22, 2026 18:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants