Skip to content

ci: restore the original 90% changed-line coverage floor - #7013

Merged
serrrfirat merged 2 commits into
mainfrom
codex/relax-changed-coverage-thresholds
Aug 2, 2026
Merged

serrrfirat merged 2 commits into
mainfrom
codex/relax-changed-coverage-thresholds

Conversation

@serrrfirat

@serrrfirat serrrfirat commented Aug 2, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

  • restore the changed-code gate's original 90% changed-line threshold
  • keep changed-branch LCOV mandatory and visible without imposing a universal branch-percentage gate
  • preserve fail-closed behavior for missing coverage and changed production files with an empty measured denominator
  • add boundary regression tests and document the restored policy

Change Type

  • Bug fix
  • New feature
  • Refactor
  • Documentation
  • CI/Infrastructure
  • Security
  • Dependencies

Linked Issue

Related #6973, #6881, and #6889.

Validation

  • cargo fmt --all -- --check
  • cargo clippy --all --benches --tests --examples --all-features -- -D warnings
  • cargo build
  • Relevant tests pass: changed-coverage Python contract tests and shell sabotage suite
  • cargo test --features integration if database-backed or integration behavior changed
  • Manual testing: exercised exact-floor and below-floor LCOV fixtures
  • If a coding agent was used and supports it, review-pr or pr-shepherd --fix was run before requesting review

Test Strategy

User behavior: contributors return to the original 90% changed-line requirement. Defensive async/backend branches remain measured and review-visible without forcing artificial tests or large exemption manifests solely to satisfy a universal branch threshold.

Risk areas:

  • Model behavior
  • Browser
  • Side effect
  • Persistence
  • Security or permissions
  • External provider
  • Cross-component behavior

Tests added or updated:

  • Unit or contract: policy assertions pin the restored 90% line floor and zero universal branch floor.
  • Reborn integration: Not applicable: this changes coverage post-processing policy, not runtime behavior.
  • Recorded fixture: Not applicable: no model behavior changed.
  • Browser E2E: Not applicable: no UI behavior changed.
  • Backend or runtime: Not applicable: no backend or runtime behavior changed.
  • Live canary: Not applicable: no deployed product behavior changed.

What the tests prove: exactly 90% changed-line coverage passes; 85% fails; 0% branch coverage is still reported with exact uncovered branch details; missing branch instrumentation, missing production LCOV files, empty per-file denominators, stale exemptions, renamed files, and unattributable crate paths continue to fail closed.

Commands run: python3 scripts/ci/test_reborn_changed_coverage.py; bash scripts/ci/test-reborn-changed-coverage.sh; python3 -m py_compile scripts/ci/reborn_changed_coverage.py scripts/ci/test_reborn_changed_coverage.py; bash -n scripts/ci/test-reborn-changed-coverage.sh; shellcheck scripts/ci/test-reborn-changed-coverage.sh; scripts/pre-commit-safety.sh; git diff --check.

Security Impact

None. The change affects CI coverage policy only and does not modify permissions, networking, secrets, file access, tool execution, or sandbox policy.

Reborn Trust-Boundary Checklist

N/A: no Reborn runtime, authority, persistence, or trust-bearing contract changes.

Database Impact

None.

Blast Radius

The Reborn changed-code coverage step in pull-request and merge-group CI. Missing coverage remains a hard failure. Measured changed lines return to the original 90% floor; branch coverage remains mandatory in LCOV and review-visible but does not gate on a universal percentage.

Rollback Plan

Revert this PR to restore the later 100% line and branch policy.

Review Follow-Through

This restores the policy shape introduced by #6881 while retaining the fail-closed LCOV discovery and reporting improvements added later. Reviewer judgment is requested on whether any explicitly critical functions should continue to rely on the separate mutation gate instead of a universal branch threshold.


Review track: C (CI policy)

@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.

@coderabbitai

