Releases: edufalcao/diffspot
v1.8.0
Summary
Diff navigation hardening on large files: smooth-scroll cancellation fix on Alt+Down, scroll-to-change index correction in virtual mode, and a fullscreen overlay teleport so the toolbar renders above the sticky header. Also includes the @diffspot/vue public-API cleanup and CI/runtime upgrades.
Features
- @diffspot/vue: type declarations, cleaned-up public API, app now consumes the package surface (0b6875d)
Fixes — diff navigation & scroll
- Prevent scroll-sync from cancelling smooth scroll on Alt+Down — the back-sync between split panels was racing with itself and writing to the source mid-animation, freezing scroll within ~1px on large diffs (f899f7d)
- Render fullscreen diff above the sticky header by teleporting the overlay to
<body>, escaping the page's z-10 stacking context (dcab267) - Correct scroll-to-change index in virtual scroll mode — only count items that appear in the left panel (caa27f5)
- Use scrollRatio-based mapping for currentChangeIndex in virtual scroll mode (af73928)
- Use
el.scrollHeightas source of truth for scroll ratios inuseDiffNavigationand minimap scroll-to (04b9834) - Use virtual total height for minimap scroll-to in
DiffSplitViewandDiffUnifiedView(4c23961) - Center viewport on minimap click; preserve scroll container fallback in
DiffSplitView(5d8613e) - Resolve diff navigation scroll to correct position for large files (76def75)
Fixes — UI
- Swap theme-toggle icons to show target mode instead of current mode (0f4f706)
- Align header content with editor section via
max-w-7xlcontainer (61ee6fc)
Fixes — infra / CI
- Add
pages_build_output_dirso wrangler respectscompatibility_flags(1421853) - Use Node.js 24 in CI (Node.js 20 deprecated) (be6db48, 78477e4)
- Enable
nodejs_compatinwrangler.tomlfor Cloudflare Pages runtime (74abfc5)
Tests
- Add unit tests for
useVirtualScrollanduseDiffNavigation(b1f468e)
Docs
- Update PRD and README to reflect Nuxt 4, Tailwind 4, and current header/footer (f65649d)
- Add deployment note to release skill (0916588)
- Unify header and footer styling with sibling sites (01dc352)
Packages
@diffspot/vue@0.6.0published to npm@diffspot/coreunchanged at0.4.0
v1.7.0
Nuxt 4 & Tailwind CSS 4
Major framework upgrade with no breaking changes to the app's features or behavior.
Features
- Nuxt 4 — upgraded from Nuxt 3.21 to 4.4.2, removed compatibility v4 flag
- Tailwind CSS 4 — upgraded from v3.4 to v4.2.1, switched from
@nuxtjs/tailwindcssmodule to@tailwindcss/viteplugin with CSS-first configuration /releaseskill — automated release workflow via/release <version>
Fixes
- Corrected Tailwind v4
@sourcepath for scanning@diffspot/vuepackage components (pnpm symlinks not followed)
Migration Details
- Removed
tailwind.config.ts— replaced by@import "tailwindcss"+@sourcedirective inmain.css - Utility class renames:
rounded-sm→rounded-xs,!modifier→modifier!(Tailwind v4 conventions) - Updated
@nuxtjs/color-modeto v4
Packages
@diffspot/vue0.5.0 → 0.5.1 (Tailwind v4 utility renames)@diffspot/core0.4.0 (unchanged)
v1.6.1
Documentation & File Upload Safety
Features
- Restrict uploads to text files — file upload (click and drag-and-drop) now validates MIME type and extension, rejecting binary files with a user-friendly error message
Docs
- Updated all documentation (README, CLAUDE.md, PRD, @diffspot/vue README) to reflect current feature state
- CLAUDE.md: corrected Nuxt/Tailwind version references, updated export and composables sections
- PRD: added 12 new feature entries covering export formats, collapsible regions, syntax highlighting, auto-detect language, SEO, and more
- @diffspot/vue README: fixed peer dependency version (
^0.3→^0.4), addedcollapse-unchangedto Quick Start example
v1.6.0
Summary
This release focuses on diff correctness, option clarity, and package updates since v1.5.0.
Highlights
- Fixed diff correctness for ignored comparisons:
Ignore caseandIgnore whitespaceno longer mutate the displayed or exported content- line-level results now preserve the original left and right content when lines are only equal under active diff options
- split view now renders the correct side-specific content for those unchanged-under-options lines
- Tightened option-aware UX:
- active diff options are now surfaced directly below the toolbar as badges
- the empty-result state now explains when whitespace or case options are hiding differences instead of appearing like a dead end
- Expanded coverage for diff option behavior:
- added core tests for case-insensitive and whitespace-insensitive line preservation
- added export coverage for ignored differences
- added edge-case coverage for mixed
CRLFandLFline endings - added Vue tests for active diff option summaries
- Updated
CLAUDE.mdso implementation work now explicitly finishes by runningpnpm test:packages,pnpm lint,pnpm typecheck, andpnpm build
Package updates
- Published
@diffspot/core@0.4.0 - Published
@diffspot/vue@0.5.0
Verification
This release was verified with:
pnpm test:packagespnpm lintpnpm typecheckpnpm build
Full Changelog
7dec61fPreparev1.6.0release
v1.5.0
Summary
This release bundles the work completed since v1.4.0, including diff UX fixes, toolbar cleanup, package improvements, and build/CI hardening.
Highlights
- Improved diff recalculation flow in the app:
- changing
Ignore whitespace,Ignore case, orPrecisionnow recomputes the diff automatically after a result has been shown - when the current options produce no visible differences, the diff controls remain accessible so the options can be adjusted immediately
- changing
- Cleaned up the diff toolbar by moving the result options into a compact
Optionsdropdown while preserving the existing behavior - Reduced the main client bundle size by lazy-loading editor language extensions, syntax-highlighting parsers, and the editor component itself
- Added baseline tests for
@diffspot/vueand fixed clean CI runs so package tests no longer depend on prebuiltdistartifacts - Made
pnpm buildthe real gated build command by running package tests before package and app builds
Package updates
- Published
@diffspot/vue@0.4.0 - Updated package metadata and docs to match the current workspace and dependency state
Full Changelog
60efad6Improve bundle splitting and package hygiene8df2779Run package tests as part of builde26c08cMove diff options into dropdown menu61398d7Fix vue package tests on clean CI runsfd59291Bump@diffspot/vueto0.4.0444acb3Auto-recompute diffs when comparison options change
v1.4.0
Collapsible Regions, Syntax Highlighting & Language Auto-Detection
Features
- Collapsible unchanged regions — consecutive unchanged lines (8+) are collapsed into a clickable "··· N unchanged lines ···" row with 3 lines of context, GitHub-style. Toggle via "Collapse unchanged" checkbox in the toolbar. Works in both split and unified views with virtual scroll
- Syntax highlighting in diff output — diff lines are tokenized using Lezer parsers (same engines as the CodeMirror editors) with Material Theme-inspired colors for dark and light modes. Supports all 18 languages. Skipped for word/char precision where diff highlights take priority
- Auto-detect language from file extension — on file upload or drag-and-drop, the language dropdown auto-switches based on the file extension (30+ extensions mapped across all 18 languages). Manual override still works
Docs
- Updated all three READMEs with new features, types, and props
v1.3.2
Print Rendering Fixes
Fixes
- Print now renders all diff content (override max-height/overflow on split and unified view panels)
- Double requestAnimationFrame wait before window.print() for full layout of unvirtualized lines
- Long lines wrap to page width in print mode (pre-wrap instead of clipping)
Docs
- Updated root README with export feature and packages section
v1.3.1
v1.3.0
Multi-Format Export
Replace the single Print button with an Export dropdown offering 4 formats.
Features
- Export dropdown with 4 options: Print/PDF, Unified Diff (.diff), HTML Report (.html), JSON Data (.json)
- Pure export generators in @diffspot/core: `generateUnifiedDiff`, `generateHtmlExport`, `generateJsonExport`
- `useExport` composable in @diffspot/vue (replaces `usePrint`)
- Large diff warning (>50K lines) on Print/PDF option
- 15 new export tests in @diffspot/core
Packages
- @diffspot/core 0.1.4 → 0.2.0
- @diffspot/vue 0.1.3 → 0.2.0
v1.2.0
Monorepo & Published Packages
Extracted the diff engine and Vue components into standalone npm packages.
Features
- @diffspot/core — Framework-agnostic diff computation engine (published to npm)
- @diffspot/vue — Vue 3 diff components and composables (published to npm)
- pnpm monorepo workspace with packages/ structure
- App refactored to consume workspace packages
- ESLint, Husky, and lint-staged for code quality
Fixes
- Fix fullscreen scroll in flex chain
- Fix editor max-height to keep Find Differences button in view
- Fix diff results clearing instantly on Clear click
- Pin tailwindcss to v3 to match @nuxtjs/tailwindcss
- Remove diff output Transition wrapper for instant clear