Skip to content

test(server): bind HTTP fixtures to IPv4 loopback - #811

Draft
rynfar wants to merge 6 commits into
pylonfrom
fix/2026-09-24-http-test-loopback
Draft

rynfar wants to merge 6 commits into
pylonfrom
fix/2026-09-24-http-test-loopback

Conversation

@rynfar

@rynfar rynfar commented Sep 24, 2026 •

Copy link
Copy Markdown
Collaborator

NodeHttpServer.layerTest can bind a test server to IPv6 :: while its Fetch client requests 127.0.0.1. On macOS, another process can bind the same numeric port on IPv4, so a server seam test can receive that other listener's body. The full server.test.ts suite intermittently received ready or an unrelated 501 response; a same-process two-listener reproduction confirmed the address-family collision.

This test-only change binds server fixtures to 127.0.0.1, matching the client, across the server seam, analytics, and MCP HTTP tests. The regression reads the actual server address and verifies that a competing IPv4 bind fails with EADDRINUSE. It leaves production HTTP behavior unchanged and adds no retries or timing delays. The fixture is compatible with Effect rc.112 and rc.115 address types; on the reviewed open-PR integration stack, an additional provider-refresh seam test must use the same helper when those branches converge.

Prerequisite: #743 adds a provider-refresh seam test. This branch merges its exact reviewed head and switches that added test to the same loopback layer, so integration does not leave a dangling NodeHttpServer.layerTest reference. The PR still targets pylon; #743 must land before this dependent patch is merged.

Validation: 240 focused tests and t3 typecheck passed on the combined #743 + fix branch; scoped lint, format, and frozen install passed. Six bounded 201-test full-file runs passed after the initial change. An isolated rc.115 integration rehearsal passed 223 focused tests and t3 typecheck. Independent review passed on the final combined commit. This reduces a confirmed test-fixture collision; repeated passing tests alone do not establish that every intermittent failure is eliminated.

Tracks upstream catch-up issue #736 only as a test-isolation follow-up; no upstream source disposition or ledger cursor is changed.

@vercel

vercel Bot commented Sep 24, 2026

Copy link
Copy Markdown

Deployment failed for project pylon-marketing with the following error:

Resource is limited - try again in 24 hours (more than 100, code: "api-deployments-free-per-day").

Learn More: https://vercel.com/pylon-code?upgradeToPro=build-rate-limit

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:M labels Sep 24, 2026
@github-actions

Copy link
Copy Markdown
Contributor

Thread transfer impact

✅ Thread transfer remains within every enforced ceiling.

Provider Metric Main baseline This PR Impact PR ceiling
Codex Total thread wire 14.0 KiB 13.9 KiB −40 B (−0.3%) 15.1 KiB ✅
Codex Thread snapshot wire 7.2 KiB 7.2 KiB 0 B (0.0%) 7.3 KiB ✅
Codex Live turn WebSocket wire 6.8 KiB 6.7 KiB −40 B (−0.6%) 7.8 KiB ✅
Codex Live turn WebSocket decoded 58.0 KiB 58.0 KiB −44 B (−0.1%) 66.4 KiB ✅
Codex Live turn messages 10 9 −1 (−10.0%) 21 ✅
Claude Total thread wire 14.0 KiB 14.0 KiB −16 B (−0.1%) 15.1 KiB ✅
Claude Thread snapshot wire 7.2 KiB 7.2 KiB −8 B (−0.1%) 7.3 KiB ✅
Claude Live turn WebSocket wire 6.7 KiB 6.7 KiB −8 B (−0.1%) 7.8 KiB ✅
Claude Live turn WebSocket decoded 58.9 KiB 58.9 KiB −44 B (−0.1%) 66.4 KiB ✅
Claude Live turn messages 10 9 −1 (−10.0%) 21 ✅

Baseline: 7ed3f71 · PR result: cd2441f · Source CI: success

Scenario and decoded snapshot size

10 historical turns, 5 command tools per turn, 878.9 KiB retained MCP result per historical turn, and a 1.05 MiB retained result in the measured turn.

  • Codex decoded thread snapshot: 115.6 KiB
  • Claude decoded thread snapshot: 116.3 KiB

Updated in place by a trusted workflow. PR artifacts are strictly validated and never executed.

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:M vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant