add functional tests for backfill dispatch and dedup
8 tests covering Task 8:
- D1: first-time visit dispatches BackfillJob and renders loading page
- D2: concurrent first visits dispatch only once (dedup gate)
- D3: in-progress job visit shows loading page without re-dispatching
- D4: HandleNotFoundError renders 404 with no rows created
- D5: BlueskyRateLimitedError renders 503 with no rows created
- D6: dispatch is awaited before render (throwing dispatch → 500, not 200)
- D7: InvalidHandleError from normalize still renders 400 (Task 6 unchanged)
- D8: already-backfilled user doesn't trigger dispatch
Uses queue.fake()/queue.restore() from @adonisjs/queue/services/main for
job assertion, and container swap() for HandleResolver mocking.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>