Skip to content

test(runtime): stabilize proxied body deadline coverage - #3224

Merged
Astro-Han merged 2 commits into
apache:mainfrom
me2seeks:fix/runtime-body-deadline-test-flake
Aug 19, 2026
Merged

test(runtime): stabilize proxied body deadline coverage#3224
Astro-Han merged 2 commits into
apache:mainfrom
me2seeks:fix/runtime-body-deadline-test-flake

Conversation

@me2seeks

@me2seeks me2seeks commented Aug 18, 2026

Copy link
Copy Markdown
Contributor

Summary

The default production proxiedFetch body-deadline test uses one timeout for both response setup and the intentionally stalled body read. At 50 ms, loaded runners can expire before response headers arrive, so the test fails at fetchForConnectionEffect() instead of exercising the body-read deadline it is meant to cover.

On current main, the unchanged test passed only 13/20 isolated runs; the #2684 worktree passed 16/20, confirming this is a baseline timing flake rather than a shell-selection regression.

This raises only the default production proxiedFetch test budget to 250 ms. The explicitly constructed direct-transport body-deadline test remains at 50 ms, preserving its tighter coverage.

The test does not install an active proxy: with the module default of proxy = null, this production wrapper reaches the response through direct Undici.

Verification

  • focused default proxiedFetch regression: 50/50 consecutive passes
  • npm --workspace @maka/runtime test — 2877 total / 2871 pass / 0 fail / 6 skip
  • npx biome check packages/runtime/src/network/__tests__/scoped-fetch-transport.test.ts
  • git diff --check
  • simplify-audit: no P0-P3 candidates; the two timeout values intentionally cover different setup boundaries

AI disclosure: Codex implemented and verified this test stabilization under me2seeks's direction and review.

@coderabbitai

coderabbitai Bot commented Aug 18, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@me2seeks, you've reached your PR review limit, so we couldn't start this review.

Next review available in: 59 minutes

Limit details: You’ve used all 3 included reviews currently available.

Enable usage-based reviews in Billing to review now. Otherwise, wait until the next included review is available.
You're only billed for reviews past your plan's rate limits ($0.25/file).

How can I continue?

After more reviews become available, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

To avoid repeated limits, reduce automatic review volume by pausing incremental auto-reviews earlier, using label-based review opt-in, excluding WIP or generated PR titles, or requesting reviews manually when the PR is ready. If your team needs uninterrupted high-volume reviews, an organization admin can enable usage-based reviews.

How do review limits work?

CodeRabbit enforces per-developer PR review limits within each organization.

For paid Pro and Pro+ reviews, CodeRabbit uses a developer's included PR review attempts over the past 7 days to set the current hourly allowance. At typical activity levels, the full plan allowance applies. Higher sustained activity can lower the allowance until earlier attempts leave the 7-day window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 63c43137-a5ab-421a-b391-0fcb7d7b4af3

📥 Commits

Reviewing files that changed from the base of the PR and between 62556ab and f1a503f.

📒 Files selected for processing (1)
  • packages/runtime/src/network/__tests__/scoped-fetch-transport.test.ts

Comment @coderabbitai help to get the list of available commands.

@qodo-code-review

Copy link
Copy Markdown

PR Summary by Qodo

Stabilize proxied response body deadline test

🧪 Tests 🐞 Bug fix 🕐 Less than 5 minutes

Grey Divider

AI Description

• Raises the production-proxy deadline to accommodate response setup on loaded runners.
• Preserves the direct-transport budget and stalled-body timeout assertion.
Diagram

sequenceDiagram
  actor Test as Test Case
  participant Proxy as Production Proxy
  participant Server as Local Server
  participant Body as Response Body
  participant Deadline as Deadline Timer
  Test->>Proxy: Fetch with 250 ms
  Proxy->>Deadline: Arm deadline
  Proxy->>Server: Request models
  Server-->>Proxy: Headers and partial body
  Proxy-->>Test: Return response
  Test->>Body: Read JSON
  Deadline-->>Body: Expire stalled read
  Body-->>Test: Throw timeout error
