4.6 KiB
4.6 KiB
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
CustomPaintercanvas 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.wasmfor 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 —
AddEditUnitDialogwith echelon, branch, parent, and key-leader fields - Add/Edit/Delete Position Slots —
AddEditSlotDialogwith MOS autocomplete and key-leader toggle - Add/Edit/Delete Soldiers —
AddEditPersonnelDialogwith 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
InteractiveViewerpan/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_titletoPersonnel, createssoldier_positionstable CommandEventStore— append-only event log for all structural mutationsDeltaSynchronizer— 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) —ProtobufCodecwith 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.json 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,
.msiinstaller,.utofile 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
RepaintBoundarylayer 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)
DeltaSynchronizeruses simulated online/offline; no real network transportProtobufCodecuses zlib-compressed JSON payload; true.protoschema 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.