chore[notask]: refresh tests-qvac docs, tooling, and workflow job names#1712
Merged
Conversation
…kflows Add display `name:` fields to jobs in the three reusable SDK test workflows so the Actions UI can tell platforms apart when they run under the same umbrella (test-sdk.yml). Job IDs, needs: graphs, outputs, and artifact names are unchanged.
- Bump @tetherto/qvac-test-suite from ^0.5.1 to ^0.6.0 to pick up the run:local:desktop / run:local:android / run:local:ios commands and the suite + bootstrap features used by the refreshed local flow. - Add install:build script (npm install --install-links && npm run build) for a one-shot reinstall + rebuild after SDK changes.
- Lead with run:local:* one-liners instead of the old manual iOS flow. - Document the MQTT broker requirement (ws:8080 + mqtt:1883) and the embedded aedes + websocket-stream fallback behaviour. - Document the PR label triggers (test-e2e-smoke, test-e2e-full) and the manual workflow_dispatch entry point, including the non-obvious workflow-branch vs test-version distinction. - Add a "Developing new tests" section with executor placement guidance (shared / desktop / mobile) and the smoke-suite policy (1-2 tests per feature, only when no existing smoke coverage). - Keep manual Xcode fallback only as a troubleshooting bullet.
New cursor rule scoped to packages/sdk/** that enforces: - Evaluate e2e test suite impact on any SDK source change. - Rebuild tests-qvac via `npm run install:build` on SDK API or model constant changes; adapt or add tests accordingly. - Executor placement decision tree (tests/shared vs tests/desktop vs tests/mobile) with the hard rule that node:* imports are banned from shared/ and mobile/. - Smoke-suite policy: 1-2 tests per feature, only when no existing smoke coverage, stable on both desktop and mobile. - Points at tests-qvac/README.md for the local-run and CI-trigger details.
Prevent accidental commits of local run artefacts: - .env / .env.bak-* may contain MQTT credentials copied from .env.example. - rag-hyperdb/ holds generated HyperDB corestore data from RAG tests.
simon-iribarren
previously approved these changes
Apr 23, 2026
Contributor
Tier-based Approval Status |
…ild flows - package.json: prepare:sdk (bun install + build in packages/sdk/) and install:build:full (prepare:sdk + install:build) for one-shot SDK + tests-qvac rebuilds. - README: new "Rebuilding after changes" section with a decision table covering SDK source changes, test-code-only changes, and producer-side-only changes (--skip-build). Clarifies that mobile always needs a fresh APK/IPA to pick up SDK or test-code changes and that --skip-build is strictly for re-runs with different suites or filters. - Cursor rule now points at the README section and references install:build:full alongside install:build.
New Cursor skill under .cursor/skills/sdk-e2e-create/ that guides planning and scaffolding of e2e tests in packages/sdk/tests-qvac for new or changed public SDK APIs. - Investigate-first flow: read the feature from code and existing tests, then present a concrete plan and ask targeted clarifying questions only where genuine ambiguity remains. - Enforces happy / sad / error coverage for every public API feature. - Ranks model-output validation strategies from deterministic keyword assertions down to shape-only fallbacks, to avoid weak coverage by default. - Covers executor placement (shared / desktop / mobile) with mobile memory / filesystem / platform constraints. - Smoke-suite selection rules: 1-2 tests per feature, only when no existing smoke coverage, stable across platforms. - Includes scaffolding templates and the exact run:local:desktop --filter command to hand back to the user for local verification.
Victor-Rodzko
approved these changes
Apr 23, 2026
simon-iribarren
approved these changes
Apr 24, 2026
simon-iribarren
left a comment
Contributor
There was a problem hiding this comment.
Approving. Doc + tooling refresh only — README rewrite, new tests-qvac.mdc rule + sdk-e2e-create skill, and name: prefixes on reusable workflow jobs (display-only, job graph / outputs / artifacts unchanged). install:build and install:build:full scripts match how the README and CI already drive builds. Victor already approved on the latest commit. Zero runtime impact.
NamelsKing
approved these changes
Apr 24, 2026
Proletter
pushed a commit
that referenced
this pull request
May 24, 2026
…es (#1712) * infra: distinguish [ios] / [android] / [desktop] jobs in sdk test workflows Add display `name:` fields to jobs in the three reusable SDK test workflows so the Actions UI can tell platforms apart when they run under the same umbrella (test-sdk.yml). Job IDs, needs: graphs, outputs, and artifact names are unchanged. * chore: bump qvac-test-suite to ^0.6.0 and add install:build script - Bump @tetherto/qvac-test-suite from ^0.5.1 to ^0.6.0 to pick up the run:local:desktop / run:local:android / run:local:ios commands and the suite + bootstrap features used by the refreshed local flow. - Add install:build script (npm install --install-links && npm run build) for a one-shot reinstall + rebuild after SDK changes. * doc: rewrite tests-qvac readme for local-first workflow and ci triggers - Lead with run:local:* one-liners instead of the old manual iOS flow. - Document the MQTT broker requirement (ws:8080 + mqtt:1883) and the embedded aedes + websocket-stream fallback behaviour. - Document the PR label triggers (test-e2e-smoke, test-e2e-full) and the manual workflow_dispatch entry point, including the non-obvious workflow-branch vs test-version distinction. - Add a "Developing new tests" section with executor placement guidance (shared / desktop / mobile) and the smoke-suite policy (1-2 tests per feature, only when no existing smoke coverage). - Keep manual Xcode fallback only as a troubleshooting bullet. * doc: add cursor rule for tests-qvac e2e impact and authoring conventions New cursor rule scoped to packages/sdk/** that enforces: - Evaluate e2e test suite impact on any SDK source change. - Rebuild tests-qvac via `npm run install:build` on SDK API or model constant changes; adapt or add tests accordingly. - Executor placement decision tree (tests/shared vs tests/desktop vs tests/mobile) with the hard rule that node:* imports are banned from shared/ and mobile/. - Smoke-suite policy: 1-2 tests per feature, only when no existing smoke coverage, stable on both desktop and mobile. - Points at tests-qvac/README.md for the local-run and CI-trigger details. * chore: gitignore tests-qvac local secrets and rag-hyperdb data Prevent accidental commits of local run artefacts: - .env / .env.bak-* may contain MQTT credentials copied from .env.example. - rag-hyperdb/ holds generated HyperDB corestore data from RAG tests. * chore: add install:build:full / prepare:sdk scripts and document rebuild flows - package.json: prepare:sdk (bun install + build in packages/sdk/) and install:build:full (prepare:sdk + install:build) for one-shot SDK + tests-qvac rebuilds. - README: new "Rebuilding after changes" section with a decision table covering SDK source changes, test-code-only changes, and producer-side-only changes (--skip-build). Clarifies that mobile always needs a fresh APK/IPA to pick up SDK or test-code changes and that --skip-build is strictly for re-runs with different suites or filters. - Cursor rule now points at the README section and references install:build:full alongside install:build. * doc: add sdk-e2e-create skill for e2e test planning New Cursor skill under .cursor/skills/sdk-e2e-create/ that guides planning and scaffolding of e2e tests in packages/sdk/tests-qvac for new or changed public SDK APIs. - Investigate-first flow: read the feature from code and existing tests, then present a concrete plan and ask targeted clarifying questions only where genuine ambiguity remains. - Enforces happy / sad / error coverage for every public API feature. - Ranks model-output validation strategies from deterministic keyword assertions down to shape-only fallbacks, to avoid weak coverage by default. - Covers executor placement (shared / desktop / mobile) with mobile memory / filesystem / platform constraints. - Smoke-suite selection rules: 1-2 tests per feature, only when no existing smoke coverage, stable across platforms. - Includes scaffolding templates and the exact run:local:desktop --filter command to hand back to the user for local verification.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🎯 What problem does this PR solve?
tests-qvac/README.mdled with an outdated manual iOS flow and missed therun:local:*one-liners shipped in@tetherto/qvac-test-suite0.6.0.tests-qvacshould be rebuilt on SDK API / model changes.build,device-farm,run-producer,cleanup-device-farm) were indistinguishable between iOS and Android in the Actions UI when run undertest-sdk.yml..env.bak-*,rag-hyperdb/) into the working tree.📝 How does it solve it?
packages/sdk/tests-qvac/README.md: local-first ordering, accurate MQTT broker behaviour (ws:8080 + tcp:1883, embeddedaedesfallback), CI label triggers + manualworkflow_dispatchentry point, the non-obvious workflow-branch vstest-versiondistinction, executor-placement guidance, and a smoke-suite policy. Adds a "Rebuilding after changes" decision table covering SDK / test-code / producer-only changes and--skip-buildsemantics.prepare:sdkandinstall:build:fullnpm scripts so a single command rebuilds both the SDK and tests-qvac..cursor/rules/sdk/tests-qvac.mdcenforcing e2e impact checks on SDK changes,install:build/install:build:fullrebuild on API or model constant changes, executor placement tree (tests/sharedvstests/desktopvstests/mobile), and the smoke-suite policy (1-2 tests per feature, only when no existing coverage, stable on both desktop and mobile)..cursor/skills/sdk-e2e-create/SKILL.md— investigate-first skill for planning and scaffolding e2e tests for new SDK features. Ranks model-output validation strategies (from deterministic keyword assertions down to shape-only fallbacks), enforces happy/sad/error coverage, covers mobile/desktop placement with memory + filesystem + platform constraints, and produces the exactrun:local:desktop --filtercommand for local verification.@tetherto/qvac-test-suite^0.5.1→^0.6.0and addinstall:build(npm install --install-links && npm run build) as a one-shot reinstall + rebuild.name: "[ios|android|desktop] …"prefixes to jobs in the three reusable test workflows. Job IDs,needs:graphs, outputs, and artifact names are unchanged..env,.env.bak-*, andrag-hyperdb/intests-qvac.🧪 How was it tested?
git check-ignoreconfirms.env,.env.bak-*, andrag-hyperdb/entries match.name:fields only; no changes to job graph or wire artefacts. Will be visible in the Actions UI on the next SDK test run.npm run install:build/install:build:fullscripts match the commands the existing README snippets (and CI) already rely on;install:build:fullchains the existing root-level bun build.