Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
20 commits
Select commit Hold shift + click to select a range
4dca890
Speed up site testing selection and CI Production UI shards.
cursoragent Aug 7, 2026
ffdff21
Record PR #1686 testing-speed review in the branch ledger.
cursoragent Aug 7, 2026
ce95ca9
merge(main): sync PR #1686 with origin/main
cursoragent Aug 7, 2026
71b57ea
docs: refresh scripts inventory after main sync (PR #1686)
cursoragent Aug 7, 2026
51b4332
merge(main): sync PR #1686 with origin/main
BigSimmo Aug 7, 2026
91bac89
fix(docs): keep #167/#255 archive rows inside the resolved table
BigSimmo Aug 7, 2026
47c1d64
docs(ledger): record PR #1686 Autopilot unblock at 91bac898
BigSimmo Aug 7, 2026
ee58563
merge(main): sync PR #1686 with origin/main; fix typecheck regressions
claude Aug 7, 2026
5fa8d46
Merge branch 'main' into cursor/site-testing-speed-08c1
BigSimmo Aug 8, 2026
4624424
merge(main): sync PR #1686 with origin/main
cursoragent Aug 8, 2026
632958d
merge(main): sync PR #1686 with origin/main
cursoragent Aug 8, 2026
11e3572
fix(ci): include document-rail phone-scroll spec in PR shard 1
cursoragent Aug 8, 2026
e3a46c2
merge(main): sync #1686 before merge
cursoragent Aug 8, 2026
418630f
Merge origin/main into cursor/site-testing-speed-08c1
cursoragent Aug 8, 2026
d3d8978
docs: refresh scripts-index inventory counts after main sync
cursoragent Aug 8, 2026
c27ff29
Merge origin/main into cursor/site-testing-speed-08c1
cursoragent Aug 8, 2026
07b516f
fix(ci): harden Playwright revision parse and phone-chrome cleanup
cursoragent Aug 8, 2026
6c8a359
fix(ci): pass projectRoot into phone-chrome build-root cleanup
cursoragent Aug 8, 2026
7ce7059
Merge origin/main into cursor/site-testing-speed-08c1
cursoragent Aug 9, 2026
a5cce76
merge origin/main into cursor/site-testing-speed-08c1 (pr merge seque…
cursoragent Aug 9, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
36 changes: 10 additions & 26 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -555,31 +555,15 @@ jobs:
# report as `cancelled` and re-create exactly the ambiguity #095 removed.
fail-fast: false
matrix:
# THREE, and the count is measured rather than chosen. `fullyParallel: false`
# makes a spec file the indivisible unit, so shard sizes are lumpy and more
# shards is not monotonically faster. Re-measured 2026-07-30 against this
# merged tree — 342 non-quarantine/non-mockup chromium tests
# (`--list --shard=i/N`):
# N=3 -> 121/111/110 largest 121 (35%)
# N=4 -> 121/106/98/17 largest 121 (35%) — same bound, one more runner
# Earlier on a 340-test tree, N=5 -> 121/106/0/96/17 and N=8 gave two empty
# shards. N=4 buys nothing over N=3 because one 121-test spec group bounds
# both, and any N with an empty shard would go RED: `test:e2e:pr`
# deliberately omits `--pass-with-no-tests` (only the advisory lane has it).
# Re-measure before changing this number, and keep every shard non-empty:
# npm run ensure
# PLAYWRIGHT_BASE_URL=<printed> npx playwright test --project=chromium \
# --grep-invert "@quarantine|@mockup" --shard=i/N --list
#
# MEASURED on the first real sharded run (CI 30530618838, 2026-07-30):
# shard 1 -> 121 tests, 9m36
# shard 2 -> 111 tests, 6m54
# shard 3 -> 110 tests, 6m20
# Per-test cost is NOT uniform — 111 tests took 6m54 while 121 took 9m36 —
# so counting tests UNDERSTATES the largest shard. A count-balanced split is
# the best `--shard` can do; balancing by duration would mean splitting the
# slow spec files themselves. Predicting from test count alone was wrong by
# ~40% here, so trust a measured run over the arithmetic.
# THREE explicit duration-aware file groups (scripts/playwright-pr-shards.mjs),
# not Playwright `--shard=i/N`. Count-balanced `--shard` packed the slow
# phone-scroll family into one runner (measured 9m36 vs 6m54/6m20 on
# CI 30530618838). Explicit groups mix slow-per-test specs with faster
# mega-specs. `tests/playwright-pr-shards.test.ts` fails closed if any
# production e2e:pr file is missing, duplicated, or leaves a shard empty.
# Re-measure wall time after suite growth before reshuffling membership:
# node scripts/playwright-pr-shards.mjs --list
# node scripts/playwright-pr-shards.mjs --validate
shard: [1, 2, 3]
steps:
- name: Checkout
Expand Down Expand Up @@ -607,7 +591,7 @@ jobs:
env:
PLAYWRIGHT_BUILD_ROOT_ID: ci-production
PLAYWRIGHT_KEEP_BUILD_ROOT: "true"
run: npm run test:e2e:pr -- --shard=${{ matrix.shard }}/3
run: npm run test:e2e:pr:shard -- --shard ${{ matrix.shard }}

- name: Classify exact failed test identities
if: failure()
Expand Down
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -1061,7 +1061,7 @@ Durable notes for Cloud Agents. Standard commands live in `README.md` and `packa
- Live-mode caveat: `RAG_PROVIDER_MODE=auto` attempts OpenAI (fast → strong route); if generation fails the built-in quality gates it silently degrades to a deterministic "Source-only" answer that still cites real documents — this is expected, not a failure. The header sign-in UI exposes magic-link + OAuth only (no password field), but the `/api/answer` + retrieval flow works server-side without a browser session.
- What still won't run in this VM even with secrets: `npm run worker` also needs the Python OCR stack (`worker/python/requirements.txt`) and heavy parsing deps; Supabase edge functions need Deno v2.x + deployment. `verify:release` additionally runs governance/eval gates. Treat missing-secret failures of `check:supabase-project`/`verify:release` in demo mode as expected, not regressions.
- Dev server: `npm run dev` selects a stable per-project localhost port (e.g. `4461`), binds `0.0.0.0`, and prints the exact URL. Never assume port 3000/3001/3002. `npm run ensure` starts/verifies it in the background.
- Verification without secrets: `npm run lint`, `npm run typecheck`, and `npm run test` (vitest) all pass offline. `npm run verify:cheap` also runs runtime, GitHub Actions pin, CI-scope, and sitemap checks. `npm run verify:pr-local` adds format, conditional build/client-bundle scanning, and RAG fixture/manifest validation without repeating unit tests; browser, Docker/Supabase, audit, and provider checks remain separate. See `docs/testing.md` for lock, live-test, Playwright, and flake-ledger rules.
- Verification without secrets: `npm run lint`, `npm run typecheck`, and `npm run test` (vitest) all pass offline. `npm run verify:cheap` also runs runtime, GitHub Actions pin, CI-scope, and sitemap checks. `npm run verify:pr-local` adds format, conditional build/client-bundle scanning, and RAG fixture/manifest validation without repeating unit tests; browser, Docker/Supabase, audit, and provider checks remain separate. See `docs/testing.md` for lock, live-test, Playwright, and flake-ledger rules. If `check:installed-lock-parity` or `check:playwright-browser-revision` reports Playwright/image drift (`#255`), do not force a mismatched Chromium path — delegate browser proof to CI Production UI (see `docs/testing.md` § Testing speed playbook).
- For GitHub-related work authorised in this session, prefer the connected GitHub
connector/MCP tools first for PR, issue, comment, review-thread, and Actions tasks they
support (including run/job/log/artifact inspection and review-thread replies/resolution).
Expand Down
Loading
Loading