Skip to content

test: guardrail Review-queue specs on dedicated servers -- kills the cohabitation flake - #215

Merged
alicoding merged 2 commits into
mainfrom
guardrail-spec-isolation
Aug 18, 2026
Merged

test: guardrail Review-queue specs on dedicated servers -- kills the cohabitation flake#215
alicoding merged 2 commits into
mainfrom
guardrail-spec-isolation

Conversation

@alicoding

Copy link
Copy Markdown
Owner

guardrail.spec's Review-queue tests asserted queue/filter state on the SHARED worker server — contaminable by any cohabitant (mcp-write-cancel parks approvals there) AND order-dependent within its own file (the workflow-filter dropdown only lists workflows with review history, which came free from file order). Same class 0078 fixed for guardrail-authoring; same cure: per-test dedicated servers (split into guardrail.spec + guardrail-review.spec, disjoint port pairs), the filter test now seeds its own history, and connectMCPClient gained an explicit mcpPort param (defaults preserved).

13 relevant e2e green solo + combined + both worker modes. This unblocks #212/#213's shard-2 failures.

🤖 Generated with Claude Code

https://claude.ai/code/session_01FW5GkkAG8du7tNdYLk2zSd

guardrail.spec.ts ran on the shared per-worker server pool, so its
Review-queue assertions (exact pending/resolved rows, filter options,
the sidebar badge count) could be contaminated by another spec
cohabiting the same worker (mcp-write-cancel.spec.ts parking its own
MCP approval), producing CI-only failures that never reproduced
locally solo.

Converts every test to the dedicated-server-per-test pattern
guardrail-authoring.spec.ts already uses (own chromium.launch +
spawnMillServer per test, own port pair, mkdtemp dirs, finally-
stop+rm). The converted file crossed the 500-line limit, so the
Review-queue tests move to a new guardrail-review.spec.ts on its own
disjoint port pair. mcpTestClient.ts's connectMCPClient gains an
optional explicit port for specs that aren't on the standard
per-worker pool.

The filterable-by-workflow test's own dedicated server starts with no
run history at all, so it now also resolves a second workflow's
review item itself (the filter's option list only ever contains
workflows with an existing pending/resolved item) instead of relying
on another test's residual state, which no longer exists once each
test gets its own isolated server.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FW5GkkAG8du7tNdYLk2zSd
@alicoding
alicoding enabled auto-merge (squash) August 18, 2026 01:44
…t the 15m cap with zero failures

The recorded revisit trigger (testing.md) fired: pure cap-kills, no
red tests. Shard growth is the named lever.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01FW5GkkAG8du7tNdYLk2zSd
@alicoding
alicoding merged commit d379553 into main Aug 18, 2026
25 checks passed
@alicoding
alicoding deleted the guardrail-spec-isolation branch August 18, 2026 02:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant