mike/frontend
QA Runner 36cddb2566 fix: batch directory-modal project fetch instead of N+1 getProject burst
Every directory picker (AddDocumentsModal, UseWorkflowModal, the assistant
project selector) loads its "Projects" tab through useDirectoryData, which
fired one GET /projects/:id for EVERY existing project the moment the modal
opened. Each of those requests costs an auth verification against GoTrue
plus ~6 PostgREST queries, so an account with N projects produced an
~8xN-request burst on the Supabase gateway per modal open.

Under that burst the gateway genuinely falls over: measured locally against
the Supabase CLI stack, overlapping modal-open storms drove GoTrue into
Postgres connection exhaustion ("failed to connect ... context deadline
exceeded") and produced 467x 500 + 641x 504 on /auth/v1/user in a single
run — surfacing to users as failed project creates/loads, and to the e2e
suite as the intermittent Kong 502s its specs currently retry around.

Fix: GET /projects now accepts ?include=documents and returns each
project's documents from one batched query (same attach helpers as
GET /projects/:id, run once across all documents), and useDirectoryData
uses it. A modal open is now 1 API request and a fixed number of DB
queries regardless of project count. After the change the same storm
harness produced zero 5xx and zero auth failures.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-20 22:05:48 -07:00
..
public feat: refresh workflows and workflow editor UI 2026-07-20 03:04:47 +08:00
src fix: batch directory-modal project fetch instead of N+1 getProject burst 2026-07-20 22:05:48 -07:00
.env.local.example Add courtlistener intergration, liquid glass redesign, UI improvements, version control, various fixes 2026-06-06 15:48:47 +08:00
bun.lock feat: workflow, UI and document support updates 2026-07-08 18:27:28 +08:00
components.json Add local repo contents 2026-04-29 19:49:06 +02:00
eslint.config.mjs Add local repo contents 2026-04-29 19:49:06 +02:00
next.config.ts Add local repo contents 2026-04-29 19:49:06 +02:00
open-next.config.ts Add local repo contents 2026-04-29 19:49:06 +02:00
package-lock.json Sync workflow, asst extra input, excel + ppt support and modal updates 2026-07-04 23:24:31 +08:00
package.json feat: workflow, UI and document support updates 2026-07-08 18:27:28 +08:00
postcss.config.mjs Add local repo contents 2026-04-29 19:49:06 +02:00
tsconfig.json chore: update Next and Cloudflare dependencies 2026-05-12 13:40:01 +08:00