Repository navigation
fix(csv): preserve finding occurrences and literal apostrophes - #1247
Conversation
Codex Review SummaryThis comment shows the latest Codex review activity on this pull request.
ℹ️ About Codex in GitHubYour team has set up Codex to review pull requests in this repo. Reviews are triggered when you
Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: a37616e980
ℹ️ 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".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
alandelong-oai
left a comment
There was a problem hiding this comment.
Reviewed the full contribution at fd6aeb27dfb43a805994deeaa8468d8fb8e4e883 with selected base e4eff6521926241c1ad1df1bb6395b71135e56d3, including changed tests and touched context, using three independent reviews followed by root synthesis.
No supported introduced finding.
Static source review; tests were inspected but not executed. CI, mergeability and integration are separate.
Summary
CSV exports can contain several occurrences of one finding, but importing or publishing those exports rejects the repeated finding ID. Leading apostrophes can also be mistaken for spreadsheet formula escapes and lost during import.
Changes
Keep occurrence IDs as the CSV row identity, including for cloud publication previews. Escape literal leading apostrophes during export so new exports round-trip through import while retaining spreadsheet formula escaping. Match the exporter’s Unicode whitespace rules when removing those escapes. Document the ambiguity in older CSV exports and the JSON recovery option.
Testing
--seed 12345).2073818745).cp1252stdin settings; all six import tests passed using the failing CI seed 4226971147.Risk and rollout
No command, flag, or default changes. Distinct occurrence IDs remain required. Older exports can contain inherently ambiguous apostrophe prefixes; this change cannot reconstruct those original values. CSV publication now derives distinct stable identities from source occurrences.
Public disclosure review