Skip to content

ci: shard slow cross-platform test lanes - #51

Open
OnlineChef wants to merge 8 commits into
devfrom
ci/shard-windows-root-tests
Open

ci: shard slow cross-platform test lanes#51
OnlineChef wants to merge 8 commits into
devfrom
ci/shard-windows-root-tests

Conversation

@OnlineChef

@OnlineChef OnlineChef commented Aug 2, 2026

Copy link
Copy Markdown

Problem

The combined provider-security and admission suites now exceed the existing 20-minute serial job boundary on slow runners:

  • macOS completes the root suite, then is cancelled during GUI tests;
  • Windows is cancelled during the serial root suite;
  • Linux remains fully green.

These are timeout cancellations, not test failures. The workflow explicitly says not to raise the ceiling again when Windows approaches it.

Change

Keep timeout-minutes: 20 and split work instead:

  • Linux remains one full root + quality lane.
  • macOS separates root tests from GUI/privacy/lint/build/CLI quality work.
  • Windows root tests are deterministically balanced over two shards.
  • Windows GUI/privacy/lint/build/CLI work runs in a separate quality lane.
  • Existing macos-latest and windows-latest check names remain attached to root-test lanes.
  • The Windows Bun-runtime-crash retry remains limited to the failing shard and still does not retry assertion failures.

scripts/ci-test-shard.ts discovers Bun test files, balances them greedily by source size, sorts deterministically, and executes bounded batches to avoid Windows command-line limits.

Gates

  • actionlint/workflow syntax green
  • all root shards cover the complete test-file set exactly once
  • cross-platform CI finishes within the existing 20-minute boundary
  • independent workflow/security review

This PR changes CI orchestration only; it does not alter product/runtime code.


View with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need. Autofix is enabled.

Summary by CodeRabbit

  • Tests

    • Improved cross-platform test coverage across macOS and Windows.
    • Added balanced test sharding for more efficient test execution.
    • Added targeted retry handling for Windows runtime crashes.
    • Strengthened validation of test discovery and shard assignments.
  • Quality Checks

    • Standardized type checking, linting, builds, privacy scans, release validation, GUI tests, and CLI smoke tests across CI environments.
    • Improved dependency setup and failure reporting in continuous integration.

Greptile Summary

This change separates slow-platform quality work from root-test work and runs the Windows root suite through two deterministic shards. Focused execution confirmed that the current shard selections cover all 459 discovered root tests exactly once, but the repository has no automated check to preserve that property. Merge should wait for a regression test that prevents future shard changes from skipping or duplicating Windows test execution.

Confidence Score: 4/5

Not merge-safe until Windows shard coverage is protected by an automated invariant.

The current two-shard execution is complete and duplicate-free, but a future change to discovery, normalization, batching, or assignment can silently omit or repeat tests because no regression test enforces the required coverage property.

Files Needing Attention: scripts/ci-test-shard.ts needs an importable or otherwise testable shard-selection surface, with a focused test aligned to the two-shard Windows workflow.

T-Rex T-Rex Logs

What T-Rex did

  • T-Rex introduced sharding code and Windows workflow context to enable shard testing.
  • T-Rex focused two-shard partition execution to validate the new shard logic.
  • T-Rex performed a repository test coverage search before adding the shard invariant to assess existing tests.
  • T-Rex posted a P2 finding and produced a proof referencing the review comment with the finding details.
  • T-Rex validated the shard invariant by comparing before and after logs and by capturing the CI review-context details.

View all artifacts

T-Rex Ran code and verified through T-Rex

Comments Outside Diff (1)

  1. General comment

    P2 Add a regression test for complete, unique Windows shard coverage

    • Bug
      • The new CI sharding behavior has no automated repository invariant proving that the two windows-latest assignments jointly invoke Bun on every root test discovered by the script exactly once. The current focused execution passes (459 discovered; 229 + 230 assigned; zero missing and duplicates), but that behavior is unprotected against future changes to discovery, path normalization, batching, or partitioning.
    • Cause
      • collectTestFiles and assignBalancedShards are private functions in a standalone executable script, and the repository contains no test or harness that runs both configured shard indices and compares their union against discovery/Bun invocation inputs.
    • Fix
      • Add a focused Bun test for scripts/ci-test-shard.ts (or extract its discovery/partition logic into an importable module) that builds/uses representative root tests, runs shard indices 0 and 1, captures the explicit bun test --isolate path arguments, and asserts union equals discovery with no duplicates. Keep the assertion aligned with the CI matrix shard count of two.

    T-Rex Ran code and verified through T-Rex

