diff --git a/crates/searchi-service/README.md b/crates/searchi-service/README.md index 70c1fad..1f02060 100644 --- a/crates/searchi-service/README.md +++ b/crates/searchi-service/README.md @@ -93,3 +93,16 @@ Provide verified `SEARCHI_SPEECH_WORKER`, `SEARCHI_SPEECH_BASE`, `SEARCHI_SPEECH Google model/worker variables, CPU FFmpeg/FFprobe helpers and a real short WAV in `SEARCHI_TEST_SPEECH_AUDIO`; Windows VM execution requires `SEARCHI_FORCE_CPU=1`. This tests publication/reuse and evidence binding, not independent relevance. + +Recorded Windows CPU functional proof, 2026-10-13: the actual `speech_google_cpu` +test passed in 113.50 seconds with native v3 worker SHA-256 +`299c1b784eac46b31d228453a399e1378f327fc9ed5e34ab950c804da33e433a` +and genuine Google embeddings. Adding/retrying speech made zero additional raw +audio inference calls and preserved exact raw vector bytes. Policy-upgrade fault +injection reported partial speech coverage, then genuine recognition restored it; +the retained Google query reader and source-bound excerpts worked across publication. +Ignored raw log `.searchi/qa/service-speech-google-cpu-v3.log` is 1292 bytes, +SHA-256 `170700adf9315ae15ae3ab5a7df6a77ab01dc5b776be179c861d2461cfc48c03`. +This uses a short existing English fixture and queries derived from recognition, +so it does not score independent relevance, precise utterance timing, GPU behavior +or native UI performance. diff --git a/docs/ROADMAP.md b/docs/ROADMAP.md index 9f25ba2..6cc080f 100644 --- a/docs/ROADMAP.md +++ b/docs/ROADMAP.md @@ -46,6 +46,9 @@ Google EmbeddingGemma 2 remains the main text/image/audio/video search model. - [x] Current CPU worker processed real English/German recordings from Unicode paths and reused loaded recognition contexts; this is functional evidence, not independent retrieval or word-timing accuracy. + - [x] Genuine shared-service ASR/Google lifecycle passed: verified speech + excerpts, zero raw reencodes through policy failure/retry, and retained + query reader; [proof](SPEECH-INTEGRATION.md). - [ ] Run genuine shared-service Google lifecycle and frozen independent query controls; stage and deliver the normal hardware-detecting runtime. - [ ] Validate richer no-answer evidence on new independent positive/negative data; do not retune the failed universal cosine cutoff on old held-out results. diff --git a/docs/SPEECH-INTEGRATION.md b/docs/SPEECH-INTEGRATION.md index 568231c..288f35f 100644 --- a/docs/SPEECH-INTEGRATION.md +++ b/docs/SPEECH-INTEGRATION.md @@ -51,8 +51,8 @@ inference budget. ## Checks still required before delivery -- [ ] Current native worker English/German context reuse and Unicode paths. -- [ ] Actual shared-service ASR plus Google lifecycle integration. +- [x] Current CPU native worker English/German context reuse and Unicode paths. +- [x] Actual shared-service ASR plus Google lifecycle integration. - [ ] Frozen independent four-file/ten-query and separate seam evaluation. - [ ] Normal hardware-detecting runtime staging and Windows package startup. - [ ] Publish/install the verified Windows update. @@ -63,3 +63,30 @@ The independent fixture has no publisher phrase timestamps. It can measure retrieval and negative controls, but cannot establish precise word-level timing accuracy. Music relevance and general no-answer rejection remain separate open quality work; diagnostic integration alone does not raise the media rating. + +## Genuine CPU functional proofs + +The internal v3 worker SHA is +`299c1b784eac46b31d228453a399e1378f327fc9ed5e34ab950c804da33e433a`; +its inventory SHA is +`4904995685a5e55e0a790d9cc409dc8458e39c30cda4097c5d70bf75cb5c976c`. +English/German tests relocated the worker and real models to paths containing +`München`, `測試` and `🚀`. Each repeated recognition returned stable bounded +passages, and the second call reported zero additional model-load time. These +checks selected `Auto` in the Rust client with `SEARCHI_FORCE_CPU=1`, so native +execution was explicitly CPU. They do not validate dynamic acceleration loading. + +The actual service lifecycle test passed in 113.50 seconds. Adding recognition, +an injected optional failure on policy upgrade, and a genuine retry all retained +byte-identical raw Google vectors with zero additional raw-audio encodes. +Recognized results, exact verified excerpts, stable policy/source retry identity +and the retained Google query reader were checked. This uses a query derived +from recognition to test the contract; it is not an independent relevance score. +Raw log `.searchi/qa/service-speech-google-cpu-v3.log`: 1292 bytes, SHA +`170700adf9315ae15ae3ab5a7df6a77ab01dc5b776be179c861d2461cfc48c03`. + +The first normal auto compilation reached Vulkan setup but failed on Windows +nested MSBuild path length. Its log is retained, SHA +`59f1820d6ac6adac6f525d8084c442c1ed261753eb34fcce916dc157041f777c`. +An unchanged build in a shorter owned output directory is underway; no CPU-only +distribution was substituted.