Skip to content

feat: add document extraction foundation - #267

Draft
ptimizeroracle wants to merge 1 commit into
mainfrom
codex/document-extraction-mvp
Draft

ptimizeroracle wants to merge 1 commit into
mainfrom
codex/document-extraction-mvp

Conversation

@ptimizeroracle

@ptimizeroracle ptimizeroracle commented Aug 20, 2026 •

Copy link
Copy Markdown
Owner

Summary

  • add a provider-neutral ondine.documents foundation behind injected parser and task-runner ports
  • preserve complete page manifests, stable source/task identities, field evidence, typed validation, partial completeness, and DataFrame conversion
  • reconcile task outputs by identity and make missing, duplicate, invalid, conflicting, or ungrounded results visible

Design boundary

This is deliberately separate from the existing RAG loader and tabular PipelineBuilder. It adds no PDF/OCR dependency and does not select a default parser.

Task identities include document bytes, parser/source graph, Pydantic schema, planner version, and the runner's model/prompt/normalization execution fingerprint.

Verification

  • 29 focused document conformance tests
  • 64 focused and adjacent regression tests passed
  • full unit suite: 1,509 passed, 17 skipped
  • Ruff, Ruff format, mypy, pydocstyle, Bandit, secret detection, and all pre-commit hooks passed

Deferred follow-ups

  • benchmark-driven parser adapter selection
  • Ondine-backed extraction task runner
  • durable document journal, resume, and budgets
  • small end-user extract_documents(path, schema, model=...) facade
  • bounding-box validation once adapters declare coordinate units

@coderabbitai

coderabbitai Bot commented Aug 20, 2026

Copy link
Copy Markdown
Contributor

Important

Review skipped

Draft detected.

Please check the settings in the CodeRabbit UI or the .coderabbit.yaml file in this repository. To trigger a single review, invoke the @coderabbitai review command.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: ca261881-efc8-4870-80d5-2c0920e38bb5

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

Use the checkbox below for a quick retry:

  • 🔍 Trigger review

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

This branch has not been deployed

No deployments
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