Hacktoberfest 2026: the issues maintainers tagged for October, open and beginner-friendly. Browse Hacktoberfest issues

ci: full grouped diagram capture exceeds WebKit case deadline

Open
#2,402 3 comments 0 reactions 0 assignees View on GitHub

Maintainers usually reply within 1 day

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
30/100
Issue type
Bug
Clarity
Clearly specified
Activity status
Active
Tech stack
github-actions, playwright, react, typescript
Domain
ci-cd, testing

Research direction

Start with packages/ui-react/tests/browser/diagrams-callouts.layout.tsx:22-30 and the capture case at lines 152-160, then inspect the preserved WebKit run, raw job log, case report, and verified browser-proof-2 artifact. Use the pinned offline runner command in the issue with bounded stage and process evidence to separate mount, readiness, population checks, and capture; the issue requires preserving deadlines and assertions. Done means attributing the timed-out operation with evidence, or recording the remaining causal gap, and providing the required failing-first or mutation receipt and complete hosted proof for any justified fix.

Written by the indexing model from the issue text.

Description

area: ci area: ui-react needs: repro priority: p2 type: test

Context

Ready run 39084453976, attempt 1, browser (2) 117548165246, checks out d2cb2d2a2f5e31e4a8a344dd23e16cd7faf79812, parents base 68e12f27eb249c9fe7262a498a0397c04bbda8f4 / head fc086b3498ed55a5423a41cab4e31eddd6dccd05, tree 136b600f9c19ae18c48961218cd577ac04db3abf. Artifact browser-proof-2 (12120218335) is downloaded and API SHA-256 verified: f9108327a3996cb12a015a5b5a4900ed3acac1dbd86bbad3a0f5515d82299149. Its independent case report agrees with the raw job log.

WebKit literal to grouped full notes capture light in packages/ui-react/tests/browser/diagrams-callouts.layout.tsx exceeds the unchanged 15,000-ms case deadline; the case report records 15,429 ms. The split capture case mounts the literal source, updates the retained client root to all 1,024 notes, asserts the full source/index population, then performs the real diagram capture (test, packages/ui-react/tests/browser/diagrams-callouts.layout.tsx:22-30; capture case at lines 152-160). The log attributes the deadline to the test wrapper, not a specific rendering or capture operation.

This occurs after #2351's delivered literal-case decomposition. #2386 owns the different authored-narrow 1,024-note case, which independently failed in this same run (16,743 ms) and was subsequently corrected through #2393. That source-specific correction does not qualify this literal capture. Duplicate searches for diagrams-callouts and the exact literal capture failure found no open owner for this new boundary.

#2188 changes only queue continuity tests/fixture and wait evidence. This callout source is byte-identical to base, SHA-256 64e5d794fe1a9f54386d712bb445d75d8e9fd50ac0e271b791de6ca4a0948b44. Prior run 39082194681 passes this source; its overall aggregate separately failed base freshness. Neither source separation nor the earlier pass establishes a cause or makes the present run green. The failed shard has 169 passing / two failing files and 5,075 passing / three failing tests; the third failure is the separate #1737 palette activation recurrence.

Supports #1855's required complete hosted proof. This is an independently scoped verification prerequisite, not a completed test-cost optimization.

Scope

Recover the natural failure's precise operation boundary and reproduce with bounded, owned stage/process evidence. Select a source-specific correction only after attribution, or document the remaining causal evidence gap.

Out of scope

No unchanged CI retry, case-timeout increase, dropped source/index/capture assertions, offline/font guard weakening, skipped themes or capture, default worker serialization, or silently expanding #2386's authored-narrow correction.

Acceptance criteria

  • Preserve original actual checkout/runtime/pinned image, raw failure, case report and verified artifact identity.
  • Attribute the timed-out operation with bounded native stage/ownership evidence, separating mount, ready, population checks and actual capture; retain an honest unresolved gap if it does not recur.
  • Any correction preserves the retained client root, all 1,024 source notes/indices, light/dark/print cases, exact capture identifiers, real served styles/fonts and whole-case teardown ownership.
  • A justified fix has a meaningful failing-first or mutation/restored receipt, complete affected pinned Chromium/WebKit execution, required preflight and fresh complete selected hosted proof.

Verification

Use a dedicated checkout with its own frozen dependencies and owned scratch. Preserve original test deadlines and the pinned offline runner: node scripts/visual.mjs --project=diagrams-webkit --filter=diagrams-callouts.layout. Bound diagnostic commands and retain exact source, command, first failed stage, child/output/cleanup completion and resource receipts. A passing rerun alone is not causal repair.

Contract impact

None selected. Internal proof diagnosis; no production policy or public contract change. Priority p2 is inherited from blocked #1855. No release implementation is claimed by filing this diagnostic.

Recovered command-stage evidence — 2026-10-20

2026-10-20 evidence reconciliation for #1855: the original failed browser job already contains a completed WebKit callouts-1024-light capture command. The raw log records start at 00:59:26.537Z, pending screenshot at command +12,564 ms, and completion including close at +13,051 ms (00:59:39.589Z). Completed phases are source 1,657 ms, create-page 751, replay guard 24, viewport 6, content 3,661, fonts 1,462, screenshot 5,482 and close 7. These are command timings, not rendering CPU measurements; screenshot includes capture, file write and replay assertion.

The original case still fails its unchanged 15,000-ms deadline, with 15,429 ms in the case report. The log lacks correlated case-start, mount/ready, population and whole-case teardown timestamps. Subtracting command time from case time does not measure mount cost or identify which operation crossed the deadline. The artifact was downloaded again and independently matched GitHub's SHA-256 f9108327a3996cb12a015a5b5a4900ed3acac1dbd86bbad3a0f5515d82299149; actual checkout remains d2cb2d2a2f5e31e4a8a344dd23e16cd7faf79812. This is recovered historical evidence, not a new execution or repair.

Source review at main 468618cf106c3e793cbb030f8fc90bf8d018913f confirms the original full capture body and capture command remain unchanged. #2386's authored-narrow correction has delivered through #2393 and does not repair this separate full capture. #2435 improves future artifact retention but cannot recover absent historical images or establish a cause.

Remaining work is to correlate a natural failing original case with its mount/ready/population/capture/teardown boundaries and owned resource observations, then qualify a causal correction with all original guarantees and the 15-second deadline preserved. #2402 and #1855 remain open; no unchanged retry, blocker removal or new runtime claim follows from this audit.

Dominant language
TypeScript
Stars
1
Forks
0
Avg merge
4h 40m
Merged PRs (30d)
953

Getting set up

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from schlessera/brain-kit

All issues in schlessera/brain-kit

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.