mirror of
https://github.com/olehomelchenko/astrolabe-nvc.git
synced 2025-12-21 21:22:23 +00:00
186 lines
7.0 KiB
Markdown
186 lines
7.0 KiB
Markdown
# Changelog
|
|
|
|
All notable changes to Astrolabe will be documented in this file.
|
|
|
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
|
|
|
|
**Note**: Astrolabe is currently in alpha (pre-1.0) development. Version numbers below 1.0.0 indicate active development status. A stable 1.0 release will occur after public launch and thorough testing.
|
|
|
|
---
|
|
## [Unreleased]
|
|
|
|
### Added
|
|
- (New features currently in development)
|
|
|
|
### Fixed
|
|
- (Bugfixes will be listed here)
|
|
|
|
### Changed
|
|
- (Improvements and refinements will be listed here)
|
|
|
|
### Removed
|
|
- (Removed features will be listed here)
|
|
|
|
---
|
|
## [0.2.0] - 2025-11-17
|
|
|
|
### Added
|
|
- **Visual Chart Builder**: Create Vega-Lite visualizations without writing JSON
|
|
- Access via "Build Chart" button in dataset details panel
|
|
- Support for 5 mark types: Bar, Line, Point, Area, Circle
|
|
- Map dataset columns to encoding channels: X, Y, Color, Size
|
|
- 4 data type options per encoding: Quantitative, Ordinal, Nominal, Temporal
|
|
- Smart defaults based on column type detection
|
|
- Live preview with debounced rendering
|
|
- Width/Height dimension controls
|
|
- Validation with helpful error messages
|
|
- URL state support (`#datasets/dataset-123/build`)
|
|
- Browser back/forward navigation integrated
|
|
- Creates snippets with auto-generated names and dataset references
|
|
- **Progressive Web App (PWA) Support**: Install Astrolabe as standalone app with offline functionality
|
|
- Service worker caches all application files and CDN dependencies
|
|
- Full offline access after initial load
|
|
- Install button in browser for desktop/mobile installation
|
|
- Runs in standalone window without browser chrome
|
|
- "Add to Home Screen" support on iOS/Android
|
|
- Automatic cache updates when app version changes
|
|
- Works seamlessly with existing IndexedDB and localStorage
|
|
|
|
---
|
|
## [0.1.0] - 2025-10-15
|
|
|
|
### Added
|
|
|
|
Initial alpha release with complete feature set for lightweight Vega-Lite snippet management.
|
|
|
|
#### Core Features
|
|
- Three-panel resizable layout with drag handles and panel memory
|
|
- Monaco Editor v0.47.0 with Vega-Lite v5 schema validation and autocomplete
|
|
- Live Vega-Lite preview with debounced rendering
|
|
- Draft/published workflow for safe experimentation
|
|
- Auto-save system with 1-second debounce
|
|
- Multi-field sorting (Modified/Created/Name) with direction toggle
|
|
- Real-time search across snippet name, comment, and spec content
|
|
- Snippet size display for large snippets (≥1KB)
|
|
|
|
#### Storage & Data Management
|
|
- localStorage-based snippet storage with 5MB monitoring
|
|
- IndexedDB-based dataset library (unlimited size)
|
|
- Multi-format dataset support: JSON, CSV, TSV, TopoJSON
|
|
- Multi-source dataset support: inline data and URL references
|
|
- Automatic dataset reference resolution in Vega-Lite specs
|
|
- Intelligent format auto-detection with confidence scoring
|
|
- Storage usage monitor with visual warnings (90% and 95% thresholds)
|
|
|
|
#### Dataset Features
|
|
- Full CRUD operations for datasets
|
|
- Automatic metadata calculation (rows, columns, size, types)
|
|
- URL dataset fetching with CORS error handling
|
|
- Metadata refresh for URL datasets
|
|
- Bidirectional snippet ↔ dataset linking with usage tracking
|
|
- Extract inline data from specs to dataset library
|
|
- Table preview with type detection (number 🔢, date 📅, boolean ✓, text 🔤)
|
|
- On-demand URL preview loading with session cache
|
|
- Create new snippet from dataset with auto-generated spec
|
|
|
|
#### Import/Export
|
|
- Export all snippets to JSON with auto-generated filename
|
|
- Import snippets with format auto-detection and field mapping
|
|
- Export/import datasets with format-specific file extensions
|
|
- URL dataset export fetches and downloads live content
|
|
- Additive import (no overwrites) with ID conflict resolution
|
|
- Automatic "imported" tag for external snippets
|
|
|
|
#### User Experience
|
|
- Cross-platform keyboard shortcuts (Cmd/Ctrl+Shift+N, Cmd/Ctrl+K, Cmd/Ctrl+S, Escape)
|
|
- Toast notification system (error, success, warning, info)
|
|
- Comprehensive tooltips with keyboard hints
|
|
- Enhanced Help modal with 6 sections (About, Features, Getting Started, Shortcuts, Storage, Privacy)
|
|
- Retro Windows 2000 aesthetic throughout UI
|
|
|
|
#### Settings & Customization
|
|
- Configurable editor options (font size 10-18px, tab size, minimap, word wrap, line numbers)
|
|
- Performance tuning (render debounce delay 300-3000ms)
|
|
- Date formatting options (smart/relative, locale, ISO, custom with tokens)
|
|
- Theme selection (Light, Dark Experimental)
|
|
- Automatic editor theme synchronization with UI theme
|
|
- Settings persistence in localStorage
|
|
|
|
#### URL State Management
|
|
- Hash-based routing for snippets and datasets
|
|
- Browser back/forward navigation support
|
|
- Page reload preserves selected snippet or dataset
|
|
- Shareable URLs for specific snippets or datasets
|
|
- Modal state persistence in URL
|
|
|
|
#### Technical Implementation
|
|
- Vanilla JavaScript (no frameworks, no build tools)
|
|
- AMD loader conflict resolution between Monaco and Vega
|
|
- Recursive dataset reference extraction
|
|
- Format-aware data injection for rendering
|
|
- Blob API for accurate storage size calculation
|
|
- Component-based CSS architecture with theming support
|
|
|
|
---
|
|
|
|
## Release Notes
|
|
|
|
### Alpha Development Status
|
|
|
|
Astrolabe is currently in alpha (pre-1.0) development. The application is feature-complete and functional, but has not been publicly released or extensively tested across all browsers and platforms.
|
|
|
|
**Development Timeline**: October 2024 - November 2025
|
|
|
|
**Key Accomplishments**:
|
|
- Zero external dependencies (beyond CDN libraries)
|
|
- No build tools required
|
|
- 100% local-first architecture
|
|
- Comprehensive dataset management system
|
|
- Professional UX with keyboard shortcuts and notifications
|
|
|
|
**Known Limitations**:
|
|
- Experimental dark theme has minor visibility issues
|
|
- No cross-device synchronization (future feature)
|
|
- Storage limited to browser (no cloud backup)
|
|
- Primarily tested in Chrome/Chromium browsers
|
|
|
|
**Browser Compatibility**:
|
|
- Chrome/Chromium: Fully tested and supported
|
|
- Firefox: Likely compatible, not exhaustively tested
|
|
- Safari: Likely compatible, not exhaustively tested
|
|
- IE11: Not supported (requires modern ES6+ features)
|
|
|
|
---
|
|
|
|
## Data Compatibility
|
|
|
|
All alpha versions maintain backward compatibility. Snippets (localStorage), datasets (IndexedDB), and settings persist across updates with no migration required.
|
|
|
|
---
|
|
|
|
## Future Roadmap
|
|
|
|
Planned features based on user feedback and enhancement proposals:
|
|
|
|
### Short-term (Maintenance)
|
|
- Cross-browser compatibility testing and fixes
|
|
- Dark theme visibility improvements
|
|
- Performance optimization for large datasets
|
|
- Additional keyboard shortcuts
|
|
|
|
### Medium-term (Enhancements)
|
|
- Advanced tagging system with tag filtering
|
|
- Snippet templates and starter library
|
|
- Bulk operations (delete multiple, export selected)
|
|
- Drag-and-drop import for snippets and datasets
|
|
- Snippet duplication with customizable naming
|
|
|
|
### Long-term (Major Features)
|
|
- Authentication and user accounts
|
|
- Cloud synchronization
|
|
- Snippet sharing via URL
|
|
- Public snippet gallery (optional)
|
|
- Collaborative editing
|
|
|
|
See [GitHub Issues](https://github.com/olehomelchenko/astrolabe-nvc/issues) for active feature requests and bug reports.
|