S02 Runtime Proof
S02 Runtime Proof
- Generated at: 2026-06-30T12:02:42.944Z
- Started at: 2026-06-30T11:58:58.888Z
- Finished at: 2026-06-30T12:02:42.944Z
- Overall status: PASS
- Root verifier:
node tools/scripts/verify-root-runtime.mjs - Root package script:
pnpm verify:root-runtime
Contract#
This artifact is the durable evidence surface for the root runtime proof. The verifier only uses declared repo-root operator surfaces and fails by phase so future agents can tell whether drift is in docs, infra, backend build, or representative app proof.
Declared proof commands#
node tools/scripts/verify-root-guidance.mjsmise run psmise run healthpnpm backend:buildE2E_WEB_SERVER=prod pnpm exec playwright test --config e2e/www/playwright.config.ts e2e/www/tests/navigation-funnel.spec.ts
Representative app proof path#
- Surface: Focused www production Playwright funnel proof using the checked-in e2e/www config and its E2E_WEB_SERVER=prod path.
- Playwright config:
e2e/www/playwright.config.ts - Test file:
e2e/www/tests/navigation-funnel.spec.ts - Command:
E2E_WEB_SERVER=prod pnpm exec playwright test --config e2e/www/playwright.config.ts e2e/www/tests/navigation-funnel.spec.ts
Known exclusions and constraints#
- The verifier is intentionally serial and narrow; it does not run the full e2e matrix.
- The representative app proof covers the www production-style boot surface only, not every app in the workspace.
- A pre-existing process already bound to port 3040 is treated as an app-proof failure because Playwright must be able to start the declared prod webServer itself.
- Missing GitHub changelog credentials are tolerated during www static export because the build logs already degrade that surface explicitly.
Phase Results#
Phase Details#
Root guidance contract#
- Phase outcome: pass
- Command:
node tools/scripts/verify-root-guidance.mjs - Exit code: 0
- Duration: 0.1s
stdout (tail)#
1verify-root-guidance: PASS2Checked 76 assertions across root guidance and source-of-truth files.stderr (tail)#
1_no output captured_Dev infra container status#
- Phase outcome: pass
- Command:
mise run ps - Exit code: 0
- Duration: 0.7s
stdout (tail)#
1CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES24fd758567372 docker.io/library/postgres:16-alpine postgres 7 days ago Up 6 hours (healthy) 0.0.0.0:3048->5432/tcp assistance-dev_postgres_136033d58edbca docker.io/getmeili/meilisearch:v1.12 /bin/sh -c /bin/m... 7 days ago Up 6 hours (healthy) 0.0.0.0:3049->7700/tcp assistance-dev_meilisearch_14bca84aa34135 docker.io/axllent/mailpit:latest 7 days ago Up 6 hours (healthy) 0.0.0.0:3061->1025/tcp, 0.0.0.0:3062->8025/tcp, 1110/tcp assistance-dev_mailpit_15b2f733afb185 docker.io/prom/prometheus:v2.53.0 --config.file=/et... 7 days ago Up 6 hours (healthy) 0.0.0.0:3069->9090/tcp assistance-dev_prometheus_16a4efcffb9eb0 docker.io/supabase/gotrue:v2.143.0 auth 7 days ago Up 6 hours (healthy) 0.0.0.0:3060->9999/tcp assistance-dev_auth_17f87fe155db12 docker.io/grafana/grafana:11.1.0 7 days ago Up 6 hours (healthy) 0.0.0.0:3070->3000/tcp assistance-dev_grafana_1stderr (tail)#
1[ps] $ sudo podman-compose --project-name assistance-dev -f podman-compose.dev.…Dev infra health checks#
- Phase outcome: pass
- Command:
mise run health - Exit code: 0
- Duration: 6.3s
stdout (tail)#
1Checking dev services...2 ✓ Postgres (localhost:3048, container:healthy)3 ✓ Meilisearch (localhost:3049, container:healthy)4 ✓ Auth (localhost:3060, container:healthy)5 ✓ Mailpit (localhost:3062, container:healthy)6 ✓ Prometheus (localhost:3069, container:healthy)7 ✓ Grafana (localhost:3070, container:healthy)stderr (tail)#
1[health] $ echo "Checking dev services..."Backend production build surface#
- Phase outcome: pass
- Command:
pnpm backend:build - Exit code: 0
- Duration: 15.2s
stdout (tail)#
1> assistance@0.0.1 backend:build /home/vchavkov/src/assistance2> cd backend && make build-all34Building academy-api...5Building academy-seed...6Building auth-api...7Building billing-api...8Building saas-api...stderr (tail)#
1_no output captured_Representative www prod proof#
- Phase outcome: pass
- Command:
E2E_WEB_SERVER=prod pnpm exec playwright test --config e2e/www/playwright.config.ts e2e/www/tests/navigation-funnel.spec.ts - Exit code: 0
- Duration: 201.7s
stdout (tail)#
1Running 3 tests using 3 workers23[1A[2K[1/3] [chromium] › e2e/www/tests/navigation-funnel.spec.ts:11:7 › Marketing funnel navigation › service page loads correctly4[1A[2K[2/3] [chromium] › e2e/www/tests/navigation-funnel.spec.ts:18:7 › Marketing funnel navigation › pricing page loads correctly5[1A[2K[3/3] [chromium] › e2e/www/tests/navigation-funnel.spec.ts:5:7 › Marketing funnel navigation › homepage loads with hero section678910[1A[2K 3 passed (3.3m)stderr (tail)#
1[1A[2K[2m[WebServer] [22m[31m✘ [41;31m[[41;97mERROR[41;31m][0m [1mkj::getCaughtExceptionAsKj() = kj/async-io-unix.c++:186: disconnected: ::write(fd, buffer.begin(), buffer.size()): Broken pipe[0m2[2m[WebServer] [22m3[2m[WebServer] [22m stack: /home/vchavkov/src/assistance/node_modules/.pnpm/@cloudflare+workerd-linux-64@1.20260611.1/node_modules/@cloudflare/workerd-linux-64/bin/workerd@528e871 /home/vchavkov/src/assistance/node_modules/.pnpm/@cloudflare+workerd-linux-64@1.20260611.1/node_modules/@cloudflare/workerd-linux-64/bin/workerd@528f521 /home/vchavkov/src/assistance/node_modules/.pnpm/@cloudflare+workerd-linux-64@1.20260611.1/node_modules/@cloudflare/workerd-linux-64/bin/workerd@373660f /home/vchavkov/src/assistance/node_modules/.pnpm/@cloudflare+workerd-linux-64@1.20260611.1/node_modules/@cloudflare/workerd-linux-64/bin/workerd@3736855 /home/vchavkov/src/assistance/node_modules/.pnpm/@cloudflare+workerd-linux-64@1.20260611.1/node_modules/@cloudflare/workerd-linux-64/bin/workerd@5251df8 /home/vchavkov/src/assistance/node_modules/.pnpm/@cloudflare+workerd-linux-64@1.20260611.1/node_modules/@cloudflare/workerd-linux-64/bin/workerd@378ed93 /home/vchavkov/src/assistance/node_modules/.pnpm/@cloudflare+workerd-linux-64@1.20260611.1/node_modules/@cloudflare/workerd-linux-64/bin/workerd@37928e7 /home/vchavkov/src/assistance/node_modules/.pnpm/@cloudflare+workerd-linux-64@1.20260611.1/node_modules/@cloudflare/workerd-linux-64/bin/workerd@3792c78 /home/vchavkov/src/assistance/node_modules/.pnpm/@cloudflare+workerd-linux-64@1.20260611.1/node_modules/@cloudflare/workerd-linux-64/bin/workerd@2e2e720 /home/vchavkov/src/assistance/node_modules/.pnpm/@cloudflare+workerd-linux-64@1.20260611.1/node_modules/@cloudflare/workerd-linux-64/bin/workerd@20114c74[2m[WebServer] [22m5[2m[WebServer] [22m6[1A[2K[2m[WebServer] [22m[31m✘ [41;31m[[41;97mERROR[41;31m][0m [1mkj::getCaughtExceptionAsKj() = kj/async-io-unix.c++:186: disconnected: ::write(fd, buffer.begin(), buffer.size()): Broken pipe[0m7[2m[WebServer] [22m8[2m[WebServer] [22m stack: /home/vchavkov/src/assistance/node_modules/.pnpm/@cloudflare+workerd-linux-64@1.20260611.1/node_modules/@cloudflare/workerd-linux-64/bin/workerd@528e871 /home/vchavkov/src/assistance/node_modules/.pnpm/@cloudflare+workerd-linux-64@1.20260611.1/node_modules/@cloudflare/workerd-linux-64/bin/workerd@528f521 /home/vchavkov/src/assistance/node_modules/.pnpm/@cloudflare+workerd-linux-64@1.20260611.1/node_modules/@cloudflare/workerd-linux-64/bin/workerd@373660f /home/vchavkov/src/assistance/node_modules/.pnpm/@cloudflare+workerd-linux-64@1.20260611.1/node_modules/@cloudflare/workerd-linux-64/bin/workerd@3736855 /home/vchavkov/src/assistance/node_modules/.pnpm/@cloudflare+workerd-linux-64@1.20260611.1/node_modules/@cloudflare/workerd-linux-64/bin/workerd@5251df8 /home/vchavkov/src/assistance/node_modules/.pnpm/@cloudflare+workerd-linux-64@1.20260611.1/node_modules/@cloudflare/workerd-linux-64/bin/workerd@378ed93 /home/vchavkov/src/assistance/node_modules/.pnpm/@cloudflare+workerd-linux-64@1.20260611.1/node_modules/@cloudflare/workerd-linux-64/bin/workerd@37928e7 /home/vchavkov/src/assistance/node_modules/.pnpm/@cloudflare+workerd-linux-64@1.20260611.1/node_modules/@cloudflare/workerd-linux-64/bin/workerd@3792c78 /home/vchavkov/src/assistance/node_modules/.pnpm/@cloudflare+workerd-linux-64@1.20260611.1/node_modules/@cloudflare/workerd-linux-64/bin/workerd@2e2e720 /home/vchavkov/src/assistance/node_modules/.pnpm/@cloudflare+workerd-linux-64@1.20260611.1/node_modules/@cloudflare/workerd-linux-64/bin/workerd@20114c79[2m[WebServer] [22m10[2m[WebServer] [22m11[1A[2K[2m[WebServer] [22m[31m✘ [41;31m[[41;97mERROR[41;31m][0m [1mkj::getCaughtExceptionAsKj() = kj/async-io-unix.c++:186: disconnected: ::write(fd, buffer.begin(), buffer.size()): Broken pipe[0m12[2m[WebServer] [22m13[2m[WebServer] [22m stack: /home/vchavkov/src/assistance/node_modules/.pnpm/@cloudflare+workerd-linux-64@1.20260611.1/node_modules/@cloudflare/workerd-linux-64/bin/workerd@528e871 /home/vchavkov/src/assistance/node_modules/.pnpm/@cloudflare+workerd-linux-64@1.20260611.1/node_modules/@cloudflare/workerd-linux-64/bin/workerd@528f521 /home/vchavkov/src/assistance/node_modules/.pnpm/@cloudflare+workerd-linux-64@1.20260611.1/node_modules/@cloudflare/workerd-linux-64/bin/workerd@373660f /home/vchavkov/src/assistance/node_modules/.pnpm/@cloudflare+workerd-linux-64@1.20260611.1/node_modules/@cloudflare/workerd-linux-64/bin/workerd@3736855 /home/vchavkov/src/assistance/node_modules/.pnpm/@cloudflare+workerd-linux-64@1.20260611.1/node_modules/@cloudflare/workerd-linux-64/bin/workerd@5251df8 /home/vchavkov/src/assistance/node_modules/.pnpm/@cloudflare+workerd-linux-64@1.20260611.1/node_modules/@cloudflare/workerd-linux-64/bin/workerd@378ed93 /home/vchavkov/src/assistance/node_modules/.pnpm/@cloudflare+workerd-linux-64@1.20260611.1/node_modules/@cloudflare/workerd-linux-64/bin/workerd@37928e7 /home/vchavkov/src/assistance/node_modules/.pnpm/@cloudflare+workerd-linux-64@1.20260611.1/node_modules/@cloudflare/workerd-linux-64/bin/workerd@3792c78 /home/vchavkov/src/assistance/node_modules/.pnpm/@cloudflare+workerd-linux-64@1.20260611.1/node_modules/@cloudflare/workerd-linux-64/bin/workerd@2e2e720 /home/vchavkov/src/assistance/node_modules/.pnpm/@cloudflare+workerd-linux-64@1.20260611.1/node_modules/@cloudflare/workerd-linux-64/bin/workerd@20114c714[2m[WebServer] [22m15[2m[WebServer] [22m16[1A[2K[2m[WebServer] [22m[31m✘ [41;31m[[41;97mERROR[41;31m][0m [1mkj::getCaughtExceptionAsKj() = kj/async-io-unix.c++:186: disconnected: ::write(fd, buffer.begin(), buffer.size()): Broken pipe[0m17[2m[WebServer] [22m18[2m[WebServer] [22m stack: /home/vchavkov/src/assistance/node_modules/.pnpm/@cloudflare+workerd-linux-64@1.20260611.1/node_modules/@cloudflare/workerd-linux-64/bin/workerd@528e871 /home/vchavkov/src/assistance/node_modules/.pnpm/@cloudflare+workerd-linux-64@1.20260611.1/node_modules/@cloudflare/workerd-linux-64/bin/workerd@528f521 /home/vchavkov/src/assistance/node_modules/.pnpm/@cloudflare+workerd-linux-64@1.20260611.1/node_modules/@cloudflare/workerd-linux-64/bin/workerd@373660f /home/vchavkov/src/assistance/node_modules/.pnpm/@cloudflare+workerd-linux-64@1.20260611.1/node_modules/@cloudflare/workerd-linux-64/bin/workerd@3736855 /home/vchavkov/src/assistance/node_modules/.pnpm/@cloudflare+workerd-linux-64@1.20260611.1/node_modules/@cloudflare/workerd-linux-64/bin/workerd@5251df8 /home/vchavkov/src/assistance/node_modules/.pnpm/@cloudflare+workerd-linux-64@1.20260611.1/node_modules/@cloudflare/workerd-linux-64/bin/workerd@378ed93 /home/vchavkov/src/assistance/node_modules/.pnpm/@cloudflare+workerd-linux-64@1.20260611.1/node_modules/@cloudflare/workerd-linux-64/bin/workerd@37928e7 /home/vchavkov/src/assistance/node_modules/.pnpm/@cloudflare+workerd-linux-64@1.20260611.1/node_modules/@cloudflare/workerd-linux-64/bin/workerd@3792c78 /home/vchavkov/src/assistance/node_modules/.pnpm/@cloudflare+workerd-linux-64@1.20260611.1/node_modules/@cloudflare/workerd-linux-64/bin/workerd@2e2e720 /home/vchavkov/src/assistance/node_modules/.pnpm/@cloudflare+workerd-linux-64@1.20260611.1/node_modules/@cloudflare/workerd-linux-64/bin/workerd@20114c719[2m[WebServer] [22m20[2m[WebServer] [22mPrevious Artifact State#
A prior artifact existed and was replaced with fresh evidence from this run.