From 881bf85ea12f2a421a511765889c976ed02721a3 Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Wed, 5 Aug 2026 08:17:46 +0000 Subject: [PATCH 1/3] docs: add version bump and guarder evidence to extension pr checklist reviewers request these on every asr/tts extension pr: bump the version in both manifest.json and pyproject.toml, and attach the guarder test result to the pr as a comment. --- docs/ai/L1/L2/extension_development.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/docs/ai/L1/L2/extension_development.md b/docs/ai/L1/L2/extension_development.md index 0ff01250a3..c36ffc6fef 100644 --- a/docs/ai/L1/L2/extension_development.md +++ b/docs/ai/L1/L2/extension_development.md @@ -769,6 +769,12 @@ class MyBridge(AsyncExtension): ## Pre-Submission Checklist +- [ ] Version bumped in BOTH `manifest.json` and `pyproject.toml` — any + change to an existing extension needs at least a patch bump; + reviewers request this on every PR that misses it +- [ ] Guarder test result attached to the PR as a comment (screenshot + or pasted terminal output of the final pytest summary) — + reviewers ask for this on every ASR/TTS extension PR - [ ] `addon.py` decorator name matches `manifest.json` `name` field - [ ] All abstract methods implemented (vendor, request_tts/send_audio, etc.) - [ ] Config validation raises ValueError for missing required params From d2fab18744f56138144195899c4a0c6e0264f124 Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Wed, 5 Aug 2026 09:50:20 +0000 Subject: [PATCH 2/3] docs: require screenshot for guarder evidence in pr checklist --- docs/ai/L1/L2/extension_development.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/docs/ai/L1/L2/extension_development.md b/docs/ai/L1/L2/extension_development.md index c36ffc6fef..14fc876c8d 100644 --- a/docs/ai/L1/L2/extension_development.md +++ b/docs/ai/L1/L2/extension_development.md @@ -772,9 +772,10 @@ class MyBridge(AsyncExtension): - [ ] Version bumped in BOTH `manifest.json` and `pyproject.toml` — any change to an existing extension needs at least a patch bump; reviewers request this on every PR that misses it -- [ ] Guarder test result attached to the PR as a comment (screenshot - or pasted terminal output of the final pytest summary) — - reviewers ask for this on every ASR/TTS extension PR +- [ ] Screenshot of the guarder test result attached as a PR comment + (run with `-v` so per-test results are visible; an image is what + reviewers expect, not just pasted text) — requested on every + ASR/TTS extension PR - [ ] `addon.py` decorator name matches `manifest.json` `name` field - [ ] All abstract methods implemented (vendor, request_tts/send_audio, etc.) - [ ] Config validation raises ValueError for missing required params From f535cffbad97d955d9a3abfa1d77d331b19716b5 Mon Sep 17 00:00:00 2001 From: Ubuntu Date: Wed, 5 Aug 2026 13:32:19 +0000 Subject: [PATCH 3/3] docs: explain expected guarder skips and mllm evidence in testing guide --- docs/ai/L1/L2/testing.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/docs/ai/L1/L2/testing.md b/docs/ai/L1/L2/testing.md index b582559057..c4e3177c28 100644 --- a/docs/ai/L1/L2/testing.md +++ b/docs/ai/L1/L2/testing.md @@ -215,6 +215,27 @@ checks `ENABLE_SAMPLE_RATE` env var. Extensions like `openai_tts_python`, - If a vendor does not expose that data, document the gap clearly and treat `test_subtitle_alignment` as out of scope rather than forcing fake support. +### Interpreting Skips: What a Full Pass Looks Like + +For an HTTP-based TTS extension, `15 passed, 2 skipped` IS the full pass — +the two skips are guarder-side conditions on whole classes of extensions, +not gaps in the change under review: + +- `test_connection_status` only runs for websocket TTS extensions (and only + when explicitly enabled); HTTP extensions have no connection state machine + to test. +- `test_subtitle_alignment` is disabled by default for all extensions + (`--enable_subtitle_alignment=True` to run) and restricted to vendors that + return per-word timing. + +When posting guarder evidence on a PR, run with `-v` so the per-test +PASSED/SKIPPED lines are visible, and expect to explain skips in exactly +these terms if a reviewer asks. + +MLLM (speech-to-speech) extensions have no guarder suite — only +`asr_guarder` and `tts_guarder` exist. For MLLM PRs, provide the standalone +pytest suite result plus a note on live-service verification instead. + --- ## ASR Guarder Tests (10 Tests, 1 Excluded by Test Runner)