[PR #3587] [MERGED] fix(electron): follow absolute symlinks that stay inside the framework #5841

Closed
opened 2026-10-31 01:09:50 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/3587
Author: @mvanhorn
Created: 10/14/2026
Status: ✅ Merged
Merged: 10/21/2026
Merged by: @morluto

Base: main ← Head: fix/3380-electron-fuse-absolute-framework-symlinks


📝 Commits (2)

  • e6a14d3 fix(electron): follow absolute symlinks that stay inside the framework
  • b0ad20d test(electron): cover absolute framework symlink cycles

📊 Changes

2 files changed (+154 additions, -2 deletions)

View changed files

📝 src/electron/ElectronFusePath.ts (+11 -2)
📝 src/electron/ElectronFuseProvider.test.ts (+143 -0)

📄 Description

Summary

inspect-electron-fuses now follows an absolute Versions/Current symlink when its target remains inside the selected Electron Framework.framework. Absolute targets outside the framework still fail closed.

Change and validation

Absolute targets pass through the existing framework containment check and restart the resolver from the framework root. Subsequent links retain per-hop containment and the hop limit, so a failed Current walk cannot be treated as absent and silently replaced by a valid Versions/A fallback.

  • npm run test:local -- src/electron/ElectronFuseProvider.test.ts — 27 tests passed, including absolute in-framework resolution, an outside target, a later escaping hop, and an absolute self-cycle with a valid fallback present.
  • npm run check:fast passed.
  • Exact-head hosted Static checks, Build package, Source tests, and six of eight test shards passed at the latest query; two shards and the Linux native package baseline were pending. Other provider lanes were skipped.
  • Fixtures exercise bundle layouts in temporary directories; no real packaged Electron application was tested.

Scope and limitations

This changes path resolution for absolute symlinks within the selected framework only. It does not change relative-link handling or file selection beyond allowing the contained absolute target to resolve. No tool schema, provider authority, or package output changes.

Author readiness

Human owner: @mvanhorn

  • I reviewed the final diff and relevant existing code, understand the change and its edge cases, and take responsibility for the complete PR, including AI-assisted work.
  • I checked the evidence above, confirmed it supports the current change, and recorded meaningful validation gaps.
  • I declare this PR ready for initial maintainer review.

🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.

## 📋 Pull Request Information **Original PR:** https://github.com/morluto/rea/pull/3587 **Author:** [@mvanhorn](https://github.com/mvanhorn) **Created:** 10/14/2026 **Status:** ✅ Merged **Merged:** 10/21/2026 **Merged by:** [@morluto](https://github.com/morluto) **Base:** `main` ← **Head:** `fix/3380-electron-fuse-absolute-framework-symlinks` --- ### 📝 Commits (2) - [`e6a14d3`](https://github.com/morluto/rea/commit/e6a14d36598cc16f7a50632352478fae8f41e4af) fix(electron): follow absolute symlinks that stay inside the framework - [`b0ad20d`](https://github.com/morluto/rea/commit/b0ad20d7c5641ec1e39bb2c54dd68128dce06282) test(electron): cover absolute framework symlink cycles ### 📊 Changes **2 files changed** (+154 additions, -2 deletions) <details> <summary>View changed files</summary> 📝 `src/electron/ElectronFusePath.ts` (+11 -2) 📝 `src/electron/ElectronFuseProvider.test.ts` (+143 -0) </details> ### 📄 Description ## Summary `inspect-electron-fuses` now follows an absolute `Versions/Current` symlink when its target remains inside the selected `Electron Framework.framework`. Absolute targets outside the framework still fail closed. ## Change and validation Absolute targets pass through the existing framework containment check and restart the resolver from the framework root. Subsequent links retain per-hop containment and the hop limit, so a failed `Current` walk cannot be treated as absent and silently replaced by a valid `Versions/A` fallback. - `npm run test:local -- src/electron/ElectronFuseProvider.test.ts` — 27 tests passed, including absolute in-framework resolution, an outside target, a later escaping hop, and an absolute self-cycle with a valid fallback present. - `npm run check:fast` passed. - Exact-head hosted Static checks, Build package, Source tests, and six of eight test shards passed at the latest query; two shards and the Linux native package baseline were pending. Other provider lanes were skipped. - Fixtures exercise bundle layouts in temporary directories; no real packaged Electron application was tested. ## Scope and limitations This changes path resolution for absolute symlinks within the selected framework only. It does not change relative-link handling or file selection beyond allowing the contained absolute target to resolve. No tool schema, provider authority, or package output changes. ## Author readiness Human owner: @mvanhorn - [x] I reviewed the final diff and relevant existing code, understand the change and its edge cases, and take responsibility for the complete PR, including AI-assisted work. - [x] I checked the evidence above, confirmed it supports the current change, and recorded meaningful validation gaps. - [x] I declare this PR ready for initial maintainer review. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-31 01:09:50 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
morluto/rea#5841
No description provided.