Skip to content

Releases: ghostintheshell-192/sheet-atlas

v0.6.0

08 Mar 16:45
v0.6.0
787986f

Choose a tag to compare

v0.6.0 Pre-release
Pre-release

[0.6.0] - 2026-03-07

Added

  • DataRegion system — define named data regions within sheets for scoped operations (ADR-009/010/011)
    • Core domain model with header/data row boundaries and column bounds
    • Service integration and JSON persistence (Phase 2)
    • Full UI: SheetGridCanvas with drag selection, TreeView sidebar, dedicated Data Regions tab (Phase 3)
    • Cross-file region detection with header-anchored matching (ADR-012)
    • Dual-mode sidebar: by-file and by-region-name views
    • Inline rename, ⋮ context menus, Clear All actions
  • Normalize & Export — in-place normalization that copies original Excel and corrects cell values/formats
    • Column-level type correction: re-normalizes anomalous cells to match dominant column type (Step 3 pipeline)
    • StyleIndex updated to match normalized type (date ↔ general)
    • Region-scoped normalization: only cells within DataRegion bounds are processed
  • QuickBar toolbar — contextual toolbar below menu bar with "Normalize & Export" button
    • Toggle visibility from View menu
    • Context-sensitive enable/disable based on selected file
  • Coordinate-preserving sheet storage (ADR-013) — SASheetData preserves original Excel row/column positions
  • Merged cell rendering in SheetGridCanvas
  • Welcome tab with getting-started guidance
  • Reusable UI components: ClosableTabHeader, EmptyStateView
  • RegionsSidebarViewModel unit tests (27b1b66)

Changed

  • Deliberate tab navigation with ⋮ menu on File Details
  • Replace two-phase header toggle with CheckBox + spinner
  • Template validation and row comparison scoped to DataRegion bounds
  • DataRegion propagated to search filtering and row comparison column slicing
  • Window title updated from legacy "Excel Cross Reference Viewer" to "SheetAtlas"
  • Migrated .claude/ config to rules/ pattern for self-contained project configuration

Fixed

  • Integer serial dates not recognized as dates in normalization (IsInteger check)
  • ConvertSerial1900 off-by-one error for serial numbers > 60
  • Row/column offset alignment in OpenXML reader and merged cell resolver
  • RegionName propagation from search filter to RowComparisonService for correct column scoping
  • Inline rename UX: auto-focus TextBox, preserve tree expansion, guard LostFocus
  • Git hooks moved to project-level, fixed grep regex bug

Documentation

  • DataRegion architecture decisions (ADR-009, 010, 011, 012, 013, 014)
  • Auto-generated architecture reference from source comments
  • Restructured .development/ folder for spec-driven development

What's Changed

Full Changelog: v0.5.3...v0.6.0

Download SheetAtlas

v0.5.3

31 Jan 22:19
v0.5.3
79a0aad

Choose a tag to compare

v0.5.3 Pre-release
Pre-release

[0.5.3] - 2026-01-31

Added

  • Column filtering in export with semantic names and grouping support
  • CSV format inference service for automatic number format detection:
    • Percentages (15% → stored as 0.15 with "0%" format)
    • Scientific notation (1.5e-3 → proper Excel scientific format)
    • Decimal precision preservation (0.15000 → "0.00000" format)
  • IHeaderResolver interface for unified semantic name resolution

Changed

  • Consolidated header grouping logic into IHeaderGroupingService
  • Introduced Facade pattern (FileReaderContext) for cleaner file reader architecture
  • Improved TreeView styling in search results

Fixed

  • Semantic mappings correctly included in CSV export
  • Windows CI build nullable reference warnings

Full Changelog: v0.5.2...v0.5.3

Download sheet-atlas

v0.5.2

28 Jan 21:24
v0.5.2
5949d9b

Choose a tag to compare

v0.5.2 Pre-release
Pre-release

[0.5.2] - 2026-01-28

Fixed

  • Use source-generated JSON serialization for PublishTrimmed AOT compatibility (settings file was not loading on trimmed builds)

Full Changelog: v0.5.1...v0.5.2

Download sheet-atlas

v0.5.1

21 Jan 22:08
v0.5.1
8100f21

Choose a tag to compare

v0.5.1 Pre-release
Pre-release

[0.5.1] - 2026-01-21

Fixed

  • Preserve numeric types in comparison export (numbers written as Excel numbers, not text)
  • Preserve number formats (currency, percentage) in comparison and normalization export
  • Format dates correctly in comparison view (was showing OLE serial numbers)
  • Limit decimal precision in comparison view for readability

Added

  • ExportCellValue wrapper struct to carry both cell value and number format through export pipeline
  • GetTypedCell() and GetTypedCellByHeader() methods in RowComparison for typed cell access
  • Dynamic NumberingFormats support in ExcelWriterService for custom format preservation

Full Changelog: v0.5.0...v0.5.1

Download sheet-atlas

v0.5.0

18 Jan 22:30
v0.5.0
59710db

Choose a tag to compare

v0.5.0 Pre-release
Pre-release

[0.5.0] - 2026-01-18

Added

  • Settings tab with user preferences:
    • Theme selection (Light/Dark/System)
    • Default header row count for file readers
    • Default export format (Excel/CSV)
    • Normalized file naming pattern
    • Output folder configuration
  • Column filtering in sidebar with checkbox selection
  • Column grouping warning badges for case and type variations
  • System theme detection for Linux (GNOME) using PlatformSettings

Fixed

  • Theme persistence across application restarts
  • System theme detection on Linux now works correctly
  • Reset to Defaults now requires Save to persist changes (clearer UX)
  • Search results text invisible after theme switch
  • Settings properly loaded at startup and applied to export operations

Refactored

  • Column grouping now groups by name only (not by type), showing warnings for inconsistencies
  • Remove temporary theme toggle from menu (now in Settings tab)

Chore

  • Remove 5 unused IValueConverter implementations
  • Normalize line endings for cross-platform CI consistency

Full Changelog: v0.4.0...v0.5.0

Download sheet-atlas

v0.4.0

16 Dec 18:05
v0.4.0
429eb9e

Choose a tag to compare

v0.4.0 Pre-release
Pre-release

[0.4.0] - 2025-12-16

Added

  • Dedicated Templates tab with separated library and workspace panels
  • Multi-file selection in sidebar (Ctrl+Click, Shift+Click)
  • Batch template validation across multiple files
  • Column Linking sidebar with visual grouping by source file
  • Column highlighting when template is selected (orange border)
  • SemanticName persistence in template JSON files
  • "Update Template" button to save semantic names to existing templates
  • Export to Excel (.xlsx) and CSV with preserved data types

Fixed

  • Prevent computed properties from being serialized in template JSON (was causing 3x column duplication)
  • Re-apply column highlighting after Refresh, Rename, Merge, Ungroup operations
  • Remove 'x' from boolean parsing to avoid text conflicts

Refactored

  • Extract Template Management from FileDetails into dedicated tab
  • Streamline FileDetails to show only Basic Info, Notifications, and Export

Miscellaneous

  • Improve security and clarify release workflow

Full Changelog: v0.3.3...v0.4.0

Download sheet-atlas

v0.3.3

28 Nov 12:06
v0.3.3
08c3ee5

Choose a tag to compare

v0.3.3 Pre-release
Pre-release

[0.3.3] - 2025-11-28

Added

  • Add file validation and security protections
  • Implement collapsible stack for multiple row comparisons

Documentation

  • Cleanup and update documentation structure

Fixed

  • Enable macOS download button in website template
  • Enable macOS download in downloads page template
  • Remove false positive anomalies for empty cells in CSV files
  • Replace blocking .Result with async/await in file readers
  • Add bounds checking for SharedStringTable lookup
  • Correct row index semantics for search and comparison
  • Implement IDisposable on FileDetailsViewModel
  • Resolve event handler memory leaks in search results hierarchy

Refactored

  • Use CollapsibleSection in SearchView for consistency

test for sourceforge sync

Full Changelog: v0.3.2...v0.3.3

Download sheet-atlas

v0.3.2

14 Nov 22:42
v0.3.2
1d2e8e3

Choose a tag to compare

v0.3.2 Pre-release
Pre-release

[0.3.2] - 2025-11-14

Added

  • Add Foundation Layer infrastructure (Phase 1 - Structure)
  • Implement CurrencyDetector with locale-aware separator detection
  • Add Excel date system support (1900/1904) with data normalization
  • Implement ColumnAnalysisService with context-aware anomaly detection
  • Implement MergedCellResolver with merge strategies
  • Report invalid merge ranges as warnings to user
  • Add macOS DMG installer support

Fixed

  • Align XLS and CSV readers with XLSX absolute row indexing
  • Centralize exception recovery logic to eliminate duplication
  • Remove unnecessary async from MergedCellResolver
  • Remove duplicate OpenXmlPackageException handler
  • Apply naming conventions to private static readonly fields
  • Remove unused parameters from xUnit theory tests
  • Apply naming conventions to static readonly fields
  • Correct workflow_dispatch input handling and sed delimiter
  • Complete workflow_dispatch input handling for Linux .deb

