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

ui-react: classify coarse rail activation failures in seeded navigation proof

Open
#1,971 0 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
12/100
Issue type
Bug
Clarity
Mostly clear
Activity status
Active
Tech stack
playwright, react, typescript
Domain
testing

Research direction

Start with packages/ui-react/tests/browser/desktop-navigation.pointer.tsx, especially the press helper at lines 126-138 and the failing assertions at lines 426, 442 and 469, then read D52 and D54 in the design-kit decision docs. Reproduce with the pinned Playwright image and the seeded rail-coarse command given in the issue. Done means each of the three failures has recorded native touch, hit-target, store and rendered-surface evidence, with per-case reproduction counts, and no correction is selected without a supported responsible boundary.

Written by the indexing model from the issue text.

Description

agent-ready area: ci area: ui-react priority: p2 type: spike

Context

Found during #1737's bounded reproduction pass at main 400c50ed231f33eeca875ec9223b24ad535b2b22 on 2026-10-15. The unchanged complete desktop-navigation.pointer.tsx file ran under rail-coarse with randomized test order, fixed seed 1737: 115 passes / three assertion failures, 118 total, 86.73 seconds. All eight All commands pointer/Enter/Escape/Space sequences passed. These three failures are separate observations; no common cause or order dependence is established.

  • with Files open, every destination is one rail press (D52 §2, #1075): dark, 900: Actions drawn after one press with Files open, expected true / received false (test, packages/ui-react/tests/browser/desktop-navigation.pointer.tsx:426).
  • one rail Files activation from activity draws it (D52 N1): light, 1280: Files flag from activity, expected true / received false (test, same file:442).
  • acts run the palette's handlers, mid-turn too, and the briefing says why: light, 1280: Add opens mid-turn, expected true / received false (test, same file:469).

The first and third exhausted existing polls; the second failed its immediate store assertion. All reached native runtime assertions. Existing press (packages/ui-react/tests/browser/desktop-navigation.pointer.tsx:126-138) sends native touchStart/touchEnd at a button's inset corner. Full log and screenshots retained outside authored source. No source changes, waits, retries, timeout increases or guard changes.

Pinned mcr.microsoft.com/playwright:v1.63.0-noble, disabled network, shared IPC, normal UID, read-only locked fonts, exact-SHA built workspace. Other investigations shared the host; no deliberate load/CPU quota. A second invocation briefly overlapped during setup and was stopped; its output is excluded. No isolated-contention claim. #1257's listed constrained-load cases do not name these assertions.

Command from packages/ui-kit inside the image:

node /repo/node_modules/vitest/vitest.mjs run --project=rail-coarse --browser.fileParallelism=false --sequence.shuffle.tests --sequence.seed=1737 ../ui-react/tests/browser/desktop-navigation.pointer.tsx

Read D52 in docs/decisions/design-kit/sessions-and-drafts.md and D54 in docs/decisions/design-kit/overlays.md before selecting corrections.

A subsequent matched declaration-order control removed only the shuffle/seed options and added JSON reporting. It passed all 118 cases, zero failures or skips, exit 0. This establishes a successful control, not order causation: there is only one completed run per condition, and the briefly overlapping setup is a limitation of the first run. All original assertions and guards remained enabled.

Out of scope

#1737's native Space failure, redesign, weakened one-press/drawn/state guarantees, forced clicks, sleeps, retry-as-correction, deadline increases or assuming a common cause.

Scope

Classify and reduce these three native coarse-pointer activation observations. Compare dispatch, hit target, state and rendered destination evidence under declared/seeded order and isolate required preconditioning. File separately scoped correction work when responsible boundaries differ.

Acceptance criteria

  • Preserve SHA, command, seed, exact assertions and failure screenshots.
  • Capture native touch/hit-target, store and rendered-surface observations per failure; distinguish lost input, geometry, delayed commit, fixture cleanup and product behavior through controlled comparisons.
  • Report per-case reproduction counts and order/preconditioning dependence; successful controls do not erase failed receipts.
  • Select no correction without supported responsible boundaries. Later corrections need meaningful failing-first/restored mutations preserving original guarantees.

Verification

Pinned offline repository Chromium harness with existing fixture/font/egress guards. Keep focused reductions and complete-file context distinct. No API keys/network required.

Contract impact

None selected: investigation only. Future product corrections require normal changeset/contract assessment.

Priority p2: wanted unscheduled diagnosis. Observed assertions are investigation inputs; missing causes are its output, so no invented needs: repro prerequisite.

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

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.