Skip to content

Fix unreliable deep-link URL loading#8

Merged
kastnerp merged 1 commit intodevfrom
claude/flamboyant-khayyam
Apr 10, 2026
Merged

Fix unreliable deep-link URL loading#8
kastnerp merged 1 commit intodevfrom
claude/flamboyant-khayyam

Conversation

@kastnerp
Copy link
Copy Markdown
Member

@kastnerp kastnerp commented Apr 9, 2026

Summary

  • Add 8s timeout per fetch request via AbortController — no more infinite hangs on unresponsive CORS proxies
  • Race all CORS proxies concurrently with Promise.any instead of trying them sequentially — fastest response wins
  • Reduce retry cycles (3→2) and delay (1500ms→500ms) to cut total wait time
  • Add AbortSignal plumbing so Retry button cancels any in-flight load, preventing race conditions

Context

Deep links like ?url=https://eddycfd.uber.space/misc/DesignExplorer_SelectedResults.csv (38KB) were taking forever to load and only worked after ~10 reloads. Root cause: each fetch had no timeout, proxies were tried one-by-one, and 3 retry cycles with 1.5s delays compounded the issue.

Test plan

  • npm run check — 0 errors
  • npm test — 40/40 pass
  • npm run build — clean
  • Manually test deep link: ?url=https://eddycfd.uber.space/misc/DesignExplorer_SelectedResults.csv
  • Verify Retry button works without double-loading

🤖 Generated with Claude Code

…xy racing

The URL loader was extremely slow and unreliable for external CSV deep links
because fetches had no timeout (hanging forever on unresponsive proxies),
proxies were tried sequentially, and 3 retry cycles with 1.5s delays added
unnecessary wait time.

Changes:
- Add 8s timeout per fetch via AbortController (no more infinite hangs)
- Race CORS proxies concurrently with Promise.any (fastest wins)
- Reduce retries from 3 to 2 and delay from 1.5s to 0.5s
- Properly throw on non-OK HTTP status instead of silently falling through
- Add AbortSignal support so retries/reloads cancel in-flight requests
- Prevent race conditions when user clicks Retry during an active load

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@kastnerp kastnerp merged commit cd8c763 into dev Apr 10, 2026
@kastnerp kastnerp deleted the claude/flamboyant-khayyam branch April 22, 2026 17:59
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant