uto_manager/docs/release-notes/v1.0.0.md

113 lines
4.6 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# v1.0.0 — Initial Release
## Status: 🔵 In Development
**Target:** End of hardening phase
---
## Implemented Features (Phases 1–5)
### Core Platform
- Cross-platform Flutter application targeting Windows x64, Web (WASM), and Android
- GPU-accelerated `CustomPainter` canvas engine with viewport culling
- Three-pane adaptive layout: personnel roster | org chart canvas | unit inspector
- Offline-first Drift/SQLite persistence with IndexedDB on Web (schema v2)
- Web platform: `drift_worker.js` + `sqlite3.wasm` for full WASM/IndexedDB support
### Organizational Modeling
- Complete domain model: `UnitNode`, `PositionSlot`, `PersonnelRecord`, `SoldierPosition`
- MOS validation across all functional branches (Infantry, Medical, Fires, Signal, Cyber/EW, Aviation, Logistics, Engineer)
- 2026 doctrinal templates: MBCT, SBCT, ABCT, CAB-Heavy, CAB-Light
- 31 built-in Army duty positions (Command/Staff, Platoon, Squad, Individual) + user-defined custom positions
### Full CRUD User Interface
- **Add/Edit/Delete Units** — `AddEditUnitDialog` with echelon, branch, parent, and key-leader fields
- **Add/Edit/Delete Position Slots** — `AddEditSlotDialog` with MOS autocomplete and key-leader toggle
- **Add/Edit/Delete Soldiers** — `AddEditPersonnelDialog` with position picker, MOS autocomplete, pay grade, and readiness state
- **Custom Position Management** — create, rename, and delete custom duty positions from within the personnel dialog
- **Clear All** — confirmation-gated reset of all units, slots, and assignments
### Visual Canvas
- `InteractiveViewer` pan/zoom org chart
- Drag-and-drop soldier assignment (drag from personnel panel → drop on position slot card)
- Drag-and-drop unit re-parenting with doctrinal validation highlights
- Validation node indicators: red border for critical findings, amber for warnings
### MTOE Validation Engine
- 7 validation rules (V001–V007): MOS mismatch, rank mismatch, vacant key leader, missing 68W medic, missing 13F FSO, structural hierarchy violation, manning below 70%
- Background Dart Isolate execution via `IsolateValidationRunner`
- Findings displayed in inspector panel (per-unit, color-coded by severity) and status bar
### Persistence & Sync
- Drift schema v2: `units`, `position_slots`, `personnel`, `soldier_positions`, `templates`
- Schema migration v1→v2: adds `position_title` to `Personnel`, creates `soldier_positions` table
- `CommandEventStore` — append-only event log for all structural mutations
- `DeltaSynchronizer` — offline-first sync helper (simulated transport; real network deferred)
### Export
- **JSON export/import** — full unit tree with schema versioning and round-trip fidelity
- **Binary export (`.utob`)** — `ProtobufCodec` with 12-byte UTOB header + zlib-compressed JSON
- **PDF export** — pure-Dart PDF 1.4 org-chart generator (Letter/A4/Tabloid, UNCLASSIFIED banner)
- Export dialog with format selection and PDF page-size picker
---
## Planned Features (Hardening Phase)
### Visual Symbology
- MIL-STD-2525D tactical symbology rendering (hybrid: `milsymbol.js` on Web, SVG path engine on native)
### Security
- SQLCipher data-at-rest encryption for local Drift database
- Platform keychain key storage (Windows Credential Manager / Android Keystore)
### Platform Hardening
- Windows: multi-window support, `.msi` installer, `.uto` file association
- Web: PWA offline capability, IndexedDB quota management, service worker
- Android: battery profiling, touch-optimized targets (48×48 dp minimum)
### Performance
- Reingold-Tilford layout algorithm in background Dart Isolate
- Quadtree spatial index for hit-testing
- `RepaintBoundary` layer isolation
- 60 FPS at 5,000+ nodes (Windows), 2,000+ (Web), 1,500+ (Android)
### UX
- Undo/redo stack for all CRUD operations
- Canvas search/filter
- Keyboard shortcuts (Ctrl+Z, Ctrl+F, Ctrl+D, Ctrl+S)
---
## Known Limitations
- MIL-STD-2525D symbology not yet rendered (nodes show text labels only)
- No data-at-rest encryption (SQLCipher deferred)
- `DeltaSynchronizer` uses simulated online/offline; no real network transport
- `ProtobufCodec` uses zlib-compressed JSON payload; true `.proto` schema deferred
- Template instantiation uses sequential Drift inserts (not a single transaction)
- No undo/redo for CRUD operations
- Canvas layout is vertical tree only; horizontal layout not implemented
- No canvas search/filter
---
## Upgrade Instructions
*Initial release — no upgrade path required.*
*Existing databases at schema v1 will be automatically migrated to v2 on first launch.*