Skip to content

ci: drop the duration exceptions of tests that stay under the limit - #1417

Closed
zibi-pplx wants to merge 1 commit into
zibi/sbx-mgr-store-sweep-casesfrom
zibi/test-budget-prune
Closed

zibi-pplx wants to merge 1 commit into
zibi/sbx-mgr-store-sweep-casesfrom
zibi/test-budget-prune

Conversation

@zibi-pplx

@zibi-pplx zibi-pplx commented Nov 4, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

This removes 170 of the 449 exceptions in ci/test-duration-budget.toml. The tests they covered already run under the 2 s limit, so from now on the limit applies to them like any other test. 279 exceptions remain.

#1408 listed every test that took over 1.33 s in any of 24 CI runs, so that an unlisted test kept a third of the limit as headroom. That threshold listed many tests that never come near 2 s:

Slowest run of a listed test Exceptions
under 1.6 s 113
1.6-1.8 s 58
1.8-2 s 31
over 2 s 247

This PR keeps listing tests from 1.8 s. It removes an exception when the test stayed under 1.8 s in every run that had it, which is at least 19 of 28 runs. Four of those runs came after #1408's list was made: the Rust tests jobs of #1407, #1408 and #1414. None of the 170 reached 2 s in them; the slowest took 1.73 s.

The budget's header now states the 1.8 s rule.

Stack

  1. #1407: shorten the Rust tests job's slowest tail.
  2. #1408: hold every Rust test to a 2-second budget.
  3. #1414: split the sbx-mgr-store state-write sweeps into per-state cases.
  4. This PR: drop the exceptions of tests that stay under the limit.

Validation

Severity and risk

Severity: does not apply; this is CI policy.

Risk: an unlisted test now has about 10% headroom under 2 s instead of 33%. A test that sometimes runs near 2 s on a loaded runner could fail the check. The four later runs show no such case among the 170. If one appears, the fix is to make the test faster; the header still forbids new exceptions. To roll back, revert this PR.

AI assistance: Claude Code drafted the change and this description.

🤖 Generated with Claude Code

Summary by CodeRabbit

  • Chores
    • Updated CI test-duration exception thresholds based on a later measurement window. Some exceptions were added or removed, while the global duration limit remains unchanged. These adjustments affect CI test-duration checks and do not change exported or public functionality.

ci/test-duration-budget.toml listed every test that took over 1.33 s in
any of 24 CI runs, so that an unlisted test kept a third of the limit as
headroom. 170 of the 449 never reached 1.8 s in any run that had them,
at least 19 of 28 runs. Four of those runs came after the list was
made, and none of the 170 reached 2 s in them; the slowest took 1.73 s.

This removes their exceptions, so they are held to the 2 s limit like
any other test, and lists a test from 1.8 s. Replaying the new budget
over the 28 runs fails only the five tests the earlier changes in this
stack make fast. 279 exceptions remain.
@coderabbitai

coderabbitai Bot commented Nov 4, 2026 •

Copy link
Copy Markdown

Review in Change Stack →

No actionable comments were generated in the recent review.

Walkthrough

The CI test-duration budget now documents a 1.8-second inclusion threshold and updated measurement criteria. Its exception table is revised across crates. The global limit_seconds remains 2.0.

Changes: Test duration budget

Layer / File(s) Summary
Update duration criteria and test exceptions
ci/test-duration-budget.toml
The documentation describes the later measurement window and inclusion criteria. The exception table adds and removes test entries, while retaining some existing ceilings. The global limit_seconds remains 2.0.

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Other

Possibly related PRs

  • perplexityai/SPACE#1408: Adds the duration-budget file and checker that define how the updated exception entries and ceilings are read.
  • perplexityai/SPACE#1414: Changes sbx-mgr-store tests and removes three related exception entries from the same budget file.
  • perplexityai/SPACE#1407: Changes slow tests whose timing is connected to exception removals in the budget file.
Merge Risk: Minimal · up to ea638

No concrete merge-blocking defect is identified in this duration-budget refresh.

Architecture risk: Low · up to ea638

The change affects 1 system.

Changed systems: ci

Architecture concerns
No architecture-level concerns identified.

Review details

Systems and components

  • observed — ci (service) was modified; 1 changed file maps to changed impact.

Before / after behavior

  • observed — Modified behavior in ci/test-duration-budget.toml: The documentation now describes the 1.8-second inclusion threshold, the later-run criteria, and the 170 tests excluded after staying below the threshold; it retains the rule to remove an exception when its test is faster and not raise ceilings. The exception list adds and removes tests across the CLI, API, and substrate crates, while retaining the listed ceilings shown in the new table.
  • observed — Modified behavior in ci/test-duration-budget.toml: The exception table adds limits for two public_operations tests, a public_sandbox_operations test, and an admin identity test. It removes exceptions for a public operation-driver test, an idempotent-create test, a sandbox-executor retry test, and an admin identity delete test.
  • observed — Modified behavior in ci/test-duration-budget.toml: The table adds exceptions for admin node, runtime-environment, sandbox-list, cross-organization sandbox, and template tests. It removes the prior drain-handler, node-status, runtime-environment write, sandbox-update/create, template-store, and release-tag test exceptions in this section.
  • observed — Modified behavior in ci/test-duration-budget.toml: The table adds exceptions for E2B connection and sandbox-list tests, public file and owner-scope tests, inline sandbox creation and wake tests, session-auth tests, architecture checks, build-manager and cluster-controller tests. It removes the prior E2B template-build and recovery cases, public credential-reference and file-key-binding cases, additional public-operation and session cases, architecture-check cases, build-manager cases, and cluster-controller cases shown in the old table.
Pre-merge checks: Passed 5
Check name Status Explanation
Title check Passed The title clearly and concisely describes the main change: removing duration exceptions for tests that remain under the configured limit.
Description check Passed The description includes the required Summary, Validation, and Severity and risk sections. It explains the change, validation results, risks, rollback, stack context, and AI assistance. The descriptio…
Docstring Coverage Passed No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentat…
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.
Full details: Description check

Explanation

The description includes the required Summary, Validation, and Severity and risk sections. It explains the change, validation results, risks, rollback, stack context, and AI assistance. The description is complete and directly related to the pull request.

Full details: Docstring Coverage

Explanation

No eligible functions found in the changed files. Skipping docstring coverage check. Docstring coverage is scoped to functions touched by this diff with cyclomatic complexity of at least 2. Documentation-only edits and deletions within surviving functions are included; unchanged diff context and fully deleted functions are excluded. Analyzed 0 functions across 0 files. (1 skipped: 1 unsupported.)

Finishing Touches
Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Recent review info
Run configuration
  • Source mode: Auto
  • Repository: Unavailable
  • Branch: Unavailable
  • File: No configuration file from this repository applied
  • Commit: Unavailable
  • Layers: defaults
  • Review profile: CHILL
  • Plan: Enterprise
  • Run ID: 46befbe9-35ff-4085-abaf-f5ba719dd573
Commits

Reviewing files that changed from the base of the PR and between 19a0c83 and ea638c1.

Files selected for processing: 1
  • ci/test-duration-budget.toml

Included review availability: This review used your included allowance. Your plan provides up to 12 included reviews per hour; 8 remain after this review.

@zibi-pplx

Copy link
Copy Markdown
Collaborator Author

Combined into #1426 with the rest of the test burn-down, so the stack is #1407, #1408 and #1426.

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