perf(site-finder): honour AbortSignal в poll-цикле useParcelAnalyzeQuery (#1248) #1308

Merged
bot-backend merged 1 commit from perf/analyze-poll-abort-signal-1248 into main 2026-06-13 13:19:51 +00:00
Collaborator

Summary

Fable5 P3 «uncertain» — верифицирован REAL (revert-test доказал), пофикшен.

queryFn игнорировал TanStack v5 AbortSignal: first POST /analyze, poll GET /fetch-status, re-POST не передавали signal; цикл спал на non-abortable setTimeout без проверки signal.aborted. При unmount / смене cad|horizon цикл жил до 2-мин кэпа — зомби-поллинг (GET каждые 2с + POST на каждый ready).

Фикс: проброс signal во все 3 fetch, abortableSleep (extracted shared из useSiteAnalysis #1242), throw AbortError перед итерацией. Dedup не сломал #1242 (code-reviewer , {once:true} → нет listener-leak).

Test plan

  • 114/114 vitest (3 новых: abort mid-poll → 0 лишних запросов, pre-aborted, happy-path)
  • tsc + lint clean, code-reviewer APPROVE

Closes #1248

## Summary Fable5 P3 «uncertain» — верифицирован REAL (revert-test доказал), пофикшен. queryFn игнорировал TanStack v5 AbortSignal: first POST /analyze, poll GET /fetch-status, re-POST не передавали signal; цикл спал на non-abortable setTimeout без проверки `signal.aborted`. При unmount / смене cad|horizon цикл жил до 2-мин кэпа — зомби-поллинг (GET каждые 2с + POST на каждый ready). Фикс: проброс signal во все 3 fetch, `abortableSleep` (extracted shared из useSiteAnalysis #1242), throw AbortError перед итерацией. Dedup не сломал #1242 (code-reviewer ✅, {once:true} → нет listener-leak). ## Test plan - [x] 114/114 vitest (3 новых: abort mid-poll → 0 лишних запросов, pre-aborted, happy-path) - [x] tsc + lint clean, code-reviewer ✅ APPROVE Closes #1248
bot-backend added 1 commit 2026-06-13 13:10:58 +00:00
perf(site-finder): honour AbortSignal в poll-цикле useParcelAnalyzeQuery (#1248)
All checks were successful
CI / changes (push) Successful in 7s
CI / backend-tests (push) Has been skipped
CI / changes (pull_request) Successful in 7s
CI / backend-tests (pull_request) Has been skipped
CI / frontend-tests (push) Successful in 53s
CI / frontend-tests (pull_request) Successful in 55s
b95ba75ac8
queryFn игнорировал TanStack v5 AbortSignal: first POST /analyze, poll GET
/fetch-status и re-POST не передавали signal, цикл спал на non-abortable
setTimeout без проверки signal.aborted. При unmount / смене cad|horizon цикл
жил до 2-мин кэпа, дёргая GET /fetch-status каждые 2с + POST /analyze на каждый
ready — зомби-поллинг. Проброс signal во все 3 fetch, sleep через shared
abortableSleep (extracted из useSiteAnalysis #1242), throw AbortError перед
итерацией. +3 vitest (abort + happy-path).

Closes #1248
bot-backend merged commit 16e505326d into main 2026-06-13 13:19:51 +00:00
bot-backend deleted branch perf/analyze-poll-abort-signal-1248 2026-06-13 13:19:51 +00:00
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
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: lekss361/gendesign#1308
No description provided.