Fix All in Cursor Fix All in Codex Fix All in Claude Code Fix All in Conductor

Prompt To Fix All With AI
### Issue 1
scripts/ci-test-shard.ts:21-27
**Windows shard coverage has no regression invariant**

The Windows workflow now depends on this separate collector and partitioner, but the repository has no automated check that the configured two shard invocations cover every discovered root test exactly once. The current partition happens to be complete, but a later change to discovery, path normalization, batching, or assignment can silently skip or duplicate tests only on Windows. Extract the selection logic into something testable, or add a focused harness, and assert that the union of both configured shards equals the discovered test set with no duplicates.

---

For each issue above, determine whether it is valid and should be fixed. If so, fix it directly.

Reviews (1): Last reviewed commit: "ci: shard slow cross-platform test lanes" | Re-trigger Greptile

Greptile also left 1 inline comment on this PR.

@qodo-code-review

Copy link
Copy Markdown

ⓘ Qodo reviews are paused because your trial has ended. Ask your workspace admin to add credits to resume reviews. Manage billing

@github-actions github-actions Bot added the chore label Aug 2, 2026
@coderabbitai

coderabbitai Bot commented Aug 2, 2026

Copy link
Copy Markdown

Review Change Stack

Warning

Review limit reached

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

Next review available in: 57 minutes

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 for each organization. Most developers receive the normal plan review availability.

For paid Pro and Pro+ PR reviews, CodeRabbit uses adaptive limits for sustained high-volume activity. When a developer's recent PR review activity reaches the 95th percentile or higher among CodeRabbit users, additional reviews become available more gradually as earlier reviews age out of the rolling window.

Please refer docs for additional details.

Review details
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 25655959-622a-40f6-a3ee-829ad60a92dc

📥 Commits

Reviewing files that changed from the base of the PR and between 3831bb1 and f37076c.

📒 Files selected for processing (1)
  • tests/ci-test-shard.test.ts
📝 Walkthrough

Walkthrough

The pull request adds deterministic Bun test sharding and integrates it with a cross-platform CI matrix. Windows tests use two shards and retry only qualifying Bun runtime crashes. Quality and typecheck steps follow matrix controls.

Changes

Cross-platform CI test sharding

Layer / File(s) Summary
Deterministic test shard runner
scripts/ci-test-shard.ts, tests/ci-test-shard.test.ts
The script discovers test files, validates shard arguments, balances files by size, runs batches of 80 with bun test --isolate, propagates failures, and cleans up. Tests verify coverage, validation, and deterministic assignment.
Matrix-based CI integration
.github/workflows/ci.yml, tests/ci-workflows.test.ts
The workflow adds platform-specific test, quality, typecheck, and shard controls. Windows runs two shards and retries only detected Bun runtime crashes. Dependency installation and quality checks run conditionally. Workflow tests verify the canonical test entry points.

Estimated code review effort: 3 (Moderate) | ~20 minutes

Sequence Diagram(s)

sequenceDiagram
  participant Matrix as GitHub Actions matrix
  participant Runner as CI runner
  participant ShardRunner as ci-test-shard.ts
  participant BunTest as Bun test
  participant Quality as Quality checks
  Matrix->>Runner: select OS, shard, and control flags
  Runner->>ShardRunner: run configured test shard
  ShardRunner->>BunTest: execute selected files in batches
  BunTest-->>ShardRunner: return process status
  ShardRunner-->>Runner: propagate test result
  Runner->>Quality: run conditional checks
Loading

Possibly related PRs

Suggested reviewers: ingwannu, lidge-jun, wibias

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: sharding slow cross-platform CI test lanes.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ci/shard-windows-root-tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

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

Copy link
Copy Markdown
Author

yone_suke (@codesmith) independently review exact head b2532d954a57d9090e5ebc75ed99a079b54783fb as a security-sensitive workflow change. Execute the shard helper against the repository test tree and prove:

  • every Bun-discoverable root test file is selected exactly once across two shards;
  • assignment is deterministic and reasonably balanced;
  • no test file is silently omitted by the filename matcher;
  • ordinary assertion failures remain fatal;
  • only the known Windows Bun has crashed signature retries;
  • existing ubuntu-latest, macos-latest, and windows-latest status names remain meaningful;
  • quality steps still run once per platform;
  • no permissions, secrets, mutable actions, or timeout ceilings are weakened.

Fix or report every P1/P2 blocker rather than only summarizing.

@blacksmith-sh

blacksmith-sh Bot commented Aug 2, 2026

Copy link
Copy Markdown

Got it, I'm reviewing the PR security diff first.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@scripts/ci-test-shard.ts`:
- Around line 60-70: Update runBatch in scripts/ci-test-shard.ts (lines 60-70)
to invoke the canonical scripts/test.ts orchestration, including its isolated
environment and process.execPath handling, before running Bun tests; do not
spawn bun directly with process.env. Also update the single-shard workflow path
in .github/workflows/ci.yml (lines 131-136) to use the same canonical test entry
point.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 2bccace1-3ad5-4e98-b80a-0dfac88bc3c2

📥 Commits

Reviewing files that changed from the base of the PR and between 0d9013f and b2532d9.

📒 Files selected for processing (2)
  • .github/workflows/ci.yml
  • scripts/ci-test-shard.ts

Comment thread scripts/ci-test-shard.ts Outdated

Copy link
Copy Markdown
Author

[code]smith (@codesmith-bot) final exact-head audit for 3838d9059737848f1f43075ea0f68991a7ac95ea after your isolation fix. Execute both shard indices and verify the union equals the complete discovered test set with no duplicates; confirm the two source-byte totals are balanced, each nonzero exit remains fatal, cleanup occurs after every outcome, and only the workflow wrapper—not the shard helper—performs the narrowly matched Windows Bun-crash retry. Report any remaining P1/P2 blocker.

Comment thread scripts/ci-test-shard.ts
@blacksmith-sh

blacksmith-sh Bot commented Aug 2, 2026

Copy link
Copy Markdown

OnlineChef

yone_suke (@codesmith) independently review exact head b2532d954a57d9090e5ebc75ed99a079b54783fb as a security-sensitive workflow change. Execute the shard helper against the repository test tree and prove:

  • ev...

Independent security review of b2532d9, executed against the real test tree, with every claim below proven by running the actual helper, Bun 1.3.14's actual scanner, and the exact workflow retry script.

Blockers found at b2532d9 (both P1, both since fixed on the branch by autofix while I reviewed; I verified the fixes rather than duplicating them):

  1. gui/tests discovery leak broke the unsharded lanes. The unsharded path ran bun test --isolate tests, where tests is a path substring filter. Against a name-mirror of the repo tree, Bun's scanner resolves that to 543 files: 459 under tests/ plus 84 under gui/tests/. At b2532d9 the macos-latest lane (run_quality: false, no gui/node_modules) would execute those 84 GUI files with unresolvable imports and fail deterministically, while the Windows shards silently dropped them relative to Linux/macOS. Fixed by 3838d90: routing through scripts/test.ts (bun test --isolate ./tests/) yields exactly the 459 root files, byte-identical to the shard union, and also restores the isolated-HOME semantics of bun run test (plus process.execPath spawning instead of PATH-resolved bun, which removes a PATH-hijack nit).
  2. The workflow-hardening regression test was not updated. tests/ci-workflows.test.ts pins ci.yml content and still required the literal bun test --isolate tests, so all four root lanes failed on 804c90f. Fixed by ddd1d02, which pins both canonical entry points and adds a negative pin against bare bun test; I ran the full hardening + shard-invariant files at that head: 72 pass, 0 fail.

Proven invariants (helper executed for real, shard args captured via spawn interception):

  • Exactly-once coverage: shards 0+1 are disjoint (0 overlap) and their union equals Bun's discovered tests/ set exactly (459 at b2532d9, 460 at current head including the new invariant test). Helpers/fixtures excluded by both matchers; the TEST_FILE regex is a strict superset of Bun's {.,_}{test,spec}.{ext} patterns, so no Bun-discoverable file can be silently omitted; no symlinks under tests/.
  • Deterministic and balanced: identical assignment across repeated runs; 230/230 files, 0.005% byte skew. Cross-job consistency holds because both Windows shards checkout the same commit on the same OS.
  • Failure semantics: ran the helper against a tree with a failing test: exit 1, output surfaced. Ran the exact ci.yml retry wrapper verbatim with stubbed suites: plain assertion failure exits 1 with zero retries; only output containing Bun has crashed triggers exactly one retry (crash-then-pass exits 0, crash-always exits 134). Non-Windows lanes never enter the retry path.
  • Status names and coverage: ubuntu-latest, macos-latest, windows-latest check names are preserved and stay attached to root tests + per-platform typecheck; GUI tests, privacy scan, release-helper syntax, GUI lint/build, and CLI smoke each run exactly once per platform via the quality lanes.
  • No weakening: permissions: contents: read unchanged, no secrets introduced, all actions remain pinned to the same full SHAs (still regex-enforced by the hardening test), timeout-minutes: 20/8 unchanged and count-pinned, shard inputs are workflow literals passed as quoted env vars, fail-fast: false and concurrency settings untouched. bun x tsc --noEmit green at head.

