Skip to content

Let the browser suite run on a port range and database names of its own - #811

Merged
lavaman131 merged 1 commit into
mainfrom
e2e-port-range
Nov 10, 2026
Merged

lavaman131 merged 1 commit into
mainfrom
e2e-port-range

Conversation

@lavaman131

Copy link
Copy Markdown
Collaborator

The browser suite binds fixed ports (8788 to 8803, one of them the fake GitHub MCP server's 8797) and four specs drop and create databases with fixed names on the cluster of E2E_DATABASE_URL_3. On a machine that several runs share, that collides with whoever else uses those ports, and drops a database that belongs to another run.

e2e/ports.ts now passes every one of those ports through e2ePort, which returns the port as written unless E2E_PORT_BASE is set. With E2E_PORT_BASE=9950 the whole suite moves together, 8788 to 9950 up to 8803 to 9965, and the app servers, the baseURLs of the projects, the fake MCP server, the test databases' lookup by port and scripts/e2e.ts's migration origins all follow. e2eDatabaseName does the same for the six databases a spec creates for itself: with E2E_DATABASE_SUFFIX=aui, chopin_handover becomes chopin_handover_aui. With neither variable set every port and name is exactly what it was, so CI and a developer's own run are unchanged.

The scripted conversation-plan environment checks and scripts/conversation-plan-worker.ts keep their own fixed 8788 and 8797, since they belong to a different, opt-in project.

Assistant-model: Claude Sonnet 5.5
Assistant-workflow: goal (run 3e3b0e7b-a567-4eb0-9b31-1f73879488e4)
Assistant-verification: bun node_modules/.bin/tsgo --noEmit --skipLibCheck -p e2e passed with no errors; oxlint on e2e and scripts reported 0 errors and the warnings the parent has; dprint check passed for every changed file
Assistant-verification: CI=1 bun run e2e with E2E_SKIP_BUILD=1 E2E_PORT_BASE=9950 E2E_DATABASE_SUFFIX=aui, four fresh databases on chopin-stage1-pg 5442, GIT_CONFIG_COUNT=1 GIT_CONFIG_KEY_0=commit.gpgsign GIT_CONFIG_VALUE_0=false in that run's environment only, --retries=0 and the output redirected outside the checkout, on chat-pin, harness, message-delivery and auth-lifecycle (the plain, harness and local-auth servers, the fake MCP server, and a spec-owned server and database): 24 passed, no process listened on 8788 to 8803 or 9950 to 9965 afterwards
User-preference: Every Chat message has assistant-ui's message actions, copy first
Co-authored-by: Alex Lavaee lavaman131@github.com

The browser suite binds fixed ports (8788 to 8803, one of them the fake GitHub MCP server's 8797) and four specs drop and create databases with fixed names on the cluster of E2E_DATABASE_URL_3. On a machine that several runs share, that collides with whoever else uses those ports, and drops a database that belongs to another run.

e2e/ports.ts now passes every one of those ports through e2ePort, which returns the port as written unless E2E_PORT_BASE is set. With E2E_PORT_BASE=9950 the whole suite moves together, 8788 to 9950 up to 8803 to 9965, and the app servers, the baseURLs of the projects, the fake MCP server, the test databases' lookup by port and scripts/e2e.ts's migration origins all follow. e2eDatabaseName does the same for the six databases a spec creates for itself: with E2E_DATABASE_SUFFIX=aui, chopin_handover becomes chopin_handover_aui. With neither variable set every port and name is exactly what it was, so CI and a developer's own run are unchanged.

The scripted conversation-plan environment checks and scripts/conversation-plan-worker.ts keep their own fixed 8788 and 8797, since they belong to a different, opt-in project.

Assistant-model: Claude Sonnet 5.5
Assistant-workflow: goal (run 3e3b0e7b-a567-4eb0-9b31-1f73879488e4)
Assistant-verification: bun node_modules/.bin/tsgo --noEmit --skipLibCheck -p e2e passed with no errors; oxlint on e2e and scripts reported 0 errors and the warnings the parent has; dprint check passed for every changed file
Assistant-verification: CI=1 bun run e2e with E2E_SKIP_BUILD=1 E2E_PORT_BASE=9950 E2E_DATABASE_SUFFIX=aui, four fresh databases on chopin-stage1-pg 5442, GIT_CONFIG_COUNT=1 GIT_CONFIG_KEY_0=commit.gpgsign GIT_CONFIG_VALUE_0=false in that run's environment only, --retries=0 and the output redirected outside the checkout, on chat-pin, harness, message-delivery and auth-lifecycle (the plain, harness and local-auth servers, the fake MCP server, and a spec-owned server and database): 24 passed, no process listened on 8788 to 8803 or 9950 to 9965 afterwards
User-preference: Every Chat message has assistant-ui's message actions, copy first
Co-authored-by: Alex Lavaee <lavaman131@github.com>
@lavaman131
lavaman131 merged commit 808c55c into main Nov 10, 2026
24 checks passed
@lavaman131
lavaman131 deleted the e2e-port-range branch November 10, 2026 08:36
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