coderabbitai Bot commented Aug 2, 2026 •

Copy link
Copy Markdown

Review Change Stack

📝 Walkthrough

Summary by CodeRabbit

  • Documentation
    • Updated changed-code coverage guidance to require 90% line coverage while continuing to report branch coverage without a percentage floor.
  • Tests
    • Added regression checks for coverage thresholds, reporting, and below-threshold failures.
    • Strengthened workflow validation to enforce committed coverage policies.
  • Chores
    • Updated integration coverage settings while preserving exact-line exemptions and fail-closed behavior for missing or uninstrumented coverage.

Walkthrough

The changed-coverage policy now enforces a 90% changed-line floor and reports branch coverage without a universal branch percentage floor. Documentation, the committed manifest, shell fixtures, and workflow-contract tests validate the policy.

Changes

Changed coverage policy

Layer / File(s) Summary
Coverage policy contract
tests/integration/changed-coverage-exemptions.toml, docs/internal/testing-playbook.md
The manifest sets a 90% line threshold and a 0% branch threshold. The playbook documents branch reporting, fail-closed handling, and uninstrumented-file failures.
Coverage policy validation
scripts/ci/test-reborn-changed-coverage.sh, scripts/ci/test_reborn_changed_coverage.py
Tests validate exact 90% line coverage, below-threshold failure, branch reporting, machine-readable thresholds, committed policy values, workflow manifest usage, and fixture restoration.

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

Possibly related PRs

Suggested reviewers: benkurrek

🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
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.
Title check ✅ Passed The title accurately describes restoring the 90% changed-line coverage floor and uses a clear CI-oriented Conventional Commits prefix.
Description check ✅ Passed The description completes the required sections and documents scope, validation, tests, risks, rollback, and review follow-through.
✨ Finishing Touches 💡 1
🛠️ Fix failing CI checks 💡
  • Create stacked PR
  • Commit on current branch

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.

@railway-app

railway-app Bot commented Aug 2, 2026 •

Copy link
Copy Markdown

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

Service Status Web Updated (UTC)
ironclaw ✅ Success (View Logs) Web Aug 2, 2026 at 7:51 am

@railway-app
railway-app Bot temporarily deployed to ironclaw-ci-preview / ironclaw-pr-7013 August 2, 2026 07:29 Destroyed
@github-actions github-actions Bot added scope: docs Documentation size: M 50-199 changed lines risk: low Changes to docs, tests, or low-risk modules contributor: core 20+ merged PRs labels Aug 2, 2026
@ironloopai

ironloopai Bot commented Aug 2, 2026 •

Copy link
Copy Markdown
Contributor

🔎 Review · PR #7013

🟢 Completed · Review submitted

Submitted review →

Reviewed the complete trusted base-to-head comparison. The 95% changed-line and 85% changed-branch floors are consistently applied in the committed policy, documentation, and regression tests. Existing fail-closed behavior remains intact. No actionable findings identified.

Automatic · PR opened · attempt 1 of 3 · completed in 1m 19s

Run details
  • Repository: nearai/ironclaw
  • Base: main at 5a1d812
  • Head: codex/relax-changed-coverage-thresholds at 31d67a9
  • Created: Aug 2, 2026, 7:34 AM UTC
  • Updated: Aug 2, 2026, 7:35 AM UTC
  • Run: 82490670-5675-412e-8936-ef9260ad5e98
  • Latest attempt: 1 · Completed · dd0ee004-0b2b-483d-a65f-3449a44d8371

@ironloopai ironloopai Bot 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.

🔍 Review complete · PR #7013

✅ No actionable findings

Reviewed the complete trusted base-to-head comparison. The 95% changed-line and 85% changed-branch floors are consistently applied in the committed policy, documentation, and regression tests. Existing fail-closed behavior remains intact. No actionable findings identified.

