Arqon Maestro Modernization Matrix¶
Purpose: Track the current state, modernization sequence, and verification standard for each major subsystem in Arqon Maestro.
Status Legend¶
| Status | Meaning |
|---|---|
| 🟢 Working | Functional and acceptable for current use |
| 🟡 In Progress | Active modernization or recovery work |
| 🔴 Blocked | Cannot move safely without a dependency, decision, or upstream fix |
| ⚪ Planned | Not started, but intentionally queued |
| 🗄️ Legacy | Still present, but should be replaced, retired, or isolated |
Program Summary¶
The original build recovery and full internal rebrand are complete.
All six waves of the modernization program are now complete:
Wave A: Build Hygiene - ✅ COMPLETEWave B: Local Runtime Completeness - ✅ COMPLETEWave C: Packaging and Distribution - ✅ COMPLETEWave D: External Infrastructure Ownership - ✅ COMPLETE (deferred)Wave E: Historical and Provenance Audit - ✅ COMPLETEWave F: Data Plane Modernization - 🟡 IN PROGRESS
This ordering is deliberate:
- clean the engineering baseline
- make local runtime reliable
- make packaging repeatable
- resolve external ownership
- clean historical/public legacy surfaces
- extract hot paths into Rust only after the system is operationally stable
Current State Snapshot¶
Wave B is now governed by two explicit control documents:
| Area | Current State | Status | Notes |
|---|---|---|---|
| Java control plane | Modernized to Java 17 / Gradle 8.5 baseline | 🟢 Working | See ADM-001 and ADM-002 |
| Internal rebrand | Seven-phase rebrand complete | 🟢 Working | Hard-close packs published |
| Electron startup | Working | 🟢 Working | No longer stuck at Loading... |
| Linux microphone path | Working | 🟢 Working | Voice pipeline recovered |
| Cloud-backed runtime | Usable | 🟢 Working | Current best path for day-to-day use |
| Local multi-service runtime | Healthy local services with concurrent status checks | 🟢 Working | Wave B hard-closed; keep local e2e voice flow under regression |
| Voice Plane (Phase E) | All 5 gates hard-closed | 🟢 Complete | 2026-03-10 - voice_plane_implementation_plan.md |
| Build warning hygiene | Hard-closed | 🟢 Working | Wave A completed on 2026-03-08 |
| Packaging/distribution | Repeatable baseline validated on current lane | 🟢 Working | Wave C hard-closed with evidence |
| External ownership | Governance completed; cutover deferred | 🟢 Working | Wave D hard-closed as prepared+deferred |
| Historical/provenance surfaces | Classified and updated with provenance controls | 🟢 Working | Wave E hard-closed |
| Rust data plane extraction | Wave F kickoff active | 🟡 In Progress | Voltron pattern execution starts with bounded extraction |
Subsystem Matrix¶
Control Plane¶
| Aspect | Current State | Target | Priority | Status | Notes |
|---|---|---|---|---|---|
| Java baseline | Java 17 | Keep stable | High | 🟢 Working | ADM-001 |
| Gradle wrapper | 8.5 | Keep stable | High | 🟢 Working | ADM-002 |
| Dependency baseline | Modernized | Keep current | High | 🟢 Working | ADM-003, ADM-006 |
| Gradle deprecations | Cleared on active verification path | Keep clean | High | 🟢 Working | Wave A hard-closed |
| Build script style | Groovy DSL | Kotlin DSL optional migration | Low | ⚪ Planned | ADM-005 |
Voice Runtime¶
| Aspect | Current State | Target | Priority | Status | Notes |
|---|---|---|---|---|---|
| Electron startup | Stable | Keep stable | High | 🟢 Working | Startup recovery complete |
| Microphone capture | Stable on Linux | Keep stable | High | 🟢 Working | Mic pipeline repaired |
| Chunking / endpointing | Stable | Harden | High | 🟢 Working | Keep under regression coverage |
| Cloud-backed listen flow | Working | Keep stable | High | 🟢 Working | Current reliable mode |
| Local multi-service voice flow | Operational with concurrent engine health checks | Full reliability | High | 🟢 Working | Wave B hard-closed; continue e2e command regression |
| Voice Plane (Gates 1-5) | All gates hard-closed | Complete | High | 🟢 Complete | Phase E hard-closed 2026-03-10 |
Engines¶
| Aspect | Current State | Target | Priority | Status | Notes |
|---|---|---|---|---|---|
| Speech engine | Local startup and status endpoint healthy | Stabilize first | High | 🟢 Working | Verified on :17202 in bundled local stack |
| Code engine | Local startup and status endpoint healthy | Stabilize first | High | 🟢 Working | Previous segfault path removed from TokenIdConverter |
| Marian-based path | Legacy | Reassess after Wave B | Medium | ⚪ Planned | Do not optimize before stabilization |
| Corpus generation | Preserved | Re-enable intentionally | Medium | ⚪ Planned | After runtime and packaging |
Native / Tree-Sitter / Parsing¶
| Aspect | Current State | Target | Priority | Status | Notes |
|---|---|---|---|---|---|
| Tree-sitter binding | Vendored and re-namespaced | Keep stable | High | 🟢 Working | Phase 7 complete |
| JNI/native glue | Recovered | Keep stable | High | 🟢 Working | Needs regression coverage |
| Grammar generation | Working | Keep stable | Medium | 🟢 Working | ANTLR still active |
| Python build warnings | Cleared on active tree-sitter build path | Keep clean | Medium | 🟢 Working | Wave A hard-closed |
Packaging / Distribution¶
| Aspect | Current State | Target | Priority | Status | Notes |
|---|---|---|---|---|---|
| Electron packaging | Repeatable unsigned package path | Modernized | High | 🟢 Working | Wave C hard-closed |
| AppImage | Verified artifact build + checksum | Verified or replaced | Medium | 🟢 Working | Wave C hard-closed |
| Release/update flow | Build path verified; ownership deferred | Verified distribution path | Medium | 🟡 In Progress | Runtime ownership moves to Wave D |
| VS Code extension packaging | Build and pack dry-run verified | Modernized and verified | Medium | 🟢 Working | Wave C hard-closed |
Ownership / Public Surface¶
| Aspect | Current State | Target | Priority | Status | Notes |
|---|---|---|---|---|---|
| External endpoints/CDN | Inherited ownership | Arqon-owned or explicitly deferred | High | ⚪ Planned | Wave D |
| Historical/public legacy content | Mixed | Audited and classified | Medium | ⚪ Planned | Wave E |
| Provenance/legal materials | Mixed with active content | Explicitly separated | Medium | ⚪ Planned | Wave E |
Data Plane Modernization¶
| Aspect | Current State | Target | Priority | Status | Notes |
|---|---|---|---|---|---|
| Audio hot path | Mostly inherited/native | Rust extraction | Medium | 🟡 In Progress | Wave F active |
| VAD hot path | Mostly inherited/native | Rust extraction | Medium | 🟡 In Progress | Wave F active |
| FFI boundary | Minimal / inherited | Explicit Rust bridge | Medium | 🟡 In Progress | Wave F active |
| Full rewrite pressure | Rejected | Incremental extraction only | High | 🟢 Working | ADM-010 |
Wave Plan¶
Wave A: Build Hygiene¶
Goal
Create a clean, boring engineering baseline with warning-free or intentionally-accounted-for builds.
Scope
- remove current Webpack warnings
- remove current Gradle deprecation warnings where practical
- remove Python deprecation warnings in the tree-sitter build path
- identify warnings that are acceptable temporary exceptions and record them explicitly
Exit Criteria
maestro/clientmain build is warning-free or has documented temporary exceptions- core Gradle verification path is warning-free or has documented temporary exceptions
- docs build is clean
- warning exceptions, if any, are captured in docs instead of rediscovered ad hoc
Primary Risks
- masking real dependency issues by silencing warnings blindly
- widening scope into dependency churn without a clear payoff
Status
completed- Evidence: Wave A Evidence
- Closeout: Wave A Closeout
Test Requirements
- unit tests: build-script and helper-script validation where applicable
- integration tests: Gradle verification path for
:java-tree-sitter,:core, and:corpusgen - end-to-end tests: Electron main build plus one working app startup path
- regression tests: rerun the known working microphone/listen flow after warning cleanup
- adversarial tests: intentionally missing optional native modules and stale env vars should fail clearly, not ambiguously
Wave B: Local Runtime Completeness¶
Goal
Make local mode a first-class operational path instead of a partial recovery path.
Scope
- verify
core,speech-engine, andcode-enginestartup together - close known local startup and health-check gaps
- verify local UI state transitions end-to-end
- verify local voice path from mic capture through command execution
Exit Criteria
- local mode reaches healthy state without manual guesswork
- local UI leaves
Starting Server...correctly - local listen flow produces actual command execution
- local logs and health checks are documented and reliable
- every dependency used to close Wave B is accounted for in the compatibility matrix
- no frozen lane was mutated to make local mode work
Primary Risks
- environment-specific failures being mistaken for code regressions
- partial success in one service hiding another unhealthy service
- violating a frozen ecosystem lane through implicit dependency assumptions
Current Baseline
- local build tasks now pass the repo root explicitly into native packaging instead of drifting to
~/serenade - local Electron startup now fails explicitly when bundled services or model directories are absent instead of polling forever
client:installServer -x downloadModelsnow fails fast with a concrete missing-dependency list on this machine- Wave B is now constrained by the frozen registry and compatibility matrix instead of ambient environment assumptions
corelocal runtime no longer crashes inParser.<clinit>(); tree-sitter JNI library now exportsai.arqon.maestrosymbolsspeech-engineandcode-enginestartup scripts now default model paths and fail clearly when model env vars are missing- local
code-engineno longer hits the previous sentencepiece/protobuf crash path inTokenIdConverter - local
core,speech-engine, andcode-engineall returnstatus=okconcurrently (17200/17202/17203)
Test Requirements
- unit tests: health-check and local state transition logic
- integration tests: local process startup, port checks, and service health probes
- end-to-end tests: full local listen command from app launch to applied action
- regression tests: compare local behavior against current cloud-backed working flow
- adversarial tests: kill one local service, corrupt one config, or block one port and confirm failure is explicit
Current Evidence
Wave C: Packaging And Distribution¶
Goal
Make packaging, installers, and release artifacts reproducible and supportable.
Scope
- modernize Electron packaging assumptions
- validate AppImage or replace it with a clearer Linux distribution path
- verify update/release configuration
- verify VS Code extension packaging separately
Exit Criteria
- at least one supported desktop packaging path is repeatable end-to-end
- installer/update assumptions are documented and tested
- extension packaging/build path is verified
Primary Risks
- packaging code paths diverging from development startup paths
- release metadata still pointing at inherited infrastructure
Status
completed (hard-close)- Plan: Wave C Plan
- Evidence: Wave C Evidence
- Closeout: Wave C Closeout
Test Requirements
- unit tests: packaging helper scripts and config transforms where possible
- integration tests: build/package tasks in CI-like conditions
- end-to-end tests: install or unpack artifact and launch successfully
- regression tests: packaged app preserves working mic and stream behavior
- adversarial tests: missing assets, stale paths, and unsigned builds fail in understandable ways
Wave D: External Infrastructure Ownership¶
Goal
Move inherited external ownership surfaces into Arqon-owned infrastructure where justified.
Scope
- endpoints
- CDN/model distribution
- release/image ownership
- upstream external references that are still active dependencies
Canonical Plan
Exit Criteria
- ownership surfaces are inventoried and classified
- at least the first production-relevant external surface has a real Arqon replacement plan
- runtime changes only occur once replacement infrastructure actually exists
Current Status
completed (prepared + deferred)- Evidence: Wave D Evidence
- Closeout: Wave D Closeout
- live cutover remains deferred until D2 trigger conditions are met
Test Requirements
- unit tests: config-selection logic for endpoint ownership cutovers
- integration tests: auth, download, and health-check flows against new infra
- end-to-end tests: live runtime against Arqon-owned surfaces
- regression tests: verify no silent fallback to dead inherited infra
- adversarial tests: endpoint outage, bad TLS, stale token, and partial cutover handling
Wave E: Historical And Provenance Audit¶
Goal
Separate active product messaging from historical and provenance material.
Scope
- inherited READMEs
- website/blog/public docs retained in-tree
- public-facing historical surfaces that still carry inherited messaging
Canonical Plan
Exit Criteria
- public surfaces are classified as preserve, annotate, rewrite, archive, or remove
- active product surfaces no longer rely on stale inherited messaging
- provenance material remains accurate where preserved
Current Status
completed (hard-close)- Evidence: Wave E Evidence
- Closeout: Wave E Closeout
Test Requirements
- unit tests: not generally applicable; use lint and content validation instead
- integration tests: docs build, nav integrity, and internal-link integrity
- end-to-end tests: published docs/site navigation reflects the intended classification
- regression tests: retained provenance references remain accurate and intentional
- adversarial tests: ensure historical/legal content is not accidentally rewritten inaccurately
Wave F: Data Plane Modernization¶
Goal
Start the Rust extraction path only after the system is operationally stable.
Scope
- audio hot path
- VAD hot path
- explicit FFI bridge
- incremental replacement of latency-critical components only
Exit Criteria
- first Rust hot-path component is isolated behind a stable interface
- Java control-plane behavior remains unchanged from the operator perspective
- measurable latency or maintainability gain is demonstrated
Primary Risks
- rewrite creep
- destabilizing a now-working voice path for architectural purity
Current Status
in progress (kickoff)- scope focus: baseline/profiling + first bounded extraction candidate selection
Test Requirements
- unit tests: Rust module behavior and FFI contract boundaries
- integration tests: Java-to-native or Java-to-Rust bridge correctness
- end-to-end tests: real mic-to-command flow still works unchanged
- regression tests: transcript and command behavior match pre-extraction baseline
- adversarial tests: malformed buffers, partial chunks, and timing/pathological input conditions
Testing Policy Across All Waves¶
Every modernization wave must explicitly define and run the relevant subset of these test classes:
Unit Tests- validate isolated code behavior
-
parser, helpers, config selection, wrappers, adapters, and transformation logic
-
Integration Tests - validate subsystem boundaries
-
client ↔ stream, core ↔ tree-sitter, local service startup, packaging tasks, docs publishing
-
End-to-End Tests - validate real operator workflows
-
app start, listen, interpret, execute, and observe result
-
Regression Tests - validate that previously recovered critical paths stay working
-
startup, microphone capture, stream connection, command execution, docs build, packaging build
-
Adversarial Tests - validate failure behavior under bad or surprising conditions
- missing dependencies, dead services, stale config, bad paths, malformed input, partial infra cutover
No wave is complete unless its relevant test evidence is recorded.
Active Wave¶
Wave F: Data Plane Modernization is currently active.
Previous waves (A-E) are complete. Voice Plane (Phase E) implementation is complete with all 5 gates hard-closed.
Last Updated¶
- Date: 2026-03-10
- Updated by: Codex
- Next Review: Ongoing during Wave F