Releases: Avni2000/MergeNB
Release list
v0.4.0
What's Changed
- release: v0.3.0 by @Avni2000 in #229
- add and reorganize new mined test-fixtures by @Avni2000 in #230
- chore: update path in
gitattributesw.r.t. monorepo migration by @Avni2000 in #232 - Comprehensive set of documentation; Website styling by @Avni2000 in #231
- Fixes innaccurate, noisy diffs by @Avni2000 in #235
Full Changelog: 0.3.0...0.4.0
v0.3.0
TL;DR
Readable line lengths, playground scaffolding.
What's Changed
- Readable line lengths and inline resolved cell edit functionality by @Avni2000 in #223
- Renders markdown within resolved cells by @Avni2000 in #226
- MergeNB playground on docusaurus website by @Avni2000 in #225
Full Changelog: 0.2.0...0.3.0
I'm trying to release more often, and in smaller chunks, so there'll be more of these.
v0.2.0
TL;DR
- Migrated to monorepo structure to accomodate:
- future git mergetool
- current website
- Migrated tests to Playwright testing structure, where they now run headlessly and in parallel, as well as with fantastic logging.
- A very basic docusaurus site is up at the moment, containing the README and the unmerged work I was doing to make the playground.
- Removed lots of dead code with knip!
What's Changed
- chore(deps-dev): bump eslint from 10.0.3 to 10.1.0 in the dev-dependencies group by @app/dependabot in #197
- chore(deps): bump the production-dependencies group with 2 updates by @app/dependabot in #198
- Headless and parallelized tests by @Avni2000 in #199
- Consolidate requiresVSCode tests into a single combined run by @Avni2000 in #201
- Migrate to playwright test structure by @Avni2000 in #203
- chore(deps): bump the production-dependencies group with 6 updates by @app/dependabot in #205
- Verify .vsix matches development behavior by @Avni2000 in #207
- [CI] Update dependabot config to use bracket-style commit prefixes by @xingzihai in #212
- fix markdown render styles by @Avni2000 in #214
- Migrate to monorepo by @Avni2000 in #215
- Remove lots of dead code by @Avni2000 in #216
- ci: bump actions/upload-artifact from 4 to 7 by @app/dependabot in #210
- Add all packages to dependabot and add cooldown by @Avni2000 in #217
- Initialize docusaurus website by @Avni2000 in #218
- fix(ci): release and packaging process for monorepo structure by @Avni2000 in #220
New Contributors
- @xingzihai made their first contribution in #212
Full Changelog: 0.1.1...0.2.0
v0.1.1
Caution
This tag is BROKEN. Do not use it. Activation events won't fire correctly
I left a small typo in version 0.1.0, and fixed it here, along with some QOL changes:
- you can now select whatever text you want
- we now overwrite if one of incoming/current == base, and the other differs, instead of showing a conflict.
- this aligns with the typical git (or really all VCS) logic
- this applies for all aspects of a notebook metadata, output, cell content, etc.
What's Changed
- fix logical errors in conflict detection by @Avni2000 in #194
- Intuitive text selection by @Avni2000 in #178
Full Changelog: 0.1.0...0.1.1
v0.1.0
Caution
This tag is BROKEN. Do not use it. Activation events won't fire correctly.
I will be keeping a more watchful eye on releases now that the process is somewhat automated, but
TL;DR:
- Handle all 7 git conflict types (even though UU is by far the most common)
- Handle cell reordering conflicts better
- Remove and guard against nbdime
- Expanded the test suite greatly
- Various UI improvements
- Fixed a ton of smaller logic bugs
v0.1.0 Changelog
New Features
- We now handle all 7 git conflict types #135
- Reordered cell conflict resolution: Reordered cells are now a first-class conflict type. A new UI lets you unmatch and rematch cells that were reordered across branches, so you can accept or reject moves at specific locations rather than being forced into base-anchored order. #151
- Undo/redo history: Full undo/redo support (with optional hotkeys) for conflict resolution actions, backed by a new Zustand + Immer state store. Also adds per-row draft editing with commit-on-blur and a toggleable base column.
- CodeMirror syntax highlighting: All code cells now use CodeMirror for syntax highlighting across all supported kernel languages, replacing plain
<pre>rendering. - Light theme: A new beige/checkered light theme matching the MergeNB logo aesthetic, configurable via mergeNB.ui.theme in VS Code settings.
- Character-level diffs: Inline diff highlighting now uses CodeMirror's merge engine for character-level granularity instead of a hand-rolled line-based LCS algorithm.
- Style and Markdown rendering improvements: Visual polish pass including LaTeX rendering fixes and improved Markdown display.
Fixes & Improvements
- Status bar auto-triggers on git merge: The status bar now detects conflicted .ipynb files automatically when a git merge is in progress.
- Guard against merge.tool=nbdime: MergeNB now detects when nbdime is configured as the merge tool and provides a terminal-ready remediation guide.
- Conflict detection hardened: Metadata and semantic conflicts are now evaluated independently from content conflicts, preventing false resolutions.
- Strip output/metadata settings respected: The stripOutput and stripMetadata settings are now correctly applied during resolution.
- All settings respected + regression tests: Fixed a regression where some settings were silently ignored; added a settings test matrix.
- XSS prevention: SVG output cells are now sanitized with DOMPurify; web session auth is hardened against local data exposure.
- Null current-cell index handling: Fixed incorrect index calculation when the current branch has a null/deleted cell.
- Canonical Jupyter MIME types: Switched to the official Jupyter MIME type library for output rendering.
- Removed drag-and-drop: Experimental drag-and-drop row reordering removed to reduce UI complexity.
v0.0.6
TL;DR
- Fix for incoming cells dropping when base == source
- Metadata merging fixes and edge cases
- Regression tests
What's Changed
- [CI] [ENHANCEMENT] Add support for MacOS and VSCode 1.80.0 by @Avni2000 in #77
- [FEAT] Global Cell matching algorithm by @Avni2000 in #78
- [FIX] Incoming cells now overwrite instead of dropping by @Avni2000 in #81
- [FIX] Metadata Holes by @Avni2000 in #83
Full Changelog: 0.0.5...0.0.6
0.0.5
TL;DR
- Restores Windows functionality for finding conflicted notebooks
- Adds Windows to CI
- Caches dependencies in CI correctly
What's Changed
Full Changelog: 0.0.4...0.0.5
v0.0.4
TL;DR
- Undo/Redo Support
- Performance Improvements
- Testing Harness Improvements
- Diff styling improvements
What's Changed
- [FEAT] Add undo/redo support with history panel by @Copilot in #50
- chore(deps-dev): bump react-dom and @types/react-dom by @dependabot[bot] in #56
- chore(deps-dev): bump react and @types/react by @dependabot[bot] in #54
- chore(deps-dev): bump the dev-dependencies group with 3 updates by @dependabot[bot] in #52
- ci: bump actions/cache from 4 to 5 by @dependabot[bot] in #61
- ci: bump actions/setup-node from 4 to 6 by @dependabot[bot] in #60
- ci: bump actions/checkout from 4 to 6 by @dependabot[bot] in #59
- [FEAT] Refactor integration test structure and fix CLI functionality by @Avni2000 in #51
- chore(deps-dev): bump the production-dependencies group across 1 directory with 4 updates by @dependabot[bot] in #62
- Fix image flickering from ResizeObserver/virtualization feedback loop by @Copilot in #63
- [FIX] Improve-diffs by @Avni2000 in #65
- [FIX] Properly pass headless settings to testing framework by @Avni2000 in #67
- [FIX] Perf improvements by @Avni2000 in #69
- [FEAT] Virtualize Cell Rows with TanStack and React Callbacks by @Avni2000 in #71
- [FEAT] Performance improvements + Fix Image Rendering by @Copilot in #66
Full Changelog: 0.0.3...0.0.4
v0.0.3
This is a relatively more mature release of the web port, with bug fixes and full integration tests + harnesses
What's Changed
- [FIX] Switch to the much lighter KaTeX library by @Avni2000 in #24
- Optimize WebConflictPanel rendering for large notebooks via virtualization and lazy MathJax by @Copilot in #23
- [FIX] Rebuild notebook from unified rows + resolved text areas by @Avni2000 in #30
- Remove webview compatibility layer and unused utilities by @Copilot in #31
- [FIX] Success Screen fixes by @Avni2000 in #32
- [FIX] Calculate DOM for virtualization behaviour by @Avni2000 in #33
- [FEAT] Create a Testing Harness by @Avni2000 in #34
- Replace Levenshtein-based LCS with snaking algorithm for cell matching by @Copilot in #41
- [CI] Implement caching for playwright, npm, and vscode by @Avni2000 in #42
- [ENHANCEMENT] Adds take all current/incoming/base by @Avni2000 in #43
- [FEAT] Generic Testing Harness + "Take All" tests by @Avni2000 in #44
Full Changelog: 0.0.2...0.0.3
v0.0.2
TL;DR:
Ported to Web, working out the kinks.
What's Changed
- [Refactor] Sorting logic to create a wrapper for sorting by postion by @Avni2000 in #9
- chore(deps-dev): bump typescript-eslint from 8.53.1 to 8.54.0 in the production-dependencies group by @dependabot[bot] in #14
- chore(deps-dev): bump @types/node from 25.0.10 to 25.2.0 in the dev-dependencies group by @dependabot[bot] in #13
- Remove textual conflict marker support, consolidate to semantic resolution only by @Copilot in #15
- [MIGRATE] [WEB] Port to Web-based merge resolver by @Avni2000 in #16
- [FEAT] Optimize WebConflictPanel rendering for large notebooks via virtualization and lazy MathJax
Full Changelog: 0.0.1...0.0.2