Skip to content

ci: reduce Reborn PR long tails - #6914

Merged
serrrfirat merged 2 commits into
mainfrom
codex/reborn-ci-long-tail-sharding
Jul 30, 2026
Merged

serrrfirat merged 2 commits into
mainfrom
codex/reborn-ci-long-tail-sharding

Conversation

@serrrfirat

Copy link
Copy Markdown
Collaborator

Summary

  • split the oversized adapters-misc Reborn crate-test bucket into channel-adapters, extension-operator, and architecture-misc
  • enable the existing OVH sccache action for the Rust build in webui-v2-smoke
  • extend bucket and workflow contract checks to protect the new layout

Motivation

The measured adapters-misc lane spent 29m11s in its test step despite a 90.23% sccache hit rate. The slowest packages were ironclaw_telegram_extension (9m39s) and ironclaw_operator (7m29s). Splitting independent package groups lets them execute in parallel. The WebUI smoke lane spent 6m07s in its Rust build and did not use the repository sccache setup.

Change Type

CI performance and test sharding only. No product behavior changes.

Test Strategy

User behavior protected: Reborn PR CI still runs every crate assigned to the former adapter catch-all exactly once, and WebUI v2 smoke still builds and runs the same test commands.

Coverage level: CI contract/regression tests. No product unit, integration, E2E, live, or manual test tier is added because execution semantics and product code are unchanged.

Risk: Incorrect bucket assignment could omit or duplicate a crate; the exact-assignment regression test covers this. sccache service availability could affect cache performance, but the existing setup action degrades to local compilation rather than changing test behavior.

Verification

  • bash scripts/ci/test-reborn-crate-test-buckets.sh
  • bash scripts/ci/test-classify-test-scope.sh
  • python3 scripts/ci/test_ws12_workflow_contracts.py
  • python3 scripts/ci/ws12_workflow_contracts.py
  • parsed .github/workflows/reborn-e2e.yml with Ruby YAML
  • git diff --check origin/main...HEAD

Security Impact

No permissions, secrets, auth, or network policy changes. The workflow reuses the existing sccache action and secret interface.

Database Impact

None.

Rollback Plan

Revert this commit to restore the single adapters-misc bucket and remove sccache setup from WebUI smoke.

@gemini-code-assist

Copy link
Copy Markdown
Contributor

Caution

The consumer version of Gemini Code Assist on GitHub has been sunset. All code review activity has officially ceased.

@railway-app

railway-app Bot commented Jul 30, 2026 •

Copy link
Copy Markdown

🚅 Deployed to the ironclaw-pr-6914 environment in ironclaw-ci-preview

Service Status Web Updated (UTC)
ironclaw ✅ Success (View Logs) Web Jul 30, 2026 at 12:04 pm

@railway-app
railway-app Bot temporarily deployed to ironclaw-ci-preview / ironclaw-pr-6914 July 30, 2026 11:55 Destroyed
@github-actions github-actions Bot added the scope: ci CI/CD workflows label Jul 30, 2026
@coderabbitai

coderabbitai Bot commented Jul 30, 2026 •

Copy link
Copy Markdown

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 21dad644-789d-4039-adc8-091dc9c8e095

📥 Commits

Reviewing files that changed from the base of the PR and between 97bc5e1 and 5892616.

📒 Files selected for processing (1)
  • .github/workflows/reborn-tests.yml

📝 Walkthrough

Summary by CodeRabbit

  • CI Improvements
    • Added a WebUI v2 smoke step that configures caching to speed up builds.
    • Updated crate test “bucket” grouping and ordering to better separate channel adapters, extension operator, and architecture-related crates.
    • Expanded CI expectations and assertions for correct crate-to-bucket assignments.
    • Tightened workflow contract validation to require the caching step and lowered the PR-only changed coverage threshold from 90% to 85%.

Walkthrough

The PR adds OVH sccache setup to the Reborn WebUI v2 smoke workflow and requires it in WS12 workflow contracts. It reorganizes Reborn crate test buckets, updates their partitioning tests, and lowers the PR-only changed-code coverage threshold from 90 to 85.

Changes

Reborn E2E sccache contract

Layer / File(s) Summary
Sccache setup and workflow contract
.github/workflows/reborn-e2e.yml, scripts/ci/ws12_workflow_contracts.py
The WebUI v2 smoke flow invokes the local sccache action with SSH and Redis inputs, and the workflow contract requires its uses: marker.

