Conversation
|
The latest updates on your projects. Learn more about Vercel for GitHub.
2 Skipped Deployments
|
This stack of pull requests is managed by Graphite. Learn more about stacking. |
49a4faa to
2a4d202
Compare
PR SummaryMedium Risk Overview Updates Written by Cursor Bugbot for commit 456597a. This will update automatically on new commits. Configure here. |
🤖 Augment PR SummarySummary: Adds a new ingest experience to the HASH frontend, including an upload page and a results viewer backed by a proxied Mastra API. Changes:
Notes: Upload/results require the Mastra API to be running (default 🤖 Was this summary useful? React with 👍 or 👎 |
Port the discovery pipeline UI from the internal agent-workflows prototype into the main HASH frontend as an /ingest route. Adds: - PDF upload with Ark UI FileUpload + SSE progress streaming - Results view with roster/claims sidebar and PDF page viewer with bbox overlays - Next.js rewrites to proxy /api/ingest/* to Mastra API (port 4111) - Sidebar navigation link under Agents section Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Git-ignore the memory/ directory used for AI-generated working documents (roadmaps, plans, research notes). Excluded from linters/formatters automatically via gitignore integration. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2a4d202 to
456597a
Compare
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 2 potential issues.
Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
| return () => { | ||
| abortController.abort(); | ||
| }; | ||
| }, [source]); |
There was a problem hiding this comment.
Missing router.isReady guard causes spurious initial fetch
Medium Severity
On the first render in Next.js, router.query is an empty object before hydration. The source useMemo evaluates with undefined query params, defaulting to { kind: "fixture", fixtureId: DEFAULT_FIXTURE_ID }. This triggers the useEffect to fetch the default fixture endpoint — even when the actual URL has ?runId=.... After hydration, router.query populates, source recomputes, and a second fetch fires (aborting the first). The result is a wasted network request to the fixture endpoint, which may flash an error if that endpoint isn't available, and a brief flicker of loading state. Guarding on router.isReady before computing source or running the fetch effect would prevent this.
Additional Locations (1)
| @@ -0,0 +1 @@ | |||
| environments/ | |||
There was a problem hiding this comment.
Unrelated .codex gitignore accidentally included in PR
Low Severity
The .codex/.gitignore file ignoring environments/ appears unrelated to the PR's purpose of adding an /ingest route. The PR description explicitly lists a .gitignore for memory/ but doesn't mention this .codex change. It looks like a developer tooling artifact that was inadvertently staged alongside the feature work.
| { | ||
| title: "Ingest", | ||
| path: "/ingest", | ||
| activeIfPathMatches: /^\/ingest/, | ||
| }, |
There was a problem hiding this comment.
I would not add this to the sidebar now as the page will be broken in production. The internal API is not accessible to the frontend in production so the current approach will never work there, and this is only for local development purposes at the moment – can we remove this?



🌟 What is the purpose of this PR?
Add an
/ingestroute to the HASH frontend that proxies to the Mastra API from the internal repo, enabling PDF upload and discovery pipeline results viewing.🔗 Related links
🚫 Blocked by
🔍 What does this change?
/ingestupload page with Ark UIFileUploaddrag-and-drop zone and SSE progress display/ingest/resultspage with roster/claims sidebar and PDF page viewer with bbox overlays/api/ingest/*→localhost:4111/discovery-runs/*(Mastra API)/api/ingest-fixtures/*rewrite for fixture dataworkersfeature flag@ark-ui/reactdependency (version-aligned at 5.26.2 withds-componentsandpetrinaut)useIngestRunhook for upload + SSEEventSourceprogress streamingRunStatus,IngestRunView, etc.).gitignoreformemory/directory (AI-generated working docs)Pre-Merge Checklist 🚀
🚢 Has this modified a publishable library?
This PR:
📜 Does this require a change to the docs?
The changes in this PR:
🕸️ Does this require a change to the Turbo Graph?
The changes in this PR:
🐾 Next steps
🛡 What tests cover this?
turbo lint:tsc --filter=@apps/hash-frontend— type checkingyarn fix:eslint— zero lint errorsyarn fix:format— formatting clean❓ How to test this?
yarn external-services up -dyarn start:graph,yarn dev:backend,yarn dev:frontendTEMPORAL_NAMESPACE=HASH yarn dev:apialice@example.com/password/ingest— upload panel renders within sidebar layout📹 Demo