Refactored

  • Remove semantic validation from TryParseDate
  • Simplify CellReference semantics and fix merged cell processing
  • Remove redundant try-catch in ParseCellReference
  • Fix blocking async/await in OpenXmlFileReader
  • Implement absolute 0-based row indexing and remove auto-detection
  • Resolve all compiler warnings (24 → 0)
  • Remove commented-out dead code
  • Remove boilerplate and section marker comments
  • Cleanup comments - translate Italian, remove obvious/historical (228 comments)
  • Remove dead code ToastNotificationService
  • Apply code analyzer suggestions and modernize C# syntax

Testing

  • Correct French locale currency format to use Excel US convention

Full Changelog: v0.3.1...v0.3.2

Download sheet-atlas

v0.3.1

07 Nov 21:32
v0.3.1
5641fa8

Choose a tag to compare

v0.3.1 Pre-release
Pre-release

[0.3.1] - 2025-11-07

Added

  • Implement David Fowl standards for project structure
  • Complete UI redesign with professional theme system and Notepad++ style search results
  • Add granular selection controls for search results
  • Create GitHub Pages website with app-themed design
  • Add quality external links to improve SEO
  • Add quality external links to improve SEO
  • Improve website SEO with advanced meta tags
  • Implement centralized exception handling framework
  • Add error handling safety nets and activity logging
  • Add XlsFileReader for legacy Excel file support
  • Add CsvFileReader with auto-delimiter detection
  • Update file picker to support all spreadsheet formats
  • Add automated changelog generation workflow
  • Add automated multi-platform build workflow
  • Add prominent download section to GitHub Page
  • Reorganize project structure with branch protections and GitHub Actions
  • Add GitHub issue and PR templates
  • Add Windows installer infrastructure with Inno Setup
  • Implement custom SASheetData for memory optimization
  • Add final memory optimizations with TrimExcess
  • Add responsive hamburger menu for mobile navigation
  • Implement honest SEO improvements focused on Windows availability
  • Create website template with version placeholders
  • Implement unified release workflow
  • Unified release pipeline with website automation
  • Extract SheetAtlas.Logging as reusable module
  • Integrate LogService into error notification flow
  • Simplified extension methods for LogService
  • Implement native file logging with daily rotation
  • Add pre-push hook for automated unit testing
  • Add structured JSON file logging system
  • Tabular error log view with full history tracking
  • Implement collapsible sidebar with vertical toggle bar
  • Implement dynamic tab system with progressive disclosure
  • Comprehensive UI/UX improvements
  • Implement IDisposable pattern on MainWindowViewModel
  • Implement parallel file loading with configurable concurrency
  • Comprehensive website deployment with automated testing

Docs

  • Clean up redundant comments and add XML documentation

Documentation

  • Update Git workflow documentation with develop branch strategy
  • Reorganize and clean up documentation structure
  • Separate business strategy from public documentation
  • Add comprehensive README.md
  • Add error handling philosophy to CLAUDE.md
  • Add Google Search Console verification meta tag
  • Update README for v1.0.0 release
  • Update website branding from ExcelViewer to SheetAtlas
  • Update website downloads - Windows installer ready, Linux/macOS coming soon
  • Update CHANGELOG to reflect corrected versioning (0.x for alpha)
  • Correct README.md to reflect honest platform availability
  • Add release process documentation and update CLAUDE.md
  • Major SEO improvements for website discoverability
  • Revise privacy messaging in features page
  • Update website for release v0.3.0
  • Update website for release v0.3.1
  • Regenerate complete CHANGELOG for all versions

