Skip to content

Phase 1 — Never hard-reject intake (best-effort ingest for any file)#11

Closed
xt0n1-t3ch wants to merge 1 commit into
feat/reve-overhaulfrom
feat/phase-1-intake
Closed

Phase 1 — Never hard-reject intake (best-effort ingest for any file)#11
xt0n1-t3ch wants to merge 1 commit into
feat/reve-overhaulfrom
feat/phase-1-intake

Conversation

@xt0n1-t3ch

Copy link
Copy Markdown
Owner

Phase 1 of the Reve Intelligence overhaul. Closes #2. Stacked on #10 (base = feat/reve-overhaul).

What changed

The app no longer hard-rejects anything. Every upload becomes a reviewable record.

  • No extension whitelist. Intake validation keeps only operational limits (empty + oversize). Any file type is accepted.
  • Parser never throws on unknown types. Unrecognized extensions fall through to best-effort visible-text extraction instead of an "unsupported extension" error.
  • No terminal "Unsupported" state. Removed DocumentSupportPolicy, the MarkUnsupported branch, and the NormalizeUnsupportedDocuments startup pass. Unknown / low-confidence documents are ingested as reviewable records that surface why they're uncertain (classification + missing-field warnings).
  • Raw export always works. Removed the export Conflict guard.
  • Test contract updated to pin the new behavior: an unrecognized file is ingested best-effort (low confidence, type Unknown) and stays exportable.

Proof

  • dotnet build 0 warnings; dotnet test unit 2/2 + integration 5/5; dotnet format --verify-no-changes clean.
  • In-app: a gibberish .xyz file becomes a reviewable record — status Extracted, type Unknown, confidence 26% (honest, not inflated), JSON/CSV export enabled, exceptions explain the uncertainty.

Notes

Flat per-field confidence and the truthful preview/branding still land in #4 and #6. Real typed parsers (Office/Excel/email) land in #3.

Phase 1 of the Reve Intelligence overhaul (#2).

- Remove the extension whitelist from intake validation; only operational
  limits remain (empty + oversize). Any file type is accepted.
- The parser routes unknown extensions through best-effort visible-text
  extraction instead of throwing an unsupported-extension error.
- Drop the terminal "Unsupported" path: unknown / low-confidence documents are
  still ingested as reviewable records that surface why they are uncertain,
  rather than being quarantined. Delete DocumentSupportPolicy and the
  NormalizeUnsupportedDocuments startup pass.
- Raw export now works for any record (removed the export Conflict guard).
- Update the integration test to pin the new contract.

Build 0 warnings; unit 2/2 and integration 5/5 green; format clean.

Refs #2
@xt0n1-t3ch

Copy link
Copy Markdown
Owner Author

Superseded: Phase 1 (never-reject) and Phase 2 (parser router) are coupled and ship together in the combined PR. The standalone Phase 1 commit was incomplete; folded into the clean combined branch.

@xt0n1-t3ch xt0n1-t3ch closed this Jun 13, 2026
@xt0n1-t3ch xt0n1-t3ch deleted the feat/phase-1-intake branch June 13, 2026 16:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant