This directory contains the unified entrypoints for the live regression lanes:
run.shdispatches named lanes and writes artifactsscrub-artifacts.shscans artifacts before uploadupgrade-canary.shchecks previous-release DB compatibility
The auth-focused Python runners remain the executors behind the auth lanes:
scripts/auth_canary/run_canary.py— mock-backed pytest matrix (fresh-machine)scripts/auth_live_canary/run_live_canary.py— live-provider runner with two modes:--mode seeded(token persistence and refresh) and--mode browser(OAuth consent in Playwright)
Their shared auth canary setup, provider registry, and runtime helpers live in:
scripts/live_canary/common.pyscripts/live_canary/auth_registry.pyscripts/live_canary/auth_runtime.py
Note on naming: live-canary/ (this directory, hyphen) is the shell dispatcher
and operator-facing entrypoint; live_canary/ (sibling, underscore) is the
Python package. The hyphen/underscore split follows Python's package-naming
convention — Python imports cannot contain hyphens.
Future auth providers should be added through the shared registry and account guide, not by creating a new standalone runner shape.
Run commands from the repository root.
deterministic-replaypublic-smokepersona-rotatingprivate-oauthprovider-matrixrelease-public-fullupgrade-canary
auth-smokeauth-fullauth-channelsauth-live-seededauth-browser-consent
Run the public live smoke lane:
LANE=public-smoke scripts/live-canary/run.shRun the provider matrix lane:
LANE=provider-matrix \
PROVIDER=openai-compatible \
PROVIDER_TEST_TARGET=e2e_live_mission \
SCENARIO=mission_daily_news_digest_with_followup \
scripts/live-canary/run.shRun the auth smoke lane:
LANE=auth-smoke scripts/live-canary/run.shRun the seeded auth live lane:
LANE=auth-live-seeded scripts/live-canary/run.shRun the browser-consent auth lane:
LANE=auth-browser-consent scripts/live-canary/run.shRun selected auth provider cases:
LANE=auth-live-seeded CASES=gmail,github scripts/live-canary/run.sh
LANE=auth-browser-consent CASES=google,notion scripts/live-canary/run.sh
# Browser cases: google, notion only. github is PAT-only (not OAuth) so
# it lives in auth-live-seeded instead — see scripts/live_canary/auth_registry.py.Use CI-style browser installation for auth browser lanes:
LANE=auth-browser-consent PLAYWRIGHT_INSTALL=with-deps scripts/live-canary/run.shReuse an existing build and Python environment:
LANE=auth-smoke SKIP_BUILD=1 SKIP_PYTHON_BOOTSTRAP=1 scripts/live-canary/run.shRun an upgrade canary:
LANE=upgrade-canary \
PREVIOUS_REF=v0.1.2 \
CURRENT_REF=HEAD \
scripts/live-canary/run.shArtifacts are written under:
artifacts/live-canary/<lane>/<provider>/<timestamp>/
Public live LLM lane secrets and variables are documented in docs/internal/live-canary.md.
Seeded auth live-provider credentials:
GitHub Actions uses .github/workflows/live-canary.yml as the single scheduled
and manual entrypoint. That workflow now contains both the upstream live LLM
jobs and the auth-specific canary jobs.