Phase 4 Evidence Pack¶
Purpose¶
This evidence pack records the concrete checks used to validate the Phase 4 sidecar and runtime process identity migration.
Pre-Change Baseline¶
Baseline A: Electron Main Build¶
- Command:
npm run build:mainfrommaestro/client - Result: passed before the Phase 4 rename work.
- Notes: existing
wsoptional dependency warnings forbufferutilandutf-8-validateremained the only warnings.
Baseline B: Local Packaging Attempt Without Cleanup¶
- Command:
./gradlew :speech-engine:clean :code-engine:clean :core:clean :client:installServer -x downloadModels - Result: failed before Phase 4 verification because the native build tree still contained stale CMake cache state and old absolute paths from the earlier subtree rename.
- Key signal:
CMakeCache.txtstill referenced the prior.../serenade/...source location. - Interpretation: this was a carry-over packaging hazard from Phase 3, not a Phase 4 process-name regression.
Post-Change Verification¶
Check 1: Sidecar Syntax¶
- Command:
node --check maestro/client/static/custom-commands-server/arqon-maestro-custom-commands-server.jsnode --check maestro/client/static/custom-commands-server/serenade-custom-commands-server.min.js- Result: passed.
- What it proves: the new primary sidecar entrypoint and the legacy wrapper are syntactically valid.
Check 2: Electron Main Bundle¶
- Command:
npm run build:mainfrommaestro/client - Result: passed.
- Warnings:
bufferutilmissing underwsutf-8-validatemissing underws- Interpretation: unchanged optional warnings; no new Phase 4 bundle regressions.
Check 3: Clean Native Packaging With Explicit Arqon Env Vars¶
- Command:
bash -lc 'cd /home/irbsurfer/Projects/arqon/ArqonMaestro/maestro && ARQON_MAESTRO_SOURCE_ROOT=/home/irbsurfer/Projects/arqon/ArqonMaestro/maestro ARQON_MAESTRO_LIBRARY_ROOT=/home/irbsurfer/libserenade ./gradlew :speech-engine:clean :code-engine:clean :core:clean :client:installServer -x downloadModels'- Result: failed.
- Key signals:
/home/irbsurfer/libserenade/marian/build/libmarian.amissing- protobuf compiler/library version mismatch
- generated protobuf headers incompatible with installed protobuf headers
- Interpretation: the runtime-process rename is not the blocker; the blocker is the external native toolchain and library environment.
Check 4: Clean Core Packaging Path¶
- Command:
./gradlew :core:clean :core:distTar :client:clean :client:installCore -x downloadModels - Result: passed.
- What it proves: the Arqon rename for the packaged core binary and the updated client install rule are both working.
Check 5: Installed Core Binary Name¶
- Command:
find maestro/client/static/local -maxdepth 4 \( -name 'arqon-maestro-*' -o -name 'serenade-*' -o -name 'run-pro' \) | sort - Result:
maestro/client/static/local/core/bin/arqon-maestro-coremaestro/client/static/local/core/bin/run-pro- What it proves: the packaged local core binary now carries the Arqon Maestro process identity.
Check 6: Built Electron Sidecar Assets¶
- Command:
find maestro/client/out/static/custom-commands-server -maxdepth 1 -type f | sort - Result included:
arqon-maestro-custom-commands-server.jsserenade-custom-commands-server.min.js- What it proves: the Electron build output now ships the new primary sidecar plus the legacy wrapper.
Evidence Summary¶
Phase 4 succeeded on the pieces it was supposed to control:
- sidecar identity
- sidecar compatibility surface
- local process naming
- packaged core binary naming
- Electron output contents
The remaining packaging failures are environmental and pre-existing:
- native dependency root alignment
- protobuf toolchain mismatch
- missing Marian library artifacts under
/home/irbsurfer/libserenade
Conclusion¶
Phase 4 can be hard-closed because the renamed sidecar and runtime identity changes are validated independently of the native-engine environment failures.