Fixed

  • Resolve comparison view crash and improve styling
  • Remove download options from README - project not ready for release
  • Add website images to version control
  • Synchronize column widths between headers and data cells
  • Align row comparison header width with column content
  • Use single-line command for PowerShell compatibility
  • Remove explicit wizard image files from Inno Setup script
  • Reorder Pascal functions to declare before use
  • Correct project descriptions and update all references from excel-viewer to sheet-atlas
  • Implement memory leak cleanup infrastructure (partial)
  • Handle empty Excel sheets correctly in OpenXmlFileReader
  • Preserve UI state when removing files via Clean All Data
  • RowComparison UI cleanup on close (#8, #9)
  • Auto-switch to Search Results tab when search completes
  • RowComparison cells now adapt to dark mode theme (#7)
  • Menu items cleanup and implementation (#1-6)
  • Update website version numbers to v1.1.0
  • Update project path from ExcelViewer to SheetAtlas in build-release workflow
  • Merge build-release workflow fix from main
  • Remove hardcoded version numbers from website, add alpha status notice
  • Update website download links to use specific v0.2.0 tag
  • Correct error messages for corrupted xlsx files
  • Translate all Italian error messages to English
  • Catch specific regex exceptions in SearchService instead of all exceptions
  • Update test to expect Info level for empty sheets
  • Remove redundant .NET project detection in pre-push hook
  • Fix tab selection bugs and refactor navigation logic
  • Resolve memory leak in UnloadAllFiles by reusing single-file cleanup logic
  • Prevent memory leak from inline PropertyChanged subscription
  • Eliminate fire-and-forget inconsistency and retry UI flicker
  • Correct alpha banner version substitution and platform availability text
  • Correct sitemap and alpha banner generation
  • Improve website deployment and navbar alignment
  • Remove incorrect data from website structured metadata
  • Critical fixes for website deployment workflow
  • Extract version-specific changelog section for GitHub releases

Miscellaneous

  • Remove accidentally committed sample files
  • Remove obsolete UI documentation files
  • Update CHANGELOG for v1.0.0
  • Update CHANGELOG for v1.1.0
  • Merge develop for v1.0.0 release
  • Update GitHub Page for v1.0.0 release
  • Remove legacy ExcelViewer references and directories
  • Remove duplicate release workflows
  • Remove unused using directives across codebase
  • Add website data configuration file

Perf

  • Precompute column comparison data to eliminate redundant calculations
  • Eliminate duplicate GetCellAsStringByHeader calls
  • Implement flat cache for RefreshCellColors to eliminate nested iteration

Performance

  • Remove unnecessary ItemArray.ToList() memory copy
  • Remove fake async methods from RowComparisonService
  • Add string interning for duplicate cell values
  • Optimize PropertyChanged notifications in TreeSearchResultsViewModel
  • Implement flat cache in SearchHistoryItem to reduce O(n³) to O(n)

Refactor

  • Replace toast notifications with inline treeview error display
  • Simplify property propagation in OnTabNavigatorPropertyChanged
  • Simplify property propagation in OnComparisonCoordinatorPropertyChanged
  • Extract SelectedFile setter logic to helper methods
  • Unify duplicate switch logic in LoadedFilesManager
  • Eliminate message duplication and redundant null checks
  • Standardize event delegates and fix memory leak

Refactored

  • Reorganize project structure following David Fowl standards
  • Restructure Core layer following Clean Architecture principles
  • Implement David Fowl architecture with separated Infrastructure layer
  • Move website files to docs/ directory for GitHub Pages
  • Split large ViewModels and improve code organization
  • Extract ICellValueReader to eliminate code duplication
  • Remove redundant error handling and apply "Never Throw" philosophy
  • Extract OpenXML logic to Strategy Pattern for multi-format support
  • Rename project from ExcelViewer to SheetAtlas
  • Fix all nullability warnings for cleaner build
  • Consolidate severity levels using LogSeverity
  • Clean up nomenclature in Logging module
  • Migrate all UI layer logging to ILogService
  • Migrate Infrastructure layer logging to ILogService
  • Migrate Core layer logging to ILogService
  • Migrate Services/Commands logging to ILogService
  • Standardize error handling pattern across file readers
  • Simplify null validation in RowComparisonService
  • Implement IDisposable pattern to fix memory leaks
  • Consolidate button styles to centralized Buttons.axaml
  • Extract menu styles and replace hardcoded colors with theme resources
  • Add SecondaryButton style and eliminate last hardcoded colors
  • Remove deprecated ShowSearchResultsCommand
  • Extract TabNavigationCoordinator from MainWindowViewModel
  • Extract FileDetails operations to FileDetailsCoordinator
  • Simplify UnloadAllFilesAsync with self-documenting helper methods
  • Split MainWindowViewModel into partial classes for better organization
  • Remove redundant alpha status message

Test

  • Add comprehensive regex tests for SearchService

Testing

  • Verify pre-commit hook
  • Add integration test infrastructure with real Excel files
  • Update test constructors after ExcelReaderService refactoring
  • Migrate test mocks from ILogger to ILogService
  • Update assertions for English error messages
  • Add comprehensive unit tests for structured file logging system

Ci

  • Add multi-platform CI workflow with automated testing
  • Add workflow_dispatch trigger to build-release workflow
  • Integrate Windows installer build into main release workflow

Merge

  • Align feature/ui-improvements with develop
  • Integrate UI improvements into develop

Release

  • Unified release pipeline v1.0

Resolve

  • Merge conflict in index.html keeping enhanced meta tags

What's Changed

New Contributors

Full Changelog: https://github.com/ghostintheshell-192/sheet-atlas/commits/v0.3.1

Download sheet-atlas

v0.3.0

07 Nov 21:25
v0.3.0
5641fa8

Choose a tag to compare

v0.3.0 Pre-release
Pre-release

[0.3.0] - 2025-10-23

Added

  • Implement honest SEO improvements focused on Windows availability
  • Create website template with version placeholders
  • Implement unified release workflow
  • Unified release pipeline with website automation
  • Extract SheetAtlas.Logging as reusable module
  • Integrate LogService into error notification flow
  • Simplified extension methods for LogService
  • Implement native file logging with daily rotation
  • Add pre-push hook for automated unit testing
  • Add structured JSON file logging system
  • Tabular error log view with full history tracking
  • Implement collapsible sidebar with vertical toggle bar
  • Implement dynamic tab system with progressive disclosure
  • Comprehensive UI/UX improvements
  • Implement IDisposable pattern on MainWindowViewModel
  • Implement parallel file loading with configurable concurrency

Docs

  • Clean up redundant comments and add XML documentation

Documentation

  • Update CHANGELOG to reflect corrected versioning (0.x for alpha)
  • Correct README.md to reflect honest platform availability
  • Add release process documentation and update CLAUDE.md
  • Major SEO improvements for website discoverability
  • Revise privacy messaging in features page

Fixed

  • Merge build-release workflow fix from main
  • Remove hardcoded version numbers from website, add alpha status notice
  • Update website download links to use specific v0.2.0 tag
  • Correct error messages for corrupted xlsx files
  • Translate all Italian error messages to English
  • Catch specific regex exceptions in SearchService instead of all exceptions
  • Update test to expect Info level for empty sheets
  • Remove redundant .NET project detection in pre-push hook
  • Fix tab selection bugs and refactor navigation logic
  • Resolve memory leak in UnloadAllFiles by reusing single-file cleanup logic
  • Prevent memory leak from inline PropertyChanged subscription
  • Eliminate fire-and-forget inconsistency and retry UI flicker
  • Correct alpha banner version substitution and platform availability text
  • Correct sitemap and alpha banner generation
  • Improve website deployment and navbar alignment

Miscellaneous

  • Remove legacy ExcelViewer references and directories
  • Remove duplicate release workflows
  • Remove unused using directives across codebase

Perf

  • Precompute column comparison data to eliminate redundant calculations
  • Eliminate duplicate GetCellAsStringByHeader calls
  • Implement flat cache for RefreshCellColors to eliminate nested iteration

Performance

  • Optimize PropertyChanged notifications in TreeSearchResultsViewModel
  • Implement flat cache in SearchHistoryItem to reduce O(n³) to O(n)

Refactor

  • Replace toast notifications with inline treeview error display
  • Simplify property propagation in OnTabNavigatorPropertyChanged
  • Simplify property propagation in OnComparisonCoordinatorPropertyChanged
  • Extract SelectedFile setter logic to helper methods
  • Unify duplicate switch logic in LoadedFilesManager
  • Eliminate message duplication and redundant null checks
  • Standardize event delegates and fix memory leak

Refactored

  • Consolidate severity levels using LogSeverity
  • Clean up nomenclature in Logging module
  • Migrate all UI layer logging to ILogService
  • Migrate Infrastructure layer logging to ILogService
  • Migrate Core layer logging to ILogService
  • Migrate Services/Commands logging to ILogService
  • Standardize error handling pattern across file readers
  • Simplify null validation in RowComparisonService
  • Implement IDisposable pattern to fix memory leaks
  • Consolidate button styles to centralized Buttons.axaml
  • Extract menu styles and replace hardcoded colors with theme resources
  • Add SecondaryButton style and eliminate last hardcoded colors
  • Remove deprecated ShowSearchResultsCommand
  • Extract TabNavigationCoordinator from MainWindowViewModel
  • Extract FileDetails operations to FileDetailsCoordinator
  • Simplify UnloadAllFilesAsync with self-documenting helper methods
  • Split MainWindowViewModel into partial classes for better organization

Test

  • Add comprehensive regex tests for SearchService

Testing

  • Migrate test mocks from ILogger to ILogService
  • Update assertions for English error messages
  • Add comprehensive unit tests for structured file logging system

Ci

  • Add workflow_dispatch trigger to build-release workflow
  • Integrate Windows installer build into main release workflow

Release

  • Unified release pipeline v1.0

What's Changed

New Contributors

Full Changelog: https://github.com/ghostintheshell-192/sheet-atlas/commits/v0.3.0

What's Changed

New Contributors

Full Changelog: https://github.com/ghostintheshell-192/sheet-atlas/commits/v0.3.0

Download sheet-atlas