Loading
High-Level Assessment

The targeted timeout increase is appropriate because it preserves real production-proxy coverage while separating runner setup variability from the stalled-body assertion. Keeping the direct-transport case at 50 ms maintains tighter coverage; introducing mocked proxy synchronization or broader timeout changes would reduce realism or unnecessarily weaken other tests.

Files changed (1) +3 / -1

Tests (1) +3 / -1
scoped-fetch-transport.test.tsIncrease the production-proxy body deadline test budget +3/-1

Increase the production-proxy body deadline test budget

• Raises only the production-proxy timeout from 50 ms to 250 ms so loaded runners can complete proxy and response setup. Adds comments clarifying that the test still verifies deadline enforcement during a stalled body read.

packages/runtime/src/network/tests/scoped-fetch-transport.test.ts

@qodo-code-review

Copy link
Copy Markdown

Code Review by Qodo

🐞 Bugs (0) 📘 Rule violations (0) 📎 Requirement gaps (0)

Grey Divider

Great, no issues found!

Qodo reviewed your code and found no material issues that require review

Grey Divider

Tip of the day
💡 Did you know, you can keep summaries lean with Finding overflow, which tucks the rest behind 'View more'

More tips ↗ | Customize Qodo ↗ | Qodo docs ↗

Grey Divider

Qodo Logo

@Astro-Han Astro-Han left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved at exact head a6233cd18dce3ed91ec2eab00a6d015c2cf82f1c. Raising only the default production-fetch-path budget preserves the tighter injected-transport assertion while still checking that the outer deadline remains active during a stalled body read. No P0–P2 findings. I left one non-blocking P3 clarification because no active proxy is installed in this test.

AI-assisted review: Codex coordinated two independent reviewer passes and an OpenCode Go DeepSeek V4 Flash high-effort adversarial pass. I verified the exact diff and traced fetchForConnectionEffect(undefined, ...) through proxiedFetch and active-proxy resolution. No local tests were run in this review; current CI was still completing when reviewed.

中文审查

已审查精确 head a6233cd18dce3ed91ec2eab00a6d015c2cf82f1c。仅放宽默认生产 fetch 路径的预算,同时保留注入 transport 的 50ms 紧约束,仍能验证外层 deadline 在 body 卡住时持续生效。未发现 P0–P2;留了一条不阻塞的 P3 表述建议,因为测试没有安装 active proxy。

本次为 AI 辅助审查:Codex 协调两轮独立 reviewer 审查及 OpenCode Go DeepSeek V4 Flash high 对抗性复核,并追踪了 fetchForConnectionEffect(undefined, ...)proxiedFetch 和 active-proxy resolution。本轮未运行本地测试;审查时当前 CI 尚未全部结束。

Comment thread packages/runtime/src/network/__tests__/scoped-fetch-transport.test.ts Outdated

@Astro-Han Astro-Han left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Approved. The only change since the previously approved head is a comment clarifying that the test exercises the default production proxiedFetch path. The 250 ms budget preserves the discriminating behavior: headers must arrive before the deadline, the body remains deliberately incomplete, and readJson must still fail with the specific timeout classification. No production code or assertion strength changed.

Current head is clean against main and all required checks are green. AI-assisted review by Codex with one independent reviewer and OpenCode Go DeepSeek V4 Flash (high); I verified the exact delta, production wrapper path, deadline ownership, and live CI.

中文

批准。相对上次已批准 head,唯一新增改动只是注释澄清该测试覆盖默认生产 proxiedFetch 路径。250 ms 仍保持测试判别力:headers 必须在 deadline 前到达,body 故意不完成,readJson 仍必须以明确的 timeout 分类失败。生产代码和断言强度都没有变化。

当前 head 与 main 干净合并,必需检查全绿。本次由 Codex、一个独立 reviewer 和 OpenCode Go DeepSeek V4 Flash high 辅助;已核对精确 delta、生产 wrapper、deadline ownership 和实时 CI。

@Astro-Han
Astro-Han merged commit dc65776 into apache:main Aug 19, 2026
19 checks passed
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.

2 participants