Conversation
…ture metadata executeFirstCell() now calls waitForCodeCells(1, 30000) before querying the DOM. Kernel idle can arrive before cells materialize from Automerge sync, so the 5s waitForExist was too short on CI. Also migrates notebook fixtures to the canonical runt-nested metadata format: uv/conda deps now live under metadata.runt instead of as top-level siblings. Removes empty inline dep blocks from vanilla and project-based notebooks that should fall through to pool/project environments.
a4339e5 to
9e72f1b
Compare
rgbkrk
added a commit
that referenced
this pull request
Mar 11, 2026
The smoke spec queries for code cells directly without using executeFirstCell from helpers, so it missed the waitForCodeCells fix from PR #709. Same root cause — kernel idle arrives before cells materialize from Automerge sync.
rgbkrk
added a commit
that referenced
this pull request
Mar 12, 2026
* docs(sync): add Phase A note to notebook_sync_client module doc * fix(e2e): wait for cell materialization in smoke test The smoke spec queries for code cells directly without using executeFirstCell from helpers, so it missed the waitForCodeCells fix from PR #709. Same root cause — kernel idle arrives before cells materialize from Automerge sync. * feat(e2e): add data-notebook-synced attribute for sync readiness NotebookView now exposes data-notebook-synced and data-cell-count attributes on its container. data-notebook-synced is true when isLoading is false and cells have rendered — the canonical signal that Automerge sync is complete. E2E tests use waitForNotebookSynced() instead of polling for cell DOM elements with arbitrary timeouts. This replaces waitForCodeCells in executeFirstCell and the smoke test. * chore(fixtures): replace heavy deps with lightweight alternatives pandas, numpy, scipy, matplotlib, seaborn → httpx, markupsafe. These fixtures exist to test environment detection and kernel launch, not data science imports. Heavy deps add 30+ seconds of install time on CI cold runners, causing timeout flakes in integration tests.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
E2E timing fix:
executeFirstCell()now waits for cells to materialize from Automerge sync before querying the DOM. Kernel idle arrives via a simple broadcast event, but cell content requires a full Automerge sync round-trip (daemon → relay → WASM → materializeCells → React). The 5swaitForExistwas losing that race on CI.Fixture metadata migration: Moves
uv/condadeps from top-levelmetadata.uvto the canonicalmetadata.runt.uvnested format. Removes empty inline dep blocks from1-vanilla.ipynb(should fall through to prewarmed pool) andtest-isolation.ipynb/dark-mode-test.ipynb(no inline deps needed).All 132 notebook + trust tests pass with the migrated fixtures.
PR submitted by @rgbkrk's agent Quill, via Zed