Skip to content

Publish Console browser fixture records atomically - #1978

Merged
JacobStephens2 merged 1 commit into
mainfrom
issue-1350
Nov 10, 2026
Merged

JacobStephens2 merged 1 commit into
mainfrom
issue-1350

Conversation

@JacobStephens2

@JacobStephens2 JacobStephens2 commented Nov 10, 2026 •

Copy link
Copy Markdown
Owner

Summary

 Console browser fixture publication
-writeFile(record, JSON)
+replaceRecord(record, JSON) // temporary file + rename

Publish Command records atomically in the seven remaining browser files and the fixture helper invoked by the spans tests. Convert setup writes for consistency and retain log, Session-trace and configuration writes.

Closes #1350

Evidence

Execution evidence

The held-write regression pauses the title-only update after truncation, refreshes all three tabs, and waits for the shared notification count to sample the result. A partial published record was skipped by the reader, causing a false fall followed by a rise when the complete record returned. Replacing a temporary file leaves the earlier complete record readable until rename.

Before and after command (Chromium installed in the private cache shown):

PLAYWRIGHT_BROWSERS_PATH=/tmp/thirdshift-1350-browsers.ceq7Vs node --require ./console/reproductions/notification-record-write.cjs --test --test-name-pattern '^several tabs notify' console/tests/notifications.test.cjs
  • Before: Record write held: 3 pages and shared notification count observed 1; the existing title-only assertion failed with 2 !== 1 (actual 2 notifications, expected 1).
  • After: Record write held: 3 pages and shared notification count observed 2; # pass 1, # fail 0. The assertion that a title-only update produces no extra notification is preserved. The normal notification test also refreshes each tab before rename and checks the earlier title and count.

Focused browser files: PLAYWRIGHT_BROWSERS_PATH=/tmp/thirdshift-1350-browsers.ceq7Vs node --test --test-concurrency=2 console/tests/stop.test.cjs console/tests/notifications.test.cjs console/tests/logs.test.cjs console/tests/time.test.cjs console/tests/waterfall.test.cjs console/tests/themes-regressions.test.cjs console/tests/spans.test.cjs — 42 passed, 0 failed.

Final affected checks: PLAYWRIGHT_BROWSERS_PATH=/tmp/thirdshift-1350-browsers.ceq7Vs scripts/affected-tests refs/remotes/origin/main — passed cargo build --locked (1.69s) and npm test --prefix console (185 passed, 0 failed; 204.60s).

The initial scripts/affected-tests main used the stale local main ref, selected unrelated Go changes, and stopped because go is unavailable. The rerun uses the current remote main ref used for review.

Test seams: Command-record publication through the filesystem, observed through the Console's three-tab notification behavior.

Review coverage

Independent Standards and Spec reviews against refs/remotes/origin/main (84c5856e) found 0 findings each. Both reviewers read all nine changed files; unread changed files: none. Generated-output exclusions: none. Reports and final files-read lists are retained in .thirdshift-review-UYLVk8/standards.md and spec.md, with counts in summary.json.

Unaddressed findings

  • Standards: none.
  • Spec: none.
  • Security: none.

Security review outcome

No unaddressed introduced findings.

Merge Danger

Door: two-way

Fixture-only changes; straightforward to revert.

Blast Radius: tests

Built with codex codex-cli 0.166.0 · gpt-6.1-sol · xhigh

@JacobStephens2
JacobStephens2 merged commit 9712feb into main Nov 10, 2026
4 checks passed
@JacobStephens2
JacobStephens2 deleted the issue-1350 branch November 10, 2026 21:21
This was referenced Nov 11, 2026
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.

Other Console browser tests rewrite Command records in place while a page is open

1 participant