# 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.*