Money import source choice stays on Source during tablet re-import #1206

Closed
opened 2026-10-06 15:36:03 +00:00 by kayg · 3 comments
Owner

Found during merge30j (#1140), head ff53d7b8b. Run the real production check cd apps/web && bun e2e/money-wizard-1140.mjs --inverse-only with the current server and macOS emulation. Phone Light completes refusal, successful Undo and Admin captures. Tablet Light completes the refused Undo, preserving the edited Budget and its receipt.

Reopening /money/import then pressing Enter on the second .source-choice leaves the view at source; the file input never appears. The existing setInputFiles assertion times out after 90 seconds at line 477. There is no reported browser exception. Both first-import selection and phone re-import worked in the same run. The failure screenshot is retained in artifacts/wizard-1140/failed-review.png.

Do not assume a parser or Undo failure: both imports and the refusal before this source-selection step worked. Check whether startup/recovery resets the chosen step or the test dispatches Enter before client event wiring is ready. Keep the existing interaction and assertions. This is a UI/test readiness gap, not evidence of data loss or an authorization hole.

Found during merge30j (#1140), head `ff53d7b8b`. Run the real production check `cd apps/web && bun e2e/money-wizard-1140.mjs --inverse-only` with the current server and macOS emulation. Phone Light completes refusal, successful Undo and Admin captures. Tablet Light completes the refused Undo, preserving the edited Budget and its receipt. Reopening `/money/import` then pressing Enter on the second `.source-choice` leaves the view at `source`; the file input never appears. The existing `setInputFiles` assertion times out after 90 seconds at line 477. There is no reported browser exception. Both first-import selection and phone re-import worked in the same run. The failure screenshot is retained in `artifacts/wizard-1140/failed-review.png`. Do not assume a parser or Undo failure: both imports and the refusal before this source-selection step worked. Check whether startup/recovery resets the chosen step or the test dispatches Enter before client event wiring is ready. Keep the existing interaction and assertions. This is a UI/test readiness gap, not evidence of data loss or an authorization hole.
Author
Owner

Reproduced on job/bash-money at ff53d7b8b in bun e2e/money-wizard-1140.mjs --inverse-only: the dark 390 px case timed out waiting for the file input at line 477 after keyboard source selection. Light 390 and 820 passed; two follow-up diagnostic runs of dark 390 also passed, confirming timing sensitivity. The failure screenshot is artifacts/wizard-1140/failed-review.png.

The route can show server-rendered Source content before the app's root keyboard proxy is attached. I will update the existing test to wait for [data-keyboard-proxy] before the same Enter press, following the readiness check already used by apps/web/e2e/mobile-focus.mjs. This is tracked by bash #1219.

Reproduced on `job/bash-money` at `ff53d7b8b` in `bun e2e/money-wizard-1140.mjs --inverse-only`: the dark 390 px case timed out waiting for the file input at line 477 after keyboard source selection. Light 390 and 820 passed; two follow-up diagnostic runs of dark 390 also passed, confirming timing sensitivity. The failure screenshot is `artifacts/wizard-1140/failed-review.png`. The route can show server-rendered Source content before the app's root keyboard proxy is attached. I will update the existing test to wait for `[data-keyboard-proxy]` before the same Enter press, following the readiness check already used by `apps/web/e2e/mobile-focus.mjs`. This is tracked by bash #1219.
Author
Owner

Fixed in job/bash-money commit 4ce3bdcee. The existing real-app inverse matrix now waits for the shared [data-keyboard-proxy] mount signal before sending Enter after each full route load. It still performs the same keyboard activation and retains the original file-input assertion.

Verification: bun e2e/money-wizard-1140.mjs --inverse-only passed all six macOS-emulated cases (390, 820 and 1440 px in light and dark); exit code 0. The run produced 48 screenshots in artifacts/wizard-1140/inverse-screenshots/. The test needed the readiness wait because the browser can render server-side Source content before client keyboard handlers hydrate.

Fixed in `job/bash-money` commit `4ce3bdcee`. The existing real-app inverse matrix now waits for the shared `[data-keyboard-proxy]` mount signal before sending Enter after each full route load. It still performs the same keyboard activation and retains the original file-input assertion. Verification: `bun e2e/money-wizard-1140.mjs --inverse-only` passed all six macOS-emulated cases (390, 820 and 1440 px in light and dark); exit code 0. The run produced 48 screenshots in `artifacts/wizard-1140/inverse-screenshots/`. The test needed the readiness wait because the browser can render server-side Source content before client keyboard handlers hydrate.
Author
Owner

Deployed to calternal.cloud in merge round 34 (d395b6e25), 2026-10-08 05:03 IST. Backup: /srv/calternal/backup-pre-m34-20261008-0132. Production healthy after 36 s; served build matches.

Deployed to calternal.cloud in merge round 34 (d395b6e25), 2026-10-08 05:03 IST. Backup: /srv/calternal/backup-pre-m34-20261008-0132. Production healthy after 36 s; served build matches.
kayg closed this issue 2026-10-07 23:54:37 +00:00
Commenting is not possible because the repository is archived.
No labels
No milestone
No project
No assignees
1 participant
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
kayg/calternal-v0#1206
No description provided.