Tasks: Board drag probe misses 1,000-Task source under 4x CPU #1258

Open
opened 2026-10-06 23:50:38 +00:00 by kayg · 1 comment
Owner

Tasks performance probe finding (#1215)
Date: 2026-10-07
Environment: local release server, production SPA, Chromium CPU throttling 4x; 1,000 standalone Tasks seeded through POST /api/v1/notes/tasks. The profile selects view=next-7-days so seeded When/Deadline rows are present.
Command settings:
TASKS_PERF_ITEMS=1000 TASKS_PERF_RUNS=3 TASKS_PERF_BURST_SECONDS=5
TASKS_PERF_MEASUREMENT="local release server and production SPA, 1k Tasks"
The profile completed route readiness for 390 and 1440 px Board, List, and Matrix layouts. In the subsequent 1440 px Board drop-preview probe, the first To do Task row had a visible box and the pointer gesture began, but #dnd-action-dragged-el did not attach within 3 seconds. The profile stopped before recording its JSON or running the concurrent read burst.
Exact failure:
locator.waitFor: Timeout 3000ms exceeded.
waiting for locator('#dnd-action-dragged-el')
at measureDropPreview (apps/web/e2e/tasks-perf.mjs:131:49)
This is a low-priority interaction/performance finding under the 4x CPU stress profile. The normal Tasks E2E drag flow passed earlier on this branch with its real Task fixture. No production fix is confirmed from this probe alone.

Tasks performance probe finding (#1215) Date: 2026-10-07 Environment: local release server, production SPA, Chromium CPU throttling 4x; 1,000 standalone Tasks seeded through POST /api/v1/notes/tasks. The profile selects `view=next-7-days` so seeded When/Deadline rows are present. Command settings: TASKS_PERF_ITEMS=1000 TASKS_PERF_RUNS=3 TASKS_PERF_BURST_SECONDS=5 TASKS_PERF_MEASUREMENT="local release server and production SPA, 1k Tasks" The profile completed route readiness for 390 and 1440 px Board, List, and Matrix layouts. In the subsequent 1440 px Board drop-preview probe, the first To do Task row had a visible box and the pointer gesture began, but `#dnd-action-dragged-el` did not attach within 3 seconds. The profile stopped before recording its JSON or running the concurrent read burst. Exact failure: locator.waitFor: Timeout 3000ms exceeded. waiting for locator('#dnd-action-dragged-el') at measureDropPreview (apps/web/e2e/tasks-perf.mjs:131:49) This is a low-priority interaction/performance finding under the 4x CPU stress profile. The normal Tasks E2E drag flow passed earlier on this branch with its real Task fixture. No production fix is confirmed from this probe alone.
Author
Owner

Correction and follow-up: the failed profile attempted a pointer gesture; it did not establish that the DnD gesture began. I confirmed normal Tasks E2E drag works with its real small fixture, so the 4x CPU/1,000-Task probe remains unconfirmed as a product defect.

A route-only rerun saved measurements with TASKS_PERF_SKIP_DROP_PREVIEW=1 (commit 8e83c0f08). One sample per route under 4x CPU throttling measured visible-row readiness at 12.4 s Board, 29.2 s List and 24.0 s Matrix at 390 px; 17.8 s Board, 22.2 s List and 30.6 s Matrix at 1440 px. A 24-client, 5-second Tasks read burst completed 240/240 requests, p50 544 ms, p95 837 ms. The host load average rose from 19.79/30.18/37.51 to 35.05/35.69/36.61 during the run, so these local values are load-contaminated and are not a reliable baseline comparison. No matching Tasks UI baseline exists in docs/perf/baseline.json.

Evidence: target/tmp/tasks-drag-probe-2026-10-07.txt; route metrics: target/tmp/tasks-ui-1215-route-only.json (worktree only).

Correction and follow-up: the failed profile attempted a pointer gesture; it did not establish that the DnD gesture began. I confirmed normal Tasks E2E drag works with its real small fixture, so the 4x CPU/1,000-Task probe remains unconfirmed as a product defect. A route-only rerun saved measurements with `TASKS_PERF_SKIP_DROP_PREVIEW=1` (commit `8e83c0f08`). One sample per route under 4x CPU throttling measured visible-row readiness at 12.4 s Board, 29.2 s List and 24.0 s Matrix at 390 px; 17.8 s Board, 22.2 s List and 30.6 s Matrix at 1440 px. A 24-client, 5-second Tasks read burst completed 240/240 requests, p50 544 ms, p95 837 ms. The host load average rose from 19.79/30.18/37.51 to 35.05/35.69/36.61 during the run, so these local values are load-contaminated and are not a reliable baseline comparison. No matching Tasks UI baseline exists in `docs/perf/baseline.json`. Evidence: `target/tmp/tasks-drag-probe-2026-10-07.txt`; route metrics: `target/tmp/tasks-ui-1215-route-only.json` (worktree only).
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#1258
No description provided.