Skip to content

Release: CSV↔JSON power-user improvements - #213

Merged
obvious-autobuild-staging[bot] merged 7 commits into
masterfrom
release/csvjson-power-user-improvements-20261015
Oct 15, 2026
Merged

obvious-autobuild-staging[bot] merged 7 commits into
masterfrom
release/csvjson-power-user-improvements-20261015

Conversation

@obvious-autobuild-staging

@obvious-autobuild-staging obvious-autobuild-staging Bot commented Oct 15, 2026 •

Copy link
Copy Markdown
Contributor

Release: CSV↔JSON power-user improvements

Ship six uncluttered CSV↔JSON power-user improvements on csvjson.com: pipe-separated CSV output table preview fix, bounded Undo/Redo for CSV grid mutations, byte-preserving double-click column header rename, automatic JSONL/NDJSON support + contextual JSON wrapper-array unwrap pill, contextual JSON Format/Minify toggle with /json_beautifier and /json_validator redirects to /?direction=json2csv, and contextual indexed-array header collapse (.0, .1 / [0], [1] → JSON arrays).

Branch: release/csvjson-power-user-improvements-20261015
Progress: 6/6 PRs merged

Planned Work

Review bots should verify that the release branch implements each planned subtask below, not just that the code is generally safe. For each row, compare the final diff and linked child PR against the expected outcome.

Subtask Expected outcome Status PR
Fix pipe-separated CSV output table preview (fix/pipe-csv-preview) Split pipe-delimited CSV output into columns in OutputPane table preview via detectSeparator and separatorHint completed #215
Add bounded Undo/Redo for CSV grid mutations (feat/csv-grid-undo-redo) 50-step undo/redo stack for CSV mutations with Mod+Z / Mod+Shift+Z shortcuts and contextual Undo/Redo header buttons completed #217
Add byte-preserving double-click column header rename (feat/csv-header-rename) Double-click column header in editable CSV mode to rename in place via spans[0] splice without altering data row bytes or sort state completed #218
Add JSONL/NDJSON support and contextual JSON wrapper unwrap pill (feat/json-unwrap-jsonl) Automatic multi-line JSONL/NDJSON conversion in runJson2Csv plus contextual Unwrap .key (N rows) chip for root wrapper objects completed #214
Add contextual JSON Format/Minify toggle and legacy beautifier redirects (feat/json-format-minify) Contextual Format/Minify toggle in JSON→CSV InputPane, /json_beautifier and /json_validator 301s to /?direction=json2csv, and changelog entry 12 completed #216
Collapse indexed CSV headers (.0, .1 / [0], [1]) into arrays with contextual toggle pill (feat/csv-indexed-arrays) Auto-collapse indexed header groups (code.0, code.1 / code[0], code[1]) into JSON arrays in CSV→JSON mode with a contextual pill to toggle flat keys completed #219

Merged PRs

PR Title Summary
#215 Fix pipe-separated CSV output table preview (fix/pipe-csv-preview) Pass active separator delimiter into OutputPane CsvTable and convertText parseCsvTable so pipe-delimited CSV splits into columns
#214 Add JSONL/NDJSON support and contextual JSON wrapper unwrap pill (feat/json-unwrap-jsonl) Support multi-line JSONL/NDJSON in JSON→CSV and render contextual Unwrap .key (N rows) pills for wrapper objects
#216 Add contextual JSON Format/Minify toggle and legacy beautifier redirects (feat/json-format-minify) Add contextual Format/Minify button in JSON→CSV InputPane, update /json_beautifier and /json_validator 301s to /?direction=json2csv, and add changelog entry 12
#217 Add bounded Undo/Redo for CSV grid mutations (feat/csv-grid-undo-redo) Add bounded 50-entry CSV undo/redo history stack, Mod+Z / Mod+Shift+Z / Mod+Y shortcuts, and contextual Undo/Redo buttons in InputPane
#218 Add byte-preserving double-click column header rename (feat/csv-header-rename) Double-click column header in editable CSV mode to rename in place via spans[0] splice while preserving data row bytes and sort state
#219 Collapse indexed CSV headers (.0, .1 / [0], [1]) into arrays with contextual toggle pill (feat/csv-indexed-arrays) Auto-collapse .0, .1 and [0], [1] CSV header groups into JSON arrays by default with a contextual toggle pill in InputPane

🔗 Obvious Project · 🧵 Obvious Thread · 🔀 Obvious PR Artifact

Human author: David Boskovic ([email protected])

obvious-autobuild-staging Bot and others added 6 commits October 15, 2026 16:05
* fix(conversion): support pipe delimiter in CSV table preview

Pass the resolved separator option into parseCsvTable in convertText's
json2csv branch and forward delimiter from App through OutputPane to
CsvTable so pipe-delimited CSV output splits into columns in both the
preview grid and the row/column count badge.

Co-authored-by: David Boskovic <[email protected]>

* chore(build): rebuild dist for pipe preview fix

Co-authored-by: David Boskovic <[email protected]>

---------

Co-authored-by: Obvious <[email protected]>
Co-authored-by: David Boskovic <[email protected]>
…ay unwrap pill (#214)

* feat(json2csv): support JSONL/NDJSON input and contextual wrapper-array unwrap pill

Co-authored-by: David Boskovic <[email protected]>

* chore(build): rebuild dist for JSON unwrap and JSONL

Co-authored-by: David Boskovic <[email protected]>

---------

Co-authored-by: Obvious <[email protected]>
Co-authored-by: David Boskovic <[email protected]>
…tifier routes, and add changelog #12 (#216)

* feat(json): add contextual Format/Minify toggle and redirect json_beautifier to json2csv

Co-authored-by: David Boskovic <[email protected]>

* chore(changelog): add entry 12 and rebuild dist

Co-authored-by: David Boskovic <[email protected]>

---------

Co-authored-by: Obvious <[email protected]>
Co-authored-by: David Boskovic <[email protected]>
…utations (#217)

* feat(table): add bounded undo/redo stack and shortcuts for CSV grid mutations

Co-authored-by: David Boskovic <[email protected]>

* chore(build): rebuild dist for CSV undo/redo

Co-authored-by: David Boskovic <[email protected]>

---------

Co-authored-by: Obvious <[email protected]>
Co-authored-by: David Boskovic <[email protected]>
)

* feat(table): add byte-preserving double-click column header rename

Co-authored-by: David Boskovic <[email protected]>

* chore(build): rebuild dist for header rename

Co-authored-by: David Boskovic <[email protected]>

---------

Co-authored-by: Obvious <[email protected]>
Co-authored-by: David Boskovic <[email protected]>
…ggle pill (#219)

Automatically detect contiguous 0- or 1-based indexed CSV column headers
(`code.0, code.1, code.2`, `code[0], code[1]`, and nested object-in-array
patterns like `items.0.sku, items.0.qty, items.1.sku, items.1.qty`) and
collapse them into JSON arrays by default while omitting trailing empty slots.
When indexed headers are present in CSV -> JSON mode, render a contextual
`csv-indexed-array-pill` toggle in InputPane to switch between collapsed
arrays and flat literal keys.

Co-authored-by: Obvious <[email protected]>
Co-authored-by: David Boskovic <[email protected]>
@obvious-autobuild-staging
obvious-autobuild-staging Bot marked this pull request as ready for review October 15, 2026 18:32
@obvious-autobuild-staging
obvious-autobuild-staging Bot merged commit 50686c7 into master Oct 15, 2026
2 checks passed
@obvious-autobuild-staging
obvious-autobuild-staging Bot deleted the release/csvjson-power-user-improvements-20261015 branch October 15, 2026 18:32
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.

2 participants