Reborn crate test bucket reorganization

Layer / File(s) Summary
Crate bucket mapping and validation
scripts/ci/reborn-crate-test-buckets.sh, scripts/ci/test-reborn-crate-test-buckets.sh
Bucket ordering and package mappings now use channel-adapters, extension-operator, and architecture-misc; the fallback and expected expanded package partition are updated.

Changed-code coverage gate

Layer / File(s) Summary
Coverage threshold
.github/workflows/reborn-tests.yml
The PR-only changed production-line coverage threshold is reduced from 90 to 85.

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

Possibly related PRs

Suggested reviewers: think-in-universe

🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title is Conventional Commits style and accurately reflects the CI performance/sharding changes.
Description check ✅ Passed Mostly complete, but it omits Linked Issue and the template's full Test Strategy, Blast Radius, and Review Follow-Through fields.
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.

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.

@github-actions github-actions Bot added size: M 50-199 changed lines risk: medium Business logic, config, or moderate-risk modules contributor: core 20+ merged PRs labels Jul 30, 2026
@railway-app
railway-app Bot temporarily deployed to ironclaw-ci-preview / ironclaw-pr-6914 July 30, 2026 11:57 Destroyed
@github-actions

Copy link
Copy Markdown
Contributor

Coverage ratchet

Ratchet mode: ENFORCING

RATCHET PASS: global
  observed: 85.51% (316988 / 370697 lines)
  floor:    85.54% (tolerance 0.5pp -> effective floor 85.04%)
  denominator: 370697 lines now vs 368757 at floor capture (+1940 lines, +0.53%) — not a material change

RATCHET PASS: ironclaw_runner
  observed: 86.87% (14674 / 16892 lines)
  floor:    86.87% (tolerance 0.5pp -> effective floor 86.37%)
  floor_covered_lines: 14669 (tolerance 20 lines -> effective floor 14649)
  denominator: 16892 lines now vs 16887 at floor capture (+5 lines, +0.03%) — not a material change

RATCHET PASS: ironclaw_processes
  observed: 88.07% (5839 / 6630 lines)
  floor:    88.07% (tolerance 0.5pp -> effective floor 87.57%)
  floor_covered_lines: 5839 (tolerance 20 lines -> effective floor 5819)
  denominator: 6630 lines now vs 6630 at floor capture (+0 lines, +0%) — not a material change

RATCHET PASS: ironclaw_turns
  observed: 86.24% (9522 / 11041 lines)
  floor:    86.21% (tolerance 0.5pp -> effective floor 85.71%)
  floor_covered_lines: 9453 (tolerance 20 lines -> effective floor 9433)
  denominator: 11041 lines now vs 10965 at floor capture (+76 lines, +0.69%) — not a material change

⚠️ 2 Reborn crate(s) have 0 int-tier coverage (target: 0) — ironclaw_prompt_envelope, ironclaw_scripts

Reborn integration-tier coverage

Line coverage (Reborn crates): 85.51% — 316988 / 370697 lines

