[PR #2745] [MERGED] fix(javascript): trace nested Electron bridge members #5360

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

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/2745
Author: @HeadmasterEggy
Created: 10/13/2026
Status: ✅ Merged
Merged: 10/13/2026
Merged by: @morluto

Base: main ← Head: codex/nested-bridge-member-call-paths-2669


📝 Commits (9)

  • 4519bd7 fix(javascript): trace nested Electron bridge members
  • da6cc71 fix(javascript): preserve shallow Electron bridge paths
  • e9f6f79 fix(javascript): preserve exact Electron bridge member paths
  • 2d11185 fix(javascript): preserve exact Electron bridge paths
  • 7b98bd4 fix(javascript): preserve bridge entry ownership
  • a443ead fix(javascript): preserve bridge path identity
  • 765f047 fix(javascript): normalize typed feature seeds before tracing
  • feab297 test(javascript): normalize direct selector seed inputs
  • aa87df4 refactor(javascript): consume normalized feature seed defaults

📊 Changes

14 files changed (+643 additions, -51 deletions)

View changed files

📝 src/application/javascript/ElectronBoundaryGraphCallPaths.ts (+9 -0)
📝 src/application/javascript/JavaScriptSemanticGraphElectronProjection.ts (+6 -0)
📝 src/domain/javascript/electronStaticAnalysisTypes.ts (+2 -0)
📝 src/domain/javascript/electronStaticAnalysisValues.ts (+7 -0)
📝 src/domain/javascript/electronWrappedCallPaths.test.ts (+77 -0)
📝 src/domain/javascript/electronWrappedCallPaths.ts (+55 -21)
📝 src/domain/javascript/javascriptFeatureSeed.array_members.test.ts (+37 -7)
📝 src/domain/javascript/javascriptFeatureSeed.ts (+20 -2)
📝 src/domain/javascript/javascriptFeatureTrace.ts (+8 -2)
📝 src/domain/javascript/javascriptFeatureTraceSchemas.ts (+47 -12)
📝 src/domain/javascript/javascriptSymbolicBindings.ts (+28 -4)
📝 src/javascript/analysis/JavaScriptAnalysisWorkerSchemas.ts (+8 -0)
📝 tests/boundary/cli/electronWrappedCallPaths.test.ts (+271 -1)
📝 tests/boundary/filesystem/javascript-applications/javascriptApplicationEmptyLiterals.test.ts (+68 -2)

📄 Description

Summary

Fixes #2669. Static Electron bridge call paths now retain exact API/property segments alongside the existing display string, so legal keys such as "nested.write" remain distinct from { nested: { write } }. Object-literal __proto__ setters are excluded from own members, while computed __proto__ keys remain own properties.

Nested enumeration yields members incrementally instead of spreading a large recursive result into function arguments. Depth truncation records unknown coverage and retains analyzable siblings. The path-segment field is preserved through the worker contract and both application graph projections.

Evidence

  • Before: the public CLI/MCP workflows could not distinguish bridge keys with identical dotted display text; a large nested member set could overflow argument spreading; depth truncation needed explicit resource-limit coverage.
  • After: npm run test:focused -- tests/boundary/cli/electronWrappedCallPaths.test.ts src/domain/javascript/electronWrappedCallPaths.test.ts passed 57/57. Public CLI coverage verifies dotted-key identity, nested-key identity, and __proto__ handling; MCP parity and shallow-sibling/depth coverage pass. A 125,000-member object completes without argument-spread failure.
  • npm run check:fast and git diff --check: passed on Node 24.18.0 / npm 11.16.0.
  • Fixture source was inert; no live Electron runtime was started.

Merge Danger

Door: Two-way; a normal revert restores the prior behavior.

Blast Radius: JavaScript

Only Electron static call-path collection and its graph representation change. Findings remain static candidates; truncated branches are explicitly unknown.


🔄 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/2745 **Author:** [@HeadmasterEggy](https://github.com/HeadmasterEggy) **Created:** 10/13/2026 **Status:** ✅ Merged **Merged:** 10/13/2026 **Merged by:** [@morluto](https://github.com/morluto) **Base:** `main` ← **Head:** `codex/nested-bridge-member-call-paths-2669` --- ### 📝 Commits (9) - [`4519bd7`](https://github.com/morluto/rea/commit/4519bd7a369ddfa301263cbfbfc26b2d471f1ec7) fix(javascript): trace nested Electron bridge members - [`da6cc71`](https://github.com/morluto/rea/commit/da6cc71df3fb37387494cd013ad0087205122686) fix(javascript): preserve shallow Electron bridge paths - [`e9f6f79`](https://github.com/morluto/rea/commit/e9f6f799c465de96d11215e7efd6e4d9c6529777) fix(javascript): preserve exact Electron bridge member paths - [`2d11185`](https://github.com/morluto/rea/commit/2d11185cc31fac1c4fceeae4ad9eebd61cdd9386) fix(javascript): preserve exact Electron bridge paths - [`7b98bd4`](https://github.com/morluto/rea/commit/7b98bd464d6bab65fef1c392ce0c8494e67f0acf) fix(javascript): preserve bridge entry ownership - [`a443ead`](https://github.com/morluto/rea/commit/a443ead4bd58b62feab1737065516195c9719e7c) fix(javascript): preserve bridge path identity - [`765f047`](https://github.com/morluto/rea/commit/765f047db8486a5b2130a5d61163d7b5117565e9) fix(javascript): normalize typed feature seeds before tracing - [`feab297`](https://github.com/morluto/rea/commit/feab297460fcc2f4f3ced9d2141989879e570b36) test(javascript): normalize direct selector seed inputs - [`aa87df4`](https://github.com/morluto/rea/commit/aa87df492c72e01c72a9a18bce4bd38c185180b1) refactor(javascript): consume normalized feature seed defaults ### 📊 Changes **14 files changed** (+643 additions, -51 deletions) <details> <summary>View changed files</summary> 📝 `src/application/javascript/ElectronBoundaryGraphCallPaths.ts` (+9 -0) 📝 `src/application/javascript/JavaScriptSemanticGraphElectronProjection.ts` (+6 -0) 📝 `src/domain/javascript/electronStaticAnalysisTypes.ts` (+2 -0) 📝 `src/domain/javascript/electronStaticAnalysisValues.ts` (+7 -0) 📝 `src/domain/javascript/electronWrappedCallPaths.test.ts` (+77 -0) 📝 `src/domain/javascript/electronWrappedCallPaths.ts` (+55 -21) 📝 `src/domain/javascript/javascriptFeatureSeed.array_members.test.ts` (+37 -7) 📝 `src/domain/javascript/javascriptFeatureSeed.ts` (+20 -2) 📝 `src/domain/javascript/javascriptFeatureTrace.ts` (+8 -2) 📝 `src/domain/javascript/javascriptFeatureTraceSchemas.ts` (+47 -12) 📝 `src/domain/javascript/javascriptSymbolicBindings.ts` (+28 -4) 📝 `src/javascript/analysis/JavaScriptAnalysisWorkerSchemas.ts` (+8 -0) 📝 `tests/boundary/cli/electronWrappedCallPaths.test.ts` (+271 -1) 📝 `tests/boundary/filesystem/javascript-applications/javascriptApplicationEmptyLiterals.test.ts` (+68 -2) </details> ### 📄 Description ## Summary Fixes #2669. Static Electron bridge call paths now retain exact API/property segments alongside the existing display string, so legal keys such as `"nested.write"` remain distinct from `{ nested: { write } }`. Object-literal `__proto__` setters are excluded from own members, while computed `__proto__` keys remain own properties. Nested enumeration yields members incrementally instead of spreading a large recursive result into function arguments. Depth truncation records unknown coverage and retains analyzable siblings. The path-segment field is preserved through the worker contract and both application graph projections. ## Evidence - **Before:** the public CLI/MCP workflows could not distinguish bridge keys with identical dotted display text; a large nested member set could overflow argument spreading; depth truncation needed explicit resource-limit coverage. - **After:** `npm run test:focused -- tests/boundary/cli/electronWrappedCallPaths.test.ts src/domain/javascript/electronWrappedCallPaths.test.ts` passed 57/57. Public CLI coverage verifies dotted-key identity, nested-key identity, and `__proto__` handling; MCP parity and shallow-sibling/depth coverage pass. A 125,000-member object completes without argument-spread failure. - `npm run check:fast` and `git diff --check`: passed on Node 24.18.0 / npm 11.16.0. - Fixture source was inert; no live Electron runtime was started. ## Merge Danger **Door:** Two-way; a normal revert restores the prior behavior. **Blast Radius:** JavaScript Only Electron static call-path collection and its graph representation change. Findings remain static candidates; truncated branches are explicitly unknown. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-31 01:06:01 +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#5360
No description provided.