Skip to content

feat(effect-e2e): record navigation timing, page reveal and layout shifts - #3

Merged
systemfsoftware-bot merged 2 commits into
mainfrom
port-860
Oct 29, 2026
Merged

systemfsoftware-bot merged 2 commits into
mainfrom
port-860

Conversation

@systemfsoftware-bot

Copy link
Copy Markdown
Contributor

Port of systemfsoftware/systemfsoftware#860 (paths mapped; no changesets in this repo).

Fixed from the review (CHANGES REQUESTED):

  • Blocking: the navigation-records law raced the asynchronous page reporter. open now returns only once the navigation and reveal entries are recorded (bounded wait), the law is unchanged.
  • Contested P1 (ruled P2): the reporter is installed only on engines that declaring navigation-timing (chromium); reports are accepted from the main frame only (also closes the iframe P3).

Follow-ups (P2/P3), not done here:

  • engine-law.ts: assert undeclared memory reports are removed.
  • web-engine.integration.test.ts: exercise a real layout shift.
  • page-reporter.ts: attribute layout shifts to when they occur, not when delivered.
  • page-reporter.ts: a continually shifting page can fill the 500-entry log and push out load-time console/network/page-error entries.
  • page-reporter.ts: full location.href (query and fragment) reaches the classify prompt.
  • Widened surface (LogEntry, EngineCapability, DeliveryType): confirm bump level while pre-1.0.

https://claude.ai/code/session_017rX35xUAHEjVVaDKVVzubW

…ifts

Ported from systemfsoftware/systemfsoftware#860. Fixes the review's blocking
finding: open now returns only once the navigation and reveal records are
delivered, and the page reporter is installed only on engines that declare
navigation-timing, for the main frame only.

Claude-Session: https://claude.ai/code/session_017rX35xUAHEjVVaDKVVzubW
…veal

The wait was satisfied by the about:blank entries the reporter also records,
so open could return before the page's own reveal landed. Match on the opened
URL, and have the navigation-records law say which entries it saw.

Claude-Session: https://claude.ai/code/session_017rX35xUAHEjVVaDKVVzubW
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.

1 participant