Skip to content

fix(ci): restore main coverage gates - #7493

Merged
serrrfirat merged 1 commit into
mainfrom
codex/fix-main-coverage-gates
Aug 11, 2026
Merged

serrrfirat merged 1 commit into
mainfrom
codex/fix-main-coverage-gates

Conversation

@serrrfirat

Copy link
Copy Markdown
Collaborator

Summary

Change Type

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

Linked Issue

None. Unblocks failing main runs 31468070491 and 31468070517.

Validation

  • cargo fmt --all -- --check
  • cargo clippy --all --benches --tests --examples --all-features -- -D warnings — Not applicable: test-only changes covered by owning-crate compile/tests and targeted served-browser E2E.
  • cargo build — Not applicable: both the owning-crate tests and served-browser harness compile the affected test targets and shipping binary.
  • Relevant tests pass:
    • cargo test -p ironclaw_telegram_extension (116 passed)
    • cargo test -p ironclaw_telegram_extension deliver_react_ (5 passed)
    • uv run --project tests/e2e pytest tests/e2e/scenarios/test_admin_api.py::test_admin_configuration_renders_uninstalled_manifest_groups_and_keeps_secrets_write_only tests/e2e/scenarios/test_reborn_webui_v2_legacy_extensions.py::test_reborn_v2_current_extension_setup_and_delivery_matrix -q (2 passed)
    • cargo llvm-cov -p ironclaw_telegram_extension --summary-only (116 passed; new tests execute more than the six previously missing lines required by the ratchet)
  • cargo test -p <owning-crate> --features integration — Not applicable: no database-backed or runtime-integration behavior changed.
  • Manual testing — Not applicable: deterministic tests reproduce both failing CI gates.
  • If a coding agent was used and supports it, review-pr or pr-shepherd --fix was run before requesting review — Not run; narrow test-only diff reviewed locally.

Test Strategy

User behavior: Main's deterministic coverage gates accept the shipped Web Push configuration surface, current notification empty state, and Telegram reaction behavior so release branching can proceed from a green commit.

Risk areas:

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

Tests added or updated:

  • Unit or contract: Telegram ChannelAdapter::deliver caller-path tests cover all reaction mappings and provider failure classifications.
  • Reborn integration: Not applicable: no cross-crate production behavior changed.
  • Recorded fixture: Not applicable: no model behavior changed.
  • Browser E2E: Updated the two assertions failing in the shipping-binary E2E coverage lane.
  • Backend or runtime: Not applicable: no backend/runtime behavior changed.
  • Live canary: Not applicable: all provider responses are hermetic.

What the tests prove: Telegram reaction delivery cannot falsely report success for malformed or rejected vendor responses, each neutral reaction maps to the intended Telegram emoji, and the served SPA reflects the current Web Push/admin and notification-empty-state contracts.

Commands run: listed under Validation.

Security Impact

None. Test-only changes; no permissions, network policy, secrets, filesystem, tool execution, or sandbox behavior changed.

Reborn Trust-Boundary Checklist

N/A: test-only changes do not alter Reborn trust-bearing types, ingress, persistence, runtime, or error contracts.

Database Impact

None.

Blast Radius

Limited to Telegram adapter tests and two served-browser E2E expectations. Production code is unchanged.

Rollback Plan

Revert commit c00270eecc if the updated expectations do not match the intended product contract.

Review Follow-Through

The full Code Coverage workflow is push-to-main only. After merge, verify both Tests (Reborn) and Code Coverage on the merge SHA before cutting the release branch.


Review track: A (tests/chore)

@railway-app

railway-app Bot commented Aug 11, 2026 •

Copy link
Copy Markdown

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

Service Status Web Updated (UTC)
ironclaw ✅ Success (View Logs) Web Aug 11, 2026 at 8:24 am

@railway-app
railway-app Bot temporarily deployed to ironclaw-ci-preview / ironclaw-pr-7493 August 11, 2026 08:15 Destroyed
@github-actions github-actions Bot added size: XS < 10 changed lines (excluding docs) risk: low Changes to docs, tests, or low-risk modules contributor: core 20+ merged PRs labels Aug 11, 2026
@coderabbitai

coderabbitai Bot commented Aug 11, 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: b1afb23c-f585-44ee-9a8c-2a50273e9015

📥 Commits

Reviewing files that changed from the base of the PR and between ed8ac27 and c00270e.

📒 Files selected for processing (3)
  • crates/extensions/packages/telegram/src/tests/channel_deliver.rs
  • tests/e2e/scenarios/test_admin_api.py
  • tests/e2e/scenarios/test_reborn_webui_v2_legacy_extensions.py

📝 Walkthrough

Summary by CodeRabbit

  • Bug Fixes

    • Improved Telegram reaction delivery handling for reaction mappings, removals, invalid message references, retryable failures, malformed responses, and unauthorized responses.
    • Updated the automation empty state to clearly explain when no notification channel is selected and related notices cannot be delivered.
  • Tests

    • Added coverage for Telegram delivery edge cases.
    • Added verification that the Web Push deployment configuration appears in the admin settings.

Walkthrough

The PR expands Telegram reaction delivery tests for payloads and vendor outcomes. It also updates end-to-end expectations for admin configuration groups and the Web UI notification-channel empty state.

Changes

Telegram delivery tests

Layer / File(s) Summary
Reaction payloads and delivery outcomes
crates/extensions/packages/telegram/src/tests/channel_deliver.rs
Tests cover all RunReaction emoji mappings, reaction removal payloads, invalid message references, retryable vendor failures, malformed responses, and unauthorized responses.

End-to-end assertion updates

Layer / File(s) Summary
Admin and Web UI expectations
tests/e2e/scenarios/test_admin_api.py, tests/e2e/scenarios/test_reborn_webui_v2_legacy_extensions.py
The tests expect the Web push deployment configuration group and the updated notification-channel empty-state message.

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
Title check ✅ Passed The title uses Conventional Commits style and accurately describes restoring the main coverage gates through test updates.
Description check ✅ Passed The description follows the repository template and documents scope, validation, test strategy, impact, rollback, and review follow-through.
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.

@ironloopai

ironloopai Bot commented Aug 11, 2026 •

Copy link
Copy Markdown
Contributor

🧭 IronLoop Run · Review

This comment updates in place as the Run moves through its stages.

🟩 Final result · Completed

🟨 Queued → 🟦 Working → 🟦 Posting results → 🟩 Completed

Automatic trigger · attempt 1 of 3 · completed in 7m 47s

IronLoop completed the review and posted it to GitHub.

🔗 Result

Open submitted review →

Run details

Run: a2766cd9-a350-4d04-a0cc-a107b5171d0e
Base: main at ed8ac27
Head: codex/fix-main-coverage-gates at c00270e
Created: 2026-08-11 08:16 UTC
Updated: 2026-08-11 08:24 UTC

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

🔍 IronLoop review

One medium correctness gap was found in the expanded Telegram reaction coverage.

Findings: 🟠 Medium 1

🟠 Medium · Require result:true before reporting a reaction as sent

Inline on crates/extensions/packages/telegram/src/tests/channel_deliver.rs:222. See the inline comment for details.

Validation

  • ✅ Telegram reaction tests — Focused reaction delivery tests passed: 5 passed, 0 failed.
  • ⚪ Served-browser assertions — Not run. Static review verified the added admin heading against the Web Push manifest and the notification copy against the rendered localization key; no browser run was needed for a concrete concern.
Review details
  • Run: a2766cd9-a350-4d04-a0cc-a107b5171d0e
  • Workflow: Review
  • Attempts: 1

Comment on lines +213 to +222
for (response, expected_reason) in [
(
Ok(RestrictedEgressResponse {
status: 429,
body: Vec::new(),
}),
"status 429",
),
(ScriptedEgress::ok("not-json"), "was not valid JSON"),
] {

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.

🔍 IronLoop review · Inline finding

🟠 Medium · Require result:true before reporting a reaction as sent

The added failure matrix covers HTTP 429 and invalid JSON, but not parsed `ok:true` responses with false or missing `result`. The reaction implementation treats any parsed `ok:true` response as `Sent`, while the equivalent delete path requires `result:true`; the delivery coordinator consequently records an all-sent report as delivered. A response such as `{"ok":true,"result":false}` can therefore suppress a failed reaction without retrying it. Add cases for false/missing result evidence and require `result:true` before returning `Sent`.

@PierreLeGuen
PierreLeGuen self-requested a review August 11, 2026 08:33
@serrrfirat
serrrfirat added this pull request to the merge queue Aug 11, 2026
Merged via the queue into main with commit ce67dda Aug 11, 2026
45 checks passed
@serrrfirat
serrrfirat deleted the codex/fix-main-coverage-gates branch August 11, 2026 08:48
l3ocifer pushed a commit to l3ocifer/frick-ironclaw that referenced this pull request Sep 3, 2026

This branch was successfully deployed

No deployments
ironclaw-ci-preview / ironclaw-pr-7493 — c00270ee Deployed Aug 11, 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 size: XS < 10 changed lines (excluding docs)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants