113 lines
4.6 KiB
Markdown
113 lines
4.6 KiB
Markdown
# 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.*
|