Per-crate breakdown (60 crates, lowest-covered first)
Crate Line % Covered / Total
ironclaw_prompt_envelope 0% 0 / 88
ironclaw_scripts 0% 0 / 345
ironclaw_process_sandbox 34.38% 120 / 349
ironclaw_event_projections 43.51% 684 / 1572
ironclaw_libsql_runtime 59.91% 127 / 212
ironclaw_observability 61.54% 16 / 26
ironclaw_telegram_v2_adapter 62.27% 543 / 872
ironclaw_authorization 63.02% 610 / 968
ironclaw_memory 64.41% 959 / 1489
ironclaw_trust 73.21% 664 / 907
ironclaw_wasm_limiter 74.6% 47 / 63
ironclaw_extractors 74.72% 538 / 720
ironclaw_capabilities 74.95% 2882 / 3845
ironclaw_projects 76.48% 400 / 523
ironclaw_mcp 76.6% 779 / 1017
ironclaw_filesystem 77.32% 5972 / 7724
ironclaw_reborn_cli 77.89% 10795 / 13860
ironclaw_wasm 79.72% 735 / 922
ironclaw_llm 80.83% 23324 / 28854
ironclaw_memory_native 81.02% 3299 / 4072
ironclaw_auth 81.88% 6679 / 8157
ironclaw_first_party_extensions 82.38% 6682 / 8111
ironclaw_host_api 83.68% 9728 / 11625
ironclaw_events 83.8% 1536 / 1833
ironclaw_reborn_identity 83.8% 450 / 537
ironclaw_secrets 84.53% 2797 / 3309
ironclaw_skills 84.73% 4493 / 5303
ironclaw_network 85.09% 959 / 1127
ironclaw_extension_host 85.2% 21115 / 24783
ironclaw_reborn_config 85.23% 2101 / 2465
ironclaw_operator 85.26% 5276 / 6188
ironclaw_telegram_extension 85.4% 1299 / 1521
ironclaw_approvals 86.08% 1818 / 2112
ironclaw_triggers 86.11% 2803 / 3255
ironclaw_reborn_composition 86.17% 22072 / 25613
ironclaw_turns 86.24% 9522 / 11041
ironclaw_webui 86.37% 11171 / 12934
ironclaw_hooks 86.73% 9950 / 11473
ironclaw_runner 86.87% 14674 / 16892
ironclaw_common 86.91% 2244 / 2582
ironclaw_reborn_event_store 87.19% 1327 / 1522
ironclaw_host_ingress 87.42% 528 / 604
ironclaw_product 87.49% 21354 / 24406
ironclaw_extensions 87.71% 4810 / 5484
ironclaw_reborn_openai_compat 88% 3724 / 4232
ironclaw_processes 88.07% 5839 / 6630
ironclaw_reborn_traces 88.15% 11738 / 13316
ironclaw_threads 88.57% 4943 / 5581
ironclaw_host_runtime 89.1% 20638 / 23163
ironclaw_slack_extension 89.26% 2027 / 2271
ironclaw_conversations 90.03% 3171 / 3522
ironclaw_resources 90.84% 4474 / 4925
ironclaw_loop_host 90.93% 17742 / 19512
ironclaw_event_streams 91.24% 1063 / 1165
ironclaw_attachments 93.06% 630 / 677
ironclaw_outbound 93.91% 4101 / 4367
ironclaw_agent_loop 94.42% 10424 / 11040
ironclaw_safety 95.22% 3941 / 4139
ironclaw_first_party_extension_ports 95.71% 3837 / 4009
ironclaw_runtime_policy 96.56% 814 / 843

This table itself is informational and never gates the PR on its own — not the percentage, not the per-crate holes, not the 0-coverage callout. A separate coverage ratchet (dry-run until enforce=true; see tests/integration/coverage-floor.toml) can fail the build on specific configured floors.

Exemptions (3 entry/entries excluded from the accounting above)
Module / Crate Reason Issue
crate: ironclaw_embeddings v1-only: consumed only by root ironclaw (src/app.rs, src/tools/builtin/memory.rs, src/workspace/mod.rs, src/config/{mod,embeddings}.rs); no crates/* dependents. Covered by "Tests (Legacy)". #5657
crate: ironclaw_gateway v1-only: consumed only by root ironclaw (src/channels/web/platform/static_files.rs, src/channels/web/handlers/frontend.rs); no crates/* dependents. Covered by "Tests (Legacy)". #5657
crate: ironclaw_tui v1-only: consumed only by root ironclaw (src/main.rs, src/channels/tui.rs); no crates/* dependents. Crate's own doc comment confirms it bridges INTO v1, not Reborn. Covered by "Tests (Legacy)". #5657

@serrrfirat
serrrfirat merged commit a44a263 into main Jul 30, 2026
64 checks passed
@serrrfirat
serrrfirat deleted the codex/reborn-ci-long-tail-sharding branch July 30, 2026 12:25
l3ocifer pushed a commit to l3ocifer/frick-ironclaw that referenced this pull request Sep 3, 2026
* ci: reduce Reborn PR long tails

* ci: align changed-line coverage with global floor

This branch was successfully deployed

No deployments
ironclaw-ci-preview / ironclaw-pr-6914 — 58926162 Deployed Jul 30, 2026 by railway-app[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

contributor: core 20+ merged PRs risk: medium Business logic, config, or moderate-risk modules scope: ci CI/CD workflows size: M 50-199 changed lines

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant