[PR #610] [CLOSED] test(browser): preserve unknown with-scope dependency bindings #2110

Closed
opened 2026-10-16 21:14:25 +00:00 by bsakaguchi · 0 comments
Owner

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/610
Author: @rudycelekli
Created: 10/5/2026
Status: ❌ Closed

Base: main ← Head: campaign/rea-source-map-with-scope-followup-20261005


📝 Commits (1)

  • 70bfd79 test(browser): preserve unknown with-scope loader bindings

📊 Changes

1 file changed (+4 additions, -2 deletions)

View changed files

📝 tests/boundary/browser/webSourceMapFetcher.test.ts (+4 -2)

📄 Description

Summary

Follow up on merged #588: correct the recovered-source regression to preserve the existing unknown-binding contract inside a dynamic with scope. This is the shared shard 3/4 failure observed on #601 and #603–608.

No separate issue: this is a focused CI regression found in the maintainer-expanded coverage of #588, with direct failed job logs and local reproduction.

Problem and expected behavior

The new recovery fixture expects require("./c.js") inside with(scope) to establish a host-loader dependency. The existing semantic producer deliberately marks that binding unknown because the object can supply its own require. Emitting that edge would guess an identity.

The corrected fixture retains the ambiguous call and checks that it is omitted, adds a genuine unbound loader call outside the scope, retains the recovered static import, and still requires partial status and its limitation. Production behavior is unchanged.

Contract and boundary impact

  • Owner: source-map dependency recovery verification. No production changes, schemas, tool inventory, metadata, authority or installation changes.
  • Unsupported/unknown results are preserved; no new provider claim.

Evidence and regression coverage

  • Fresh bae87b4 reproduces the same failing test as the hosted shard.
  • Actual Node execution of the owned with example calls the object's loader once and the host loader zero times.
  • Actual REA semantic analysis reports the inner reference as unknown and the outer reference as unbound.
  • The complete focused source-map test file passes with the corrected fixture. Existing shadowed-require and unparsable-source controls remain intact.

Validation performed

  • npm run build:cached — passed.
  • npm run test:focused -- tests/boundary/browser/webSourceMapFetcher.test.ts — passed.
  • npm run check — passed.

Current ordinary-fix policy after #599 makes the complete local check:pr optional. Hosted aggregate coverage remains separate; no hosted pass is claimed here.

Compatibility, safety and review

Test-only correction; no migration, provider, package or runtime behavior change. Owned fixed inputs were executed locally; no caller or ambient code was evaluated. Full Hopper/Ghidra/native-browser verification is not relevant to this test-only change.

The diff was peer-reviewed; the commit is signed with DCO sign-off. Prepared with AI assistance.


🔄 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/610 **Author:** [@rudycelekli](https://github.com/rudycelekli) **Created:** 10/5/2026 **Status:** ❌ Closed **Base:** `main` ← **Head:** `campaign/rea-source-map-with-scope-followup-20261005` --- ### 📝 Commits (1) - [`70bfd79`](https://github.com/morluto/rea/commit/70bfd79e8939c0d3d074f65b1fdc3e60c13a71a2) test(browser): preserve unknown with-scope loader bindings ### 📊 Changes **1 file changed** (+4 additions, -2 deletions) <details> <summary>View changed files</summary> 📝 `tests/boundary/browser/webSourceMapFetcher.test.ts` (+4 -2) </details> ### 📄 Description ## Summary Follow up on merged #588: correct the recovered-source regression to preserve the existing unknown-binding contract inside a dynamic `with` scope. This is the shared shard 3/4 failure observed on #601 and #603–608. No separate issue: this is a focused CI regression found in the maintainer-expanded coverage of #588, with direct failed job logs and local reproduction. ## Problem and expected behavior The new recovery fixture expects `require("./c.js")` inside `with(scope)` to establish a host-loader dependency. The existing semantic producer deliberately marks that binding unknown because the object can supply its own `require`. Emitting that edge would guess an identity. The corrected fixture retains the ambiguous call and checks that it is omitted, adds a genuine unbound loader call outside the scope, retains the recovered static import, and still requires partial status and its limitation. Production behavior is unchanged. ## Contract and boundary impact - Owner: source-map dependency recovery verification. No production changes, schemas, tool inventory, metadata, authority or installation changes. - Unsupported/unknown results are preserved; no new provider claim. ## Evidence and regression coverage - Fresh `bae87b4` reproduces the same failing test as the hosted shard. - Actual Node execution of the owned `with` example calls the object's loader once and the host loader zero times. - Actual REA semantic analysis reports the inner reference as unknown and the outer reference as unbound. - The complete focused source-map test file passes with the corrected fixture. Existing shadowed-require and unparsable-source controls remain intact. ## Validation performed - `npm run build:cached` — passed. - `npm run test:focused -- tests/boundary/browser/webSourceMapFetcher.test.ts` — passed. - `npm run check` — passed. Current ordinary-fix policy after #599 makes the complete local `check:pr` optional. Hosted aggregate coverage remains separate; no hosted pass is claimed here. ## Compatibility, safety and review Test-only correction; no migration, provider, package or runtime behavior change. Owned fixed inputs were executed locally; no caller or ambient code was evaluated. Full Hopper/Ghidra/native-browser verification is not relevant to this test-only change. The diff was peer-reviewed; the commit is signed with DCO sign-off. Prepared with AI assistance. --- <sub>🔄 This issue represents a GitHub Pull Request. It cannot be merged through Gitea due to API limitations.</sub>
bsakaguchi 2026-10-16 21:14:25 +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#2110
No description provided.