Paging used from/size, which OpenSearch hard-caps at index.max_result_window (default 10000). Agents with more findings 400'd at from=10000, the whole agent then read as '0 vulns' and its backfill was skipped — so hosts with 24k/27k findings silently contributed nothing. Switch full syncs to the scroll API (no window ceiling, no unique-sort requirement), with a fallback to windowed paging if the indexer refuses scroll; explicit-offset callers keep from/size but stop at the window instead of erroring. Also hide the dashboard AI Audit controls + recommendations panel from read-only users (the audit endpoint is editor-gated and threw 'Access denied').
TrueVuln Frontend
Next.js 16 (App Router) UI for TrueVuln. See the root README for setup, deployment, and configuration — this app is deployed via Docker Compose alongside the backend, not standalone or on Vercel.
Local dev (without Docker)
npm install
npm run dev
Open http://localhost:3000. The dev server proxies API calls to the backend — see ../README.DEV.md for the full local (non-Docker) setup.