[PR #600] [MERGED] fix(browser): capture selected events in popup pages #2102

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

📋 Pull Request Information

Original PR: https://github.com/morluto/rea/pull/600
Author: @rudycelekli
Created: 10/5/2026
Status: ✅ Merged
Merged: 10/5/2026
Merged by: @morluto

Base: main ← Head: campaign/rea-popup-event-selection-20261005


📝 Commits (2)

  • bb6481c fix(browser): capture selected events in popup pages
  • b745775 test(browser): group popup selection coverage with the scenario event suite

📊 Changes

2 files changed (+50 additions, -10 deletions)

View changed files

📝 src/browser/PlaywrightScenarioEvents.test.ts (+36 -0)
📝 src/browser/PlaywrightScenarioEvents.ts (+14 -10)

📄 Description

Summary

Observe child popup pages for selected page events independently of popup lifecycle selection; continue emitting popup opened/closed events only when requested. Owned Chrome154 production capture baseline0 versus fixed1 selected page-error proof; provider does not navigate/evaluate arbitrary caller code.

No tracking issue: this is a focused correctness regression found through production-seam reproduction.

Problem and expected behavior

Selected page events from popups are retained even when popup lifecycle events are unselected; popup opened/closed events are still selection-controlled.

Change and scope

The change stays in the owning adapter/application stage and corrects existing behavior without adding tools or broadening provider coverage.

Contract and boundary impact

  • Semantic owner and earliest changed stage: Browser Playwright event subscription, when a child popup page is created.
  • CLI and MCP/tool-catalog contract: existing schemas and tool inventory remain intact; corrected results flow through the owning operation.
  • Provider, bridge, target-format, or platform compatibility: Actual owned Chrome popup event capture ran, with ephemeral browser state and an owned loopback page. Other browser engines were not tested.
  • Evidence, artifact, provenance, or reconstruction contract: Selected page events from popups are retained even when popup lifecycle events are unselected; popup opened/closed events are still selection-controlled.
  • Process execution, authorization, cleanup, or containment impact: Existing execution authority, cleanup and containment remain preserved.
  • Generated metadata, package, or installation impact: no metadata or dependency changes.

Evidence and regression coverage

The focused file has three passing tests, including one added regression. An owned Chrome 154.0.8037.94 fixture captured zero selected popup errors before and one after; the owned browser was closed.

Tests exercise production parsing, filesystem, HTTP, or browser seams, without module mocks. Evidence above is executed; unverified platform/provider coverage is stated explicitly.

Validation performed

All required local gates passed on the signed commit:

  • npm run check:pr
  • npm run check:ci
  • npm run verify:package
  • npm pack --dry-run

Development runtime: Node.js 24.18.0 and npm 11.16.0. Upstream CI is separate from these local results.

Compatibility, safety, and release

No migration or package dependency changes. Real Hopper/Ghidra verification was not run; this patch does not change those providers. Remaining proof limits are stated above. The final diff contains source and tests only.

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/600 **Author:** [@rudycelekli](https://github.com/rudycelekli) **Created:** 10/5/2026 **Status:** ✅ Merged **Merged:** 10/5/2026 **Merged by:** [@morluto](https://github.com/morluto) **Base:** `main` ← **Head:** `campaign/rea-popup-event-selection-20261005` --- ### 📝 Commits (2) - [`bb6481c`](https://github.com/morluto/rea/commit/bb6481c54c42eac9ba4fdb3d83a715784ecd4c23) fix(browser): capture selected events in popup pages - [`b745775`](https://github.com/morluto/rea/commit/b74577555b8729c78331adb24837518ebbd562d4) test(browser): group popup selection coverage with the scenario event suite ### 📊 Changes **2 files changed** (+50 additions, -10 deletions) <details> <summary>View changed files</summary> 📝 `src/browser/PlaywrightScenarioEvents.test.ts` (+36 -0) 📝 `src/browser/PlaywrightScenarioEvents.ts` (+14 -10) </details> ### 📄 Description ## Summary Observe child popup pages for selected page events independently of popup lifecycle selection; continue emitting popup opened/closed events only when requested. Owned Chrome154 production capture baseline0 versus fixed1 selected page-error proof; provider does not navigate/evaluate arbitrary caller code. No tracking issue: this is a focused correctness regression found through production-seam reproduction. ## Problem and expected behavior Selected page events from popups are retained even when popup lifecycle events are unselected; popup opened/closed events are still selection-controlled. ## Change and scope The change stays in the owning adapter/application stage and corrects existing behavior without adding tools or broadening provider coverage. ## Contract and boundary impact - Semantic owner and earliest changed stage: Browser Playwright event subscription, when a child popup page is created. - CLI and MCP/tool-catalog contract: existing schemas and tool inventory remain intact; corrected results flow through the owning operation. - Provider, bridge, target-format, or platform compatibility: Actual owned Chrome popup event capture ran, with ephemeral browser state and an owned loopback page. Other browser engines were not tested. - Evidence, artifact, provenance, or reconstruction contract: Selected page events from popups are retained even when popup lifecycle events are unselected; popup opened/closed events are still selection-controlled. - Process execution, authorization, cleanup, or containment impact: Existing execution authority, cleanup and containment remain preserved. - Generated metadata, package, or installation impact: no metadata or dependency changes. ## Evidence and regression coverage The focused file has three passing tests, including one added regression. An owned Chrome 154.0.8037.94 fixture captured zero selected popup errors before and one after; the owned browser was closed. Tests exercise production parsing, filesystem, HTTP, or browser seams, without module mocks. Evidence above is executed; unverified platform/provider coverage is stated explicitly. ## Validation performed All required local gates passed on the signed commit: - `npm run check:pr` - `npm run check:ci` - `npm run verify:package` - `npm pack --dry-run` Development runtime: Node.js 24.18.0 and npm 11.16.0. Upstream CI is separate from these local results. ## Compatibility, safety, and release No migration or package dependency changes. Real Hopper/Ghidra verification was not run; this patch does not change those providers. Remaining proof limits are stated above. The final diff contains source and tests only. 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:18 +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#2102
No description provided.