Validation and technical details
  • Verified refs/ironloop/base = 5a1d812 and refs/ironloop/head = 31d67a9.
  • Inspected all four changed files and the surrounding coverage-gate implementation and workflow integration.
  • python3 scripts/ci/test_reborn_changed_coverage.py passed all 8 tests.
  • bash scripts/ci/test-reborn-changed-coverage.sh passed all 67 self-tests, including exact-floor, below-floor, missing instrumentation, empty denominator, exemption, rename, and crate-discovery cases.
  • Python compilation, Bash syntax validation, and git diff --check refs/ironloop/base..refs/ironloop/head passed.
  • Base: main
  • Head: codex/relax-changed-coverage-thresholds at 31d67a9
  • Run: 82490670-5675-412e-8936-ef9260ad5e98

@serrrfirat
serrrfirat marked this pull request as ready for review August 2, 2026 07:39
@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 temporarily deployed to ironclaw-ci-preview / ironclaw-pr-7013 August 2, 2026 07:44 Destroyed
@serrrfirat serrrfirat changed the title ci: relax changed-code coverage floors to 95/85 ci: restore the original 90% changed-line coverage floor Aug 2, 2026

@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-reborn-changed-coverage.sh`:
- Around line 140-143: Update the fixture loop around threshold_lines to use
Bash arithmetic iteration instead of unquoted $(seq ...), while preserving the
existing generated source and diff output. Ensure threshold_lines expansions and
all path variables remain quoted, and confirm the script uses set -euo pipefail
as required for scripts under scripts/**.
- Around line 135-139: Before the later run_gate fixture cases, restore
${case_root}/${source_path} to its original contents rather than leaving the
3-line threshold fixture in place. Rebuild ${work}/change.diff from that
restored source so subsequent cases use the correct file state and diff instead
of stale fixture data.
🪄 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: faa3251c-e0a1-49eb-bb2b-4d926e305d4b

📥 Commits

Reviewing files that changed from the base of the PR and between 5a1d812 and 31d67a9.

📒 Files selected for processing (4)
  • docs/internal/testing-playbook.md
  • scripts/ci/test-reborn-changed-coverage.sh
  • scripts/ci/test_reborn_changed_coverage.py
  • tests/integration/changed-coverage-exemptions.toml

Comment thread scripts/ci/test-reborn-changed-coverage.sh
Comment on lines +140 to +143
for line in $(seq 1 "${threshold_lines}"); do
printf 'pub fn threshold_line_%s() {}\n' "${line}" >>"${case_root}/${source_path}"
printf '+pub fn threshold_line_%s() {}\n' "${line}" >>"${work}/change.diff"
done

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

📐 Maintainability & Code Quality | 🔵 Trivial | ⚡ Quick win

Avoid unquoted word splitting in the fixture loop.

Use a Bash arithmetic loop instead of unquoted $(seq ...). This keeps the iteration set controlled and removes word-splitting behavior from merge-gating tooling.

Proposed fix
-for line in $(seq 1 "${threshold_lines}"); do
+for ((line = 1; line <= threshold_lines; line++)); do

As per path instructions, CI scripts under scripts/** must use set -euo pipefail and quoted expansions.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
for line in $(seq 1 "${threshold_lines}"); do
printf 'pub fn threshold_line_%s() {}\n' "${line}" >>"${case_root}/${source_path}"
printf '+pub fn threshold_line_%s() {}\n' "${line}" >>"${work}/change.diff"
done
for ((line = 1; line <= threshold_lines; line++)); do
printf 'pub fn threshold_line_%s() {}\n' "${line}" >>"${case_root}/${source_path}"
printf '+pub fn threshold_line_%s() {}\n' "${line}" >>"${work}/change.diff"
done
🤖 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 `@scripts/ci/test-reborn-changed-coverage.sh` around lines 140 - 143, Update
the fixture loop around threshold_lines to use Bash arithmetic iteration instead
of unquoted $(seq ...), while preserving the existing generated source and diff
output. Ensure threshold_lines expansions and all path variables remain quoted,
and confirm the script uses set -euo pipefail as required for scripts under
scripts/**.

Source: Path instructions

@github-actions

github-actions Bot commented Aug 2, 2026

Copy link
Copy Markdown
Contributor

Coverage ratchet

Ratchet mode: ENFORCING

RATCHET PASS: global
  observed: 85.95% (324552 / 377586 lines)
  floor:    85.11% (tolerance 0.5pp -> effective floor 84.61%)
  denominator: 377586 lines now vs 375097 at floor capture (+2489 lines, +0.66%) — not a material change

RATCHET PASS: ironclaw_runner
  observed: 85.93% (14917 / 17359 lines)
  floor:    85.55% (tolerance 0.5pp -> effective floor 85.05%)
  floor_covered_lines: 14658 (tolerance 20 lines -> effective floor 14638)
  denominator: 17359 lines now vs 17133 at floor capture (+226 lines, +1.32%) — not a material change

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

RATCHET PASS: ironclaw_turns
  observed: 88.46% (3709 / 4193 lines)
  floor:    85.11% (tolerance 0.5pp -> effective floor 84.61%)

RATCHET PASS: ironclaw_authorization
  observed: 86.59% (723 / 835 lines)
  floor:    62.51% (tolerance 0.5pp -> effective floor 62.01%)
  floor_covered_lines: 612 (tolerance 20 lines -> effective floor 592)
  denominator: 835 lines now vs 979 at floor capture (-144 lines, -14.71%) — material change (>5%)

RATCHET PASS: ironclaw_approvals
  observed: 91.05% (1820 / 1999 lines)
  floor:    85.86% (tolerance 0.5pp -> effective floor 85.36%)
  floor_covered_lines: 1822 (tolerance 20 lines -> effective floor 1802)
  denominator: 1999 lines now vs 2122 at floor capture (-123 lines, -5.8%) — material change (>5%)

RATCHET PASS: ironclaw_secrets
  observed: 85.81% (2896 / 3375 lines)
  floor:    84.01% (tolerance 0.5pp -> effective floor 83.51%)
  floor_covered_lines: 2795 (tolerance 20 lines -> effective floor 2775)
  denominator: 3375 lines now vs 3327 at floor capture (+48 lines, +1.44%) — not a material change

RATCHET PASS: ironclaw_filesystem
  observed: 76.83% (5895 / 7673 lines)
  floor:    75.93% (tolerance 0.5pp -> effective floor 75.43%)
  floor_covered_lines: 5826 (tolerance 20 lines -> effective floor 5806)
  denominator: 7673 lines now vs 7673 at floor capture (+0 lines, +0%) — not a material change

RATCHET PASS: ironclaw_llm
  observed: 79.22% (20885 / 26364 lines)
  floor:    79.22% (tolerance 0.5pp -> effective floor 78.72%)
  floor_covered_lines: 20885 (tolerance 20 lines -> effective floor 20865)
  denominator: 26364 lines now vs 26364 at floor capture (+0 lines, +0%) — not a material change

RATCHET PASS: ironclaw_triggers
  observed: 94.68% (3134 / 3310 lines)
  floor:    86.04% (tolerance 0.5pp -> effective floor 85.54%)
  floor_covered_lines: 2804 (tolerance 20 lines -> effective floor 2784)
  denominator: 3310 lines now vs 3259 at floor capture (+51 lines, +1.56%) — not a material change

RATCHET PASS: ironclaw_product
  observed: 87.75% (22428 / 25558 lines)
  floor:    86.94% (tolerance 0.5pp -> effective floor 86.44%)
  floor_covered_lines: 21367 (tolerance 20 lines -> effective floor 21347)
  denominator: 25558 lines now vs 24576 at floor capture (+982 lines, +4%) — not a material change

RATCHET PASS: ironclaw_outbound
  observed: 94.68% (4271 / 4511 lines)
  floor:    93.49% (tolerance 0.5pp -> effective floor 92.99%)
  floor_covered_lines: 4105 (tolerance 20 lines -> effective floor 4085)
  denominator: 4511 lines now vs 4391 at floor capture (+120 lines, +2.73%) — not a material change

RATCHET PASS: ironclaw_extension_host
  observed: 85.06% (24451 / 28745 lines)
  floor:    83.82% (tolerance 0.5pp -> effective floor 83.32%)
  floor_covered_lines: 22271 (tolerance 20 lines -> effective floor 22251)
  denominator: 28745 lines now vs 26569 at floor capture (+2176 lines, +8.19%) — material change (>5%)

RATCHET PASS: ironclaw_events
  observed: 80.55% (1197 / 1486 lines)
  floor:    80.55% (tolerance 0.5pp -> effective floor 80.05%)
  floor_covered_lines: 1197 (tolerance 20 lines -> effective floor 1177)
  denominator: 1486 lines now vs 1486 at floor capture (+0 lines, +0%) — not a material change

RATCHET PASS: ironclaw_safety
  observed: 92.75% (4468 / 4817 lines)
  floor:    92.44% (tolerance 0.5pp -> effective floor 91.94%)
  floor_covered_lines: 3973 (tolerance 20 lines -> effective floor 3953)
  denominator: 4817 lines now vs 4298 at floor capture (+519 lines, +12.08%) — material change (>5%)

RATCHET PASS: ironclaw_host_runtime
  observed: 88.41% (21338 / 24135 lines)
  floor:    88.23% (tolerance 0.5pp -> effective floor 87.73%)
  floor_covered_lines: 20538 (tolerance 20 lines -> effective floor 20518)
  denominator: 24135 lines now vs 23277 at floor capture (+858 lines, +3.69%) — not a material change

Reborn integration-tier coverage

Line coverage (Reborn crates): 85.95% — 324552 / 377586 lines

Per-crate breakdown (63 crates, lowest-covered first)
Crate Line % Covered / Total
ironclaw_host_ingress 42.5% 17 / 40
ironclaw_memory 53.48% 630 / 1178
ironclaw_projects 72.36% 233 / 322
ironclaw_capabilities 74.59% 2876 / 3856
ironclaw_trust 75.79% 748 / 987
ironclaw_extractors 75.88% 538 / 709
ironclaw_reborn_cli 76.1% 11084 / 14566
ironclaw_observability 76.19% 32 / 42
ironclaw_filesystem 76.83% 5895 / 7673
ironclaw_wasm 78.84% 704 / 893
ironclaw_llm 79.22% 20885 / 26364
ironclaw_events 80.55% 1197 / 1486
ironclaw_loop_contracts 82.4% 5637 / 6841
ironclaw_first_party_extensions 82.57% 6784 / 8216
ironclaw_product_contracts 82.75% 3522 / 4256
ironclaw_memory_native 82.85% 2850 / 3440
ironclaw_libsql_runtime 83.3% 384 / 461
ironclaw_auth 83.95% 6699 / 7980
ironclaw_operator 84.47% 5309 / 6285
ironclaw_hooks 84.57% 9896 / 11702
ironclaw_event_projections 84.81% 854 / 1007
ironclaw_reborn_event_store 84.93% 1206 / 1420
ironclaw_extension_host 85.06% 24451 / 28745
ironclaw_reborn_config 85.29% 2110 / 2474
ironclaw_network 85.31% 894 / 1048
ironclaw_reborn_composition 85.51% 21794 / 25487
ironclaw_extension_contracts 85.64% 2546 / 2973
ironclaw_secrets 85.81% 2896 / 3375
ironclaw_runner 85.93% 14917 / 17359
ironclaw_host_api 86.05% 6367 / 7399
ironclaw_authorization 86.59% 723 / 835
ironclaw_webui 86.95% 11937 / 13729
ironclaw_wasm_limiter 87.06% 74 / 85
ironclaw_common 87.07% 1152 / 1323
ironclaw_reborn_traces 87.61% 11720 / 13377
ironclaw_product 87.75% 22428 / 25558
ironclaw_scripts 87.87% 420 / 478
ironclaw_threads 88.14% 5189 / 5887
ironclaw_host_runtime 88.41% 21338 / 24135
ironclaw_turns 88.46% 3709 / 4193
ironclaw_telegram_extension 88.55% 588 / 664
ironclaw_skills 88.61% 2785 / 3143
ironclaw_process_sandbox 88.64% 281 / 317
ironclaw_processes 88.76% 5889 / 6635
ironclaw_reborn_openai_compat 89.4% 3644 / 4076
ironclaw_telegram_v2_adapter 89.47% 1580 / 1766
ironclaw_extensions 89.55% 6249 / 6978
ironclaw_loop_host 90.47% 18043 / 19944
ironclaw_resources 90.76% 4084 / 4500
ironclaw_approvals 91.05% 1820 / 1999
ironclaw_reborn_identity 91.3% 451 / 494
ironclaw_mcp 92% 1426 / 1550
ironclaw_conversations 92.08% 2383 / 2588
ironclaw_event_streams 92.5% 1048 / 1133
ironclaw_safety 92.75% 4468 / 4817
ironclaw_agent_loop 93.52% 10430 / 11153
ironclaw_slack_extension 93.95% 3697 / 3935
ironclaw_first_party_extension_ports 94.66% 3758 / 3970
ironclaw_outbound 94.68% 4271 / 4511
ironclaw_triggers 94.68% 3134 / 3310
ironclaw_prompt_envelope 97.46% 192 / 197
ironclaw_runtime_policy 97.6% 855 / 876
ironclaw_attachments 98.23% 831 / 846

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 (18 entry/entries excluded from the accounting above)
Module / Crate Reason Issue
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
crates/ironclaw_attachments/src/lib.rs Declarative crate facade: module declarations, constants, and re-exports only; executable attachment modules remain covered. #6524
crates/ironclaw_extension_host/src/ingress/mod.rs Declarative ingress module facade and documentation only; executable router modules remain covered. #6524
crates/ironclaw_host_api/src/lib.rs Declarative crate facade: module declarations and re-exports only; executable host API modules remain covered. #6524
crates/ironclaw_host_api/src/product_adapter/mod.rs Declarative product-adapter facade: module declarations and re-exports only; executable adapter modules remain covered. #6524
crates/ironclaw_llm/src/rig_adapter/tests/finish_reason_tests.rs Test-only module stored under src/ for private adapter access; cargo-llvm-cov omits test harness source from production LCOV while the exercised rig_adapter.rs production lines remain coverage-gated. #6284
crates/ironclaw_loop_contracts/src/lib.rs Declaration-only public facade with no executable Rust statements; rustc emits no LCOV source record. Executable loop-contract behavior remains covered in the owned implementation modules. #6524
crates/ironclaw_outbound/src/error.rs Declarative error vocabulary only; variants have no LLVM-instrumentable production statements. #6524
crates/ironclaw_outbound/src/lib.rs Declarative crate facade: module declarations and re-exports only; executable outbound modules remain covered. #6524
crates/ironclaw_product/src/lib.rs Declaration-only public facade with no executable Rust statements; rustc emits no LCOV source record. Executable product behavior remains covered in the owned implementation modules. #6524
crates/ironclaw_product/src/lib.rs Declarative crate facade: module declarations and re-exports only; executable product modules remain covered. #6524
crates/ironclaw_product/src/scoped_fs/mod.rs Declarative scoped-filesystem facade and documentation only; executable scoped filesystem modules remain covered. #6524
crates/ironclaw_reborn_composition/src/support/fs/mod.rs Declarative composition support facade: module declarations and re-exports only; executable filesystem adapters remain covered. #6524
crates/ironclaw_slack_extension/src/lib.rs Declarative Slack crate facade: module declarations and re-exports only; executable Slack modules remain covered. #6524
crates/ironclaw_telegram_extension/src/lib.rs Declarative Telegram crate facade: module declarations and re-exports only; executable Telegram modules remain covered. #6524
crates/ironclaw_threads/src/lib.rs Declaration-only public facade with no executable Rust statements; rustc emits no LCOV source record. Executable thread behavior remains covered in the owned implementation modules. #6524
crates/ironclaw_webui/src/webui_v2/mod.rs Declaration-only WebUI v2 facade with no executable Rust statements; rustc emits no LCOV source record. Executable route behavior remains covered in the owned implementation modules. #6524

@serrrfirat
serrrfirat added this pull request to the merge queue Aug 2, 2026
Merged via the queue into main with commit 0399cef Aug 2, 2026
89 of 91 checks passed
@serrrfirat
serrrfirat deleted the codex/relax-changed-coverage-thresholds branch August 2, 2026 20:34
@coderabbitai coderabbitai Bot mentioned this pull request Aug 3, 2026
4 of 14 tasks
pull Bot pushed a commit to Stars1233/ironclaw that referenced this pull request Aug 3, 2026
…ve-2 main (nearai#7032)

Audits docs/reborn/target-architecture/ (plus crates/AGENTS.md and the
crate guides Wave 2 touched) against merged main at 3be5f05, after
nearai#6996, nearai#6998, nearai#7002 and nearai#7018.

Docs-only: 13 .md files, no code, no tests. House style throughout —
dated amendments, prior text quoted verbatim wherever a clause is
corrected, nothing rewritten silently and no decision record deleted.

The two structural findings the wave produced and nobody had written
down: same-layer edges are invisible to the layer matrix by
construction, so the exception count could never have moved in Wave 2
and each removal needed its own purpose-built shrink-only gate
(PROPOSAL §8.1, §8.2, §11.1); and the changed-line coverage policy —
90% lines, branch coverage ungated since nearai#7013 — was recorded in no
document at all, alongside a stranded-exemption failure mode the new
pre-existing-uncovered exclusion creates (CHECKLIST WS10).

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
l3ocifer pushed a commit to l3ocifer/frick-ironclaw that referenced this pull request Sep 3, 2026
* ci: relax changed coverage floors to 95/85

* ci: restore original 90% changed-line floor
l3ocifer pushed a commit to l3ocifer/frick-ironclaw that referenced this pull request Sep 3, 2026
…ve-2 main (nearai#7032)

Audits docs/reborn/target-architecture/ (plus crates/AGENTS.md and the
crate guides Wave 2 touched) against merged main at 3be5f05, after
nearai#6996, nearai#6998, nearai#7002 and nearai#7018.

Docs-only: 13 .md files, no code, no tests. House style throughout —
dated amendments, prior text quoted verbatim wherever a clause is
corrected, nothing rewritten silently and no decision record deleted.

The two structural findings the wave produced and nobody had written
down: same-layer edges are invisible to the layer matrix by
construction, so the exception count could never have moved in Wave 2
and each removal needed its own purpose-built shrink-only gate
(PROPOSAL §8.1, §8.2, §11.1); and the changed-line coverage policy —
90% lines, branch coverage ungated since nearai#7013 — was recorded in no
document at all, alongside a stranded-exemption failure mode the new
pre-existing-uncovered exclusion creates (CHECKLIST WS10).

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>

This branch was successfully deployed

No deployments
ironclaw-ci-preview / ironclaw-pr-7013 — 56b20a81 Deployed Aug 2, 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: low Changes to docs, tests, or low-risk modules scope: docs Documentation size: M 50-199 changed lines

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants