waaraawa_ByteGrid/roadmap.md
2026-05-29 14:52:46 +09:00

310 lines
7.1 KiB
Markdown

# ByteGrid Development Roadmap
**Last Updated:** 2025-10-14
**Current Phase:** Phase 2 (Core Features)
---
## Phase 1: MVP ✅ COMPLETED
**Goal:** Basic structure visualization with manual field definition
### Completed Features
- [x] Project structure setup (monorepo with core + plugin)
- [x] Basic type definitions (ByteGridConfig, Field, LayoutBlock)
- [x] YAML parser with js-yaml
- [x] Field validation (overlap detection, range checking)
- [x] Simple layout engine (single row)
- [x] Basic SVG renderer
- [x] Obsidian plugin integration
- [x] Test infrastructure (Jest)
**Status:** ✅ All core functionality implemented
---
## Phase 2: Core Features 🚧 IN PROGRESS
**Goal:** Robust visualization with advanced layout options
### Completed Features ✅
- [x] Multi-row layout support
- [x] Grid lines rendering
- [x] Color system (9 predefined colors)
- [x] Bitfield visualization (sub-byte fields)
- [x] Bit-unit layout mode (`layoutUnit: bit`)
- [x] Suffix notation (`32b`, `4B`)
- [x] Legend position control (`legendPosition: right/left/bottom/none`)
- [x] Legend multi-column layout (`legendColumns`)
- [x] Footer visibility control (`showFooter: true/false`)
- [x] Color schemes (default, dark, light modes)
- [x] Auto color assignment (`autoColor: true/false`)
- [x] Comprehensive test coverage (141 tests)
### In Progress 🔄
- [ ] Row/column labels customization
- [ ] Cell padding/spacing options
### Planned Features 📋
- [ ] Hex dump display (`showHexDump: true`)
- [ ] Bit order selection (`bitOrder: 'msb'/'lsb'`)
- MSB first: 7-6-5-4-3-2-1-0 (default, current behavior)
- LSB first: 0-1-2-3-4-5-6-7
- [ ] Field description tooltips
- [ ] Value display formatting (hex, decimal, binary)
- [ ] Endianness indicators
**Target Completion:** Q4 2025
---
## Phase 3: Interactive Features 📅 PLANNED
**Goal:** Rich user interaction and real-time visualization
### Features
- [ ] Interactive tooltips on hover
- Field name, type, offset
- Description and value
- Bit range for bitfields
- [ ] Field highlighting
- Click to highlight field
- Show all related blocks
- Copy field info to clipboard
- [ ] Zoom controls
- Zoom in/out
- Pan/scroll for large structures
- [ ] Search/filter fields
- Search by name or type
- Filter by color or category
- [ ] Export options
- Export as SVG file
- Export as PNG image
- Export as C struct definition
- Copy as Markdown table
**Target Start:** Q1 2026
---
## Phase 4: Advanced Features 📅 FUTURE
**Goal:** Binary file integration and advanced analysis
### Binary File Support
- [ ] Binary file parser (`binaryParser.ts`)
- Read binary files
- Auto-populate field values
- Endianness handling
- Generate hex dump
- [ ] File format templates
- WAV_HEADER (audio files)
- ELF_HEADER (executables)
- TCP_HEADER (network packets)
- PNG_HEADER (image files)
- Custom template system
### Structure Analysis
- [ ] Structure comparison (`comparison.ts`)
- Side-by-side view
- Overlay view
- Diff highlighting
- [ ] Padding analysis
- Auto-detect padding bytes
- Show memory waste
- Suggest optimizations
- [ ] Alignment visualization
- Show alignment boundaries
- Detect misaligned fields
- Platform-specific rules
**Target Start:** Q2 2026
---
## Phase 5: Performance & Scale 📅 FUTURE
**Goal:** Handle large structures and optimize rendering
### Performance Optimization
- [ ] Rendering cache (`cache.ts`)
- Hash-based cache keys
- TTL-based expiration
- localStorage persistence
- [ ] Virtual scrolling
- Lazy render large structures
- Only render visible rows
- Smooth scrolling
- [ ] Pagination
- Break large structures (>1000 bytes)
- Page navigation controls
- Jump to offset
### Large Structure Support
- [ ] Performance benchmarks
- 1KB: < 100ms
- 10KB: < 500ms
- 100KB: < 2s (with pagination)
- [ ] Memory optimization
- Efficient data structures
- DOM node recycling
- Progressive rendering
**Target Start:** Q3 2026
---
## Phase 6: Extensibility 📅 FUTURE
**Goal:** Plugin system and customization
### Custom Extensions
- [ ] Type system extensions
- Custom type definitions
- Type aliases
- Nested structures
- Union types
- [ ] Custom color schemes
- User-defined palettes
- Theme import/export
- Dark/light mode auto-switch
- [ ] Render hooks
- Pre-render processing
- Post-render modifications
- Custom SVG elements
- [ ] Plugin API
- Register custom parsers
- Add custom validators
- Extend layout engine
### Developer Tools
- [ ] Debug mode
- Show internal state
- Performance metrics
- Error details
- [ ] Documentation generator
- Auto-generate type docs
- Example templates
- Interactive playground
**Target Start:** Q4 2026
---
## Current Sprint (October 2024)
### Completed This Sprint ✅
- [x] Bit-unit layout implementation
- [x] Legend position options (right, left, bottom, none)
- [x] Footer visibility control
- [x] Fix legend overlapping issues
- [x] Add comprehensive tests for new features
- [x] Documentation updates
### Next Sprint Goals (November 2024)
1. **Color Schemes** (Priority: High)
- Implement dark and light color schemes
- Add `colorScheme` option to config
- Update color constants
- Add tests
2. **Hex Dump Display** (Priority: Medium)
- Add `showHexDump` option
- Render hex values below grid
- Format with proper spacing
- Handle large structures
3. **Documentation** (Priority: High)
- Create user guide in docs/
- Add more examples
- API reference cleanup
---
## Known Limitations & Future Improvements
### Current Limitations
1. **YAML Line Numbers**
- Error messages show field index, not line number
- **Improvement:** Custom YAML parser with position tracking
2. **Cache Persistence**
- Cache cleared on session end
- **Improvement:** localStorage persistence (Phase 5)
3. **Type System**
- No custom type definitions
- No nested structures
- **Improvement:** Type alias system (Phase 6)
4. **Bit Ordering**
- Assumes MSB-first
- **Improvement:** Add `bitOrder: msb/lsb` option
5. **Layout Constraints**
- Fixed cell sizes per visualization
- **Improvement:** Responsive cell sizing
---
## Contributing
See [CONTRIBUTING.md](../CONTRIBUTING.md) for guidelines on:
- Proposing new features
- Submitting pull requests
- Testing requirements
- Code style guidelines
---
## Versioning Strategy
Following **Semantic Versioning** (MAJOR.MINOR.PATCH):
- **MAJOR:** Breaking changes to public API
- **MINOR:** New features, backward compatible
- **PATCH:** Bug fixes, performance improvements
### Planned Releases
- **v0.2.0** - Phase 2 completion (Color schemes, hex dump)
- **v0.3.0** - Phase 3 start (Interactive features)
- **v1.0.0** - Production ready (All core features stable)
- **v2.0.0** - Phase 4-5 (Binary files, performance)
---
## Feedback & Priorities
Feature priorities may change based on:
- User feedback and requests
- Community contributions
- Technical dependencies
- Performance considerations
To suggest features or vote on priorities:
- Open an issue on GitHub
- Join discussions in the community
- Contribute code or documentation
---
**Document Version:** 1.0
**Next Review:** December 2024