Skip to content

Add ExportWriter for combining CSV and NDJSON export pages - #28

Open
jasoncma wants to merge 4 commits into
prooflinedev:mainfrom
jasoncma:codex/export-writer
Open

jasoncma wants to merge 4 commits into
prooflinedev:mainfrom
jasoncma:codex/export-writer

Conversation

@jasoncma

@jasoncma jasoncma commented Nov 3, 2026 •

Copy link
Copy Markdown

Export consumers currently need their own file writing logic to avoid repeated CSV headers and joined records between pages. ExportWriter accepts ExportPage objects and writes them to a caller owned text stream, preserving record content while emitting the CSV header once.

The writer refuses a format change or changed CSV column order before writing the offending page. It handles quoted multiline headers, header only pages, and missing final newlines. The caller retains ownership of the stream. This is separate from cursor iteration and does not change the API contract or transport.

Validation: all 96 tests pass on the final change, including seven writer tests. Ruff lint and formatting pass, and the updated exports module passes mypy. The full check passed generation, contracts, typing, builds and wheel installation smoke before the final NDJSON newline correction; final focused checks and the full test suite were rerun after that correction. Source distribution installation smoke also passed for that build.

Prepared with AI coding assistance for the Founding GTM Lead application.

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Nov 3, 2026 •

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review ✅ Completed 2026-11-03T20:47:08.094379Z 14e9c17 PR opened
ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

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