Skip to content

Preserve custom report identities in CSV exports and browser selectors - #5

Merged
dev-belly merged 4 commits into
mainfrom
fix/spreadsheet-labels-20261023
Oct 23, 2026
Merged

dev-belly merged 4 commits into
mainfrom
fix/spreadsheet-labels-20261023

Conversation

@dev-belly

@dev-belly dev-belly commented Oct 23, 2026 •

Copy link
Copy Markdown
Owner

Custom names could become spreadsheet formulas, lone CR characters could create unintended CSV records, and HTML preprocessing could collapse CR/LF/NUL identities into another option.

Protect untrusted period/scenario labels in all four CSVs with a visible text: marker, including locale/control prefixes and collision-safe handling of names already starting with the marker. Preserve embedded CR/LF/CRLF cells while keeping LF record endings. JSON and financial numeric representations retain their original values.

Use explicit ASCII JSON selector identities shared by options and result panels, preserving distinct original names through browser preprocessing. Add an actual-Chrome CI check using the runner's matching chromedriver with no extra Python packages. Refresh only saved report HTML and its manifest hash; all source and numerical artifact bytes are unchanged. Document regeneration of earlier reports from saved JSON.

Validation: 39 local tests, Ruff lint/format, committed report replay, preview check, sdist/wheel build and whitespace checks passed. A clean installed wheel verified a formula-named custom report outside the checkout. Real Chrome and cross-platform checks run in this PR's CI.

@dev-belly dev-belly changed the title Protect period labels and embedded carriage returns in CSV evidence Preserve custom report identities in CSV exports and browser selectors Oct 23, 2026
@dev-belly
dev-belly merged commit bb2ac7c into main Oct 23, 2026
6 checks passed
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