Upload + Parsing
Current intake and review flow used by Hugo today.Live flow
POST /funds/:fundSlug/uploadinsrc/pages/upload/upload-create.tsxvalidates request/body and delegates toingestIslUpload.ingestIslUploadinsrc/services/isl-ingest.tscallsingestUploadinsrc/services/ingest.ts.- Ingest writes a source row to
side_letter_versions(commitment-scoped) withparse_state='queued', stores the file in R2, and sends PARSE_QUEUE. - Parse worker entrypoint
src/queues/parse-queue.tsinvokesparseDocumentJob. - Parse orchestrator in
src/services/parse.tsloads parser inputs, calls classification, resolves context, and writes only draft artifacts: clause_intake_draftsclause_intake_sourcesdocument_extracted_paragraphsclause_intake_reuse_suggestionsclause_intake_draft_grants(MSL only)- Parsing updates source row parse state and
review_statetopending; no operative clause applicability is created yet. - Human review happens at
src/pages/upload-review/handlers.tsxand promotes selected drafts throughsrc/services/review.ts. - On confirmation, reviewed clauses are written into
clausesanddocument_clause_occurrencesbecomes live; source row is markedreview_state='reviewed'and set as current. - Retry and status endpoints read the latest parse attempt and draft state from:
src/pages/upload/parse-status-handlers.tsxsrc/pages/upload/inline-status-handler.tsxsrc/db/documents.ts(state + latest parse error)
Route wiring
src/routes/page-upload-routes.tsxwires page upload and upload-review endpoints.src/pages/upload/handlers.tsxexports the route entry points.src/pages/upload/queries.tsprovides inbox rows and tab mapping (including the UI alias ofreviewedascomplete).
Review boundary
Parsing writes only draft artifacts and metadata. The system does not treat parser output as final clause assignments until the review action confirms clauses. That confirmation step is where live records are created or re-used and where commitment_clause_assignments and is_current are updated.
Source files
Canonical current flow implementation is split across:
src/services/parse.ts(orchestration + queue/attempt alignment)src/services/parse-persistence.ts(draft persistence)src/services/review.ts(review confirmation/rejection and live promotion)src/services/document-parser.ts/src/services/isl-classifier.tssrc/services/isl-parse-context.tssrc/services/upload-review-load.ts/src/pages/upload-review/actions.tsxsrc/services/document-source.tsandsrc/queues/scheduled-sweep.tsfor resilience and recovery.