Advisories (P3, no action taken): (a) when required checks get configured per MAINTAINERS.md, the three new lane names (macos-quality, windows-quality, windows-latest shard 2/2) must be added or their failures won't block merges; (b) a green windows-latest/macos-latest now attests to less than before (root tests + typecheck only), which the PR body discloses; (c) Bun 1.3.14 has native bun test --shard=i/n, but the custom helper is justified by size-balancing, isolated HOME, and Windows arg-length batching, and is now itself pinned by tests/ci-test-shard.test.ts.

CI for the current head ddd1d02 is in progress; autofix remains enabled and will iterate on any remaining failures.

View with [code]smith

@blacksmith-sh

blacksmith-sh Bot commented Aug 2, 2026

Copy link
Copy Markdown

OnlineChef

[code]smith (@codesmith-bot) final exact-head audit for 3838d9059737848f1f43075ea0f68991a7ac95ea after your isolation fix. Execute both shard indices and verify the union equals the complete discovered test set w...

Audit of exact head 3838d90 complete. All requested invariants were proven by execution; one P1 that existed at that head has since been fixed on the branch by autofix (4117dad), so nothing remains for me to push.

Executed proofs at 3838d90:

  • Union / no duplicates: Ran the helper for both shard indices with Bun.spawn intercepted to capture exactly what each shard executes: shard 1/2 selects 229 files, shard 2/2 selects 230, overlap 0, union is 459 unique paths and diffs empty against Bun's own discovered root-test set (obtained from Bun 1.3.14's real scanner). No file is silently omitted or double-run.
  • Balance: 2,791,512 vs 2,791,995 source bytes (0.009% skew), 229/230 files.
  • Nonzero exits stay fatal: With a batch forced to exit 7, the driver exits 7 and never starts batch 2 (short-circuit). Invalid shardIndex/missing args exit 1. Real execution confirmed it too: both shards ran genuine bun test children and each stopped after its first failing batch with exit 1.
  • Cleanup after every outcome: The isolated HOME temp dirs (opencodex-test-*) were passed to every child and zero remained after success, forced batch failure, and real failing runs; cleanup sits in finally, and the arg-validation errors occur before the env is created. (Only a hard SIGKILL/job-timeout skips it, which lands in the runner's ephemeral tmpdir.)
  • Retry locality: scripts/ci-test-shard.ts and scripts/test.ts contain no retry or crash-signature logic at all; the sole retry is the workflow wrapper, reachable only on windows-latest, gated on grep -q 'Bun has crashed', and limited to one rerun. Harness runs of the verbatim wrapper: assertion failure exits 1 with zero retries; crash-then-pass exits 0 after exactly one retry; persistent crash exits 134.

Blockers at 3838d90 (both already fixed on the branch, verified, no action needed):

  1. P1, fixed in ddd1d02: tests/ci-workflows.test.ts still pinned the removed bun test --isolate tests literal; my real shard 2 run reproduced the failure exactly. The fix pins both canonical entry points plus a negative pin; I ran the updated hardening + shard-invariant suites at that commit: 72 pass.
  2. P1, fixed in 4117dad: at 3838d90, macos-latest and both Windows shard lanes skip GUI dependency install, but at least 10 root tests/ suites import from ../gui (e.g. tests/gui-api-error.test.ts, tests/dashboard-uptime.test.ts) and resolve react from gui/node_modules. Those lanes would fail once a shard reached such a file. 4117dad installs GUI deps when run_tests (still --frozen-lockfile; no permission, secret, action-pin, or timeout change).

Two sandbox-only artifacts from my real runs are not defects: tests/cli-help.test.ts failures caused by the CLI's Docker detection firing inside my containerized sandbox (GitHub runners are VMs; confirmed via /.dockerenv).

CI for the current head 4117dad is in progress and autofix remains enabled on #51.

View with [code]smith

OnlineChef and others added 6 commits August 2, 2026 21:47
Co-authored-by: Codesmith <codesmith-bot@users.noreply.github.com>
Co-authored-by: Codesmith <codesmith-bot@users.noreply.github.com>
Co-authored-by: Codesmith <codesmith-bot@users.noreply.github.com>
Co-authored-by: Codesmith <codesmith-bot@users.noreply.github.com>
@cursor
cursor Bot force-pushed the ci/shard-windows-root-tests branch from 4117dad to 1994a6f Compare August 2, 2026 21:47
@cursor

cursor Bot commented Aug 2, 2026

Copy link
Copy Markdown

Pickup status (cloud agent): Rebased onto current dev (76b40374). Greptile P2 thread resolved — shard coverage regression test already landed in tests/ci-test-shard.test.ts.

Merge readiness: CI was green pre-rebase; awaiting post-rebase CI + security sign-off on workflow changes (AGENTS.md). Recommend merge first in the open train — unblocks Windows ~13m timeout pressure on #52/#53.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@scripts/ci-test-shard.ts`:
- Around line 36-40: Add focused regression tests in tests/ci-test-shard.test.ts
covering parseInteger and main validation: missing or non-integer CLI arguments,
shardCount below 1, and shardIndex outside the valid range. Reuse the existing
test patterns and verify each invalid configuration is rejected with the
expected validation error, without changing collectTestFiles or
assignBalancedShards coverage.
- Around line 62-73: Update the path arguments assembled for runBatch in
scripts/ci-test-shard.ts so every selected test file is prefixed with ./ before
being passed to Bun.spawn, ensuring Bun treats each argument as an exact path
rather than a substring filter. Preserve the existing batching and spawn command
structure.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 8f071ff4-8c15-4771-b299-8078c4a4dbe6

📥 Commits

Reviewing files that changed from the base of the PR and between b2532d9 and 1994a6f.

📒 Files selected for processing (4)
  • .github/workflows/ci.yml
  • scripts/ci-test-shard.ts
  • tests/ci-test-shard.test.ts
  • tests/ci-workflows.test.ts

Comment thread scripts/ci-test-shard.ts Outdated
Comment thread scripts/ci-test-shard.ts
Co-authored-by: Codesmith <codesmith-bot@users.noreply.github.com>

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Actionable comments posted: 1

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
tests/ci-test-shard.test.ts (1)

37-49: 📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Assert source-byte balancing.

tests/ci-test-shard.test.ts Lines 37-49 only prove that assignment is deterministic. A deterministic implementation can still assign files to highly uneven shards.

Assert the byte totals for this fixture. The 500, 300, 300, 100 fixture should produce two shards with 600 source bytes each.

Proposed test update
-    const fromOrdered = assignBalancedShards(files, 2).map(shard => shard.map(file => file.path));
+    const orderedShards = assignBalancedShards(files, 2);
+    const fromOrdered = orderedShards.map(shard => shard.map(file => file.path));
     const fromShuffled = assignBalancedShards(shuffled, 2).map(shard => shard.map(file => file.path));
     expect(fromShuffled).toEqual(fromOrdered);
+    expect(
+      orderedShards.map(shard => shard.reduce((total, file) => total + file.bytes, 0)),
+    ).toEqual([600, 600]);
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@tests/ci-test-shard.test.ts` around lines 37 - 49, Extend the test named
“assignment is deterministic regardless of discovery order” to also calculate
each returned shard’s total source bytes from the fixture and assert that the
two totals are 600 each. Keep the existing determinism assertion, and use the
results from assignBalancedShards for the byte-balance check.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@tests/ci-test-shard.test.ts`:
- Around line 59-61: Extend the parameterized test for parseInteger in
“parseInteger rejects non-integer value” with a whitespace-only string, ensuring
the value.trim() === "" validation branch is exercised and still throws the
shardCount integer error.

---

Outside diff comments:
In `@tests/ci-test-shard.test.ts`:
- Around line 37-49: Extend the test named “assignment is deterministic
regardless of discovery order” to also calculate each returned shard’s total
source bytes from the fixture and assert that the two totals are 600 each. Keep
the existing determinism assertion, and use the results from
assignBalancedShards for the byte-balance check.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: bab2b617-7e7b-4ad4-baf4-fcc4fa42058f

📥 Commits

Reviewing files that changed from the base of the PR and between 1994a6f and 3831bb1.

📒 Files selected for processing (2)
  • scripts/ci-test-shard.ts
  • tests/ci-test-shard.test.ts

Comment thread tests/ci-test-shard.test.ts Outdated
Co-authored-by: Codesmith <codesmith-bot@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant