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

4.6 KiB
Raw Blame History

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.