- PWA (§16): hand-rolled 60-line service worker (network-first pages with offline fallback, cache-first hashed statics, /api NEVER touched — SSE and approvals stay live), app manifest with §2 identity, stdlib- generated coral claw icons, prod-only registration. E2E asserts manifest, real PNG icons, an ACTIVATED service worker, and the /api bypass. (Serwist was tried and dropped: its webpack plugin fights Next 16's Turbopack builds; sixty lines we own beat a plugin we fight.) - Route motion (§3): (workspace) template re-mounts per navigation with a quiet fade-rise, zeroed under prefers-reduced-motion. The a11y sweep now settles running animations before scanning — axe was reading mid-fade opacity as contrast failures - OAuth browser flow vs REAL dex: the e2e harness boots dexidp/dex with static client + password; the journey drives the actual dex login form from /api/apps/oauth/start through the callback 303 and asserts the app reads connected (closing the P4 deferral honestly) - release.yml: tag-triggered — builds all four images + postgres, saves tarballs, assembles the SIGNED air-gapped bundle (compose, config, migrations, seccomp profile, installer, bundler binary), derives the public key via the new Could not find command "pubkey". subcommand (tested), verifies the bundle customer-style with the public half only, attaches tarball + public key to the GitHub release 153 Rust + 63 frontend tests + 29 Playwright journeys. Co-Authored-By: Claude Fable 5 <[email protected]>
29 lines
654 B
TOML
29 lines
654 B
TOML
# Configuration for the local/CI end-to-end harness. The server runs with
|
|
# TEAMCLAW_MODE=e2e, which applies the deterministic seed at boot.
|
|
|
|
deploy_target = "air_gapped"
|
|
listen_addr = "127.0.0.1:8080"
|
|
|
|
[database]
|
|
url = "postgres://postgres:[email protected]:54330/teamclaw_e2e"
|
|
|
|
[llm]
|
|
provider = "scripted"
|
|
model = "scripted-e2e"
|
|
scenario_path = "deploy/e2e/scenarios.toml"
|
|
|
|
[auth]
|
|
mode = "local"
|
|
|
|
[broker]
|
|
socket_path = "/tmp/teamclaw-e2e-broker.sock"
|
|
|
|
[slack]
|
|
base_url = "http://127.0.0.1:8080/__slack"
|
|
|
|
[oauth]
|
|
issuer_url = "http://127.0.0.1:54556/dex"
|
|
client_id = "teamclaw"
|
|
client_secret = "tc-e2e-oauth-secret"
|
|
redirect_base = "http://127.0.0.1:8080"
|