Skip to content

test(video): enforce retention fixture network isolation - #16634

Merged
diegosouzapw merged 11 commits into
release/v3.8.52from
test/video-retention-network-20261014
Oct 18, 2026
Merged

diegosouzapw merged 11 commits into
release/v3.8.52from
test/video-retention-network-20261014

Conversation

@diegosouzapw

@diegosouzapw diegosouzapw commented Oct 14, 2026 •

Copy link
Copy Markdown
Collaborator

Current checkpoint — 2026-10-16

Head: 0a73291c76c8986c270eb74f2538f22f8028f5e5; reconciled base: 8526008921e232eda3ede6bc67c2985f411a9831. Original two-file scope retained, including the strict exact127.0.0.1:fixture-port socket allowlist; no localhost/IPv6 broadening.

VPS .15 Node integration execution, 21:30:42–21:31:10 UTC: 14 tests PASS, zero failures/skips/cancellations. The run used the repository's Node polyfill/data-isolation preloads, Node24.20.0, matching installed lockfile, isolated data and clean source fingerprints.

This is focused integration evidence, not the complete candidate matrix. The PR remains draft pending current-base reconciliation and applicable required checks. No merge, live-provider call, or deployment occurred.

Historical description and previous evidence (not current-head acceptance)

Summary

Repair the network-isolation contract of the existing Video Bridge HTTP retention
matrix without accepting ECONNREFUSED as evidence of blocked egress.

  • Use the installed Undici HTTP client with its own MockAgent instead of assuming
    Node's built-in fetch shares the same dispatcher registry.
  • Independently deny sockets outside the fixture's exact loopback server.
  • Exercise both mock-dispatch denial and raw/native socket denial. Runtimes that
    already reject through MockAgent remain supported; a refused connection is not
    accepted as an isolation success.
  • Restore the native fetch/dispatcher/socket hooks and remove old import probes.

No production source or transport policy is changed. Related to #12150 / #12430.

Evidence

Tests run on the designated VPS, not the development machine. At base
e369ffc633131ef0b1ddbee9d2b40475e63c0808, the matrix reproduced 12 passing and
2 failing counted tests (one network subtest plus its parent). An isolated owned
loopback-server probe confirmed native fetch connected while installed Undici
fetch rejected, both before and after application imports and guard reinstall.

After correction: 14 passing tests, zero failures/skips, covering JSON/SSE,
Responses continuation, policy rejection, pending/log/artifact/Memory/cache
retention, and an ordinary-traffic positive control. Dependencies were borrowed
from an existing installation: this is scoped evidence, not clean-lock or full
release certification. Final exact-head rerun at clean
6559412f68a1eb2f69561840da1c47915087be9c confirms 14 PASS / 0 FAIL / 0 SKIP
and changed-file ESLint exit 0. HEAD stayed unchanged and clean after both.

Admission

⚠️ base-red inherited: #15306. Required hosted gates and current-base admission
are not waived. Draft until that review finishes; no admin merge requested.

@diegosouzapw

Copy link
Copy Markdown
Collaborator Author

Owner-authorized continuation, preserving the original worktree.

Updated this PR normally to a5619d26b2a256c8571a6872e3c57246a70fe20a, based on release eafe72ed415e6cdf9a98e628a38ef1f278830da6.

Two additional regression checks now prove raw sockets are blocked before application imports and remain blocked while application resources/logs are flushed. Both failed before their respective corrections. Cleanup restores global fetch, the dispatcher and socket hook in finally, after application cleanup.

Final scoped HTTP matrix: 14 PASS, 0 FAIL, 0 SKIP, 0 CANCELLED (68.7 s). Existing timeouts, assertions and outbound allowlist were not weakened. Prettier, changed-file ESLint and normal commit hooks passed; committed scope is only the existing test and a changelog fragment. Dependencies were borrowed with matching lock identity, so this is focused diagnostic evidence, not clean-install/full release certification.

The original worktree remains clean and unchanged at 6559412f68a1eb2f69561840da1c47915087be9c. No queue label, merge, deployment or admin bypass. Draft remains pending current-candidate required gates and the related #16635/i18n integration.

Preserve release ad37e8f behavior and the HTTP fixture network guard. Current focused matrix: 14/14 pass, zero skips or cancellations.
@diegosouzapw

Copy link
Copy Markdown
Collaborator Author

Relay continuation — scoped reconciliation, not merge acceptance

Thanks the retention test contributors. Reconciled this original PR with pinned release ad37e8f8f51eb2d505f88a3139e76912cf9598e2 and published bc94de3b9386da515ee30a8093c1c07ecca61918 through a normal fast-forward push. Original commits and contributor attribution are preserved.

14/14 actual HTTP retention matrix tests PASS, zero skipped/cancelled. Import-time and runtime network guards remain active.

Node 24.20.0 / npm 11.15.0; unchanged lockfile SHA-256 f2de65a4140bbe8f4f1ae78ea26e1ba06baa67850c297306d94e7b0793f7e3b4. Normal commit hooks ran. These are focused diagnostics, not the full current-candidate acceptance matrix. The release has advanced since the pinned comparison, and full mandatory checks must be refreshed before admission. No queue label, bypass, merge, closure or deployment was performed by this continuation.

@diegosouzapw
diegosouzapw marked this pull request as ready for review October 17, 2026 16:43
@diegosouzapw

Copy link
Copy Markdown
Collaborator Author

Exact-head checkpoint: 9b4d8a817c939898512d5ef0092d031bb518c495, incorporating pinned base 1591cd55e0c2b4195cb41ea9e1967d3eb8f56d5e and preserving original branch ancestry.

  • Review found and repaired one fixture-only IPC gap: Node can prioritize options.path over an otherwise allowed TCP host/port. The guard now rejects defined IPC paths before delegating.
  • TDD on VPS .15: cedb970df2 RED with the precise missing guard exception; 9b4d8a817c GREEN, 15/15 integration-matrix cases, no failures, skips or cancellations. The failing receipt is preserved.
  • Exact-head raw ESLint passed. The context-pinned profile passed 33 generator/parser/consumer tests, generated-artifact synchronization, changelog integrity and docs-all. Source stayed clean throughout.
  • Both independent static reviews (Standards and Spec) report no remaining findings in the repaired delta.

This is scoped test-harness evidence, not provider-real acceptance, a full release certificate or permission to bypass required CI/current-base admission. No paid video call, build or production mutation was performed. Marked ready for review; merge remains conditional on mandatory gates.

@github-actions

Copy link
Copy Markdown
Contributor

CI Coverage Report

  • Coverage job: skipped
  • PR test policy: success

Coverage artifact was not available for this run.

@diegosouzapw
diegosouzapw merged commit 90a28ff into release/v3.8.52 Oct 18, 2026
48 of 100 checks passed
@diegosouzapw
diegosouzapw deleted the test/video-retention-network-20261014 branch October 18, 2026 23: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