refactor(composition): group automation cluster under automation/ (dissection n9) - #5818
Conversation
🔎 IronLoop Review StatusHead: Current reviewers:
Reviewer summaries
Recent activity
Available commands
Run metadataAdmission: webhook accepted the request and IronLoop persisted review state before this projection. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (13)
📝 WalkthroughSummary by CodeRabbit
WalkthroughThis PR moves the automation-related modules under a new ChangesAutomation module relocation
Estimated code review effort: 2 (Simple) | ~10 minutes Possibly related PRs
Suggested reviewers: 🚥 Pre-merge checks | ✅ 3 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (3 passed)
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. Comment |
There was a problem hiding this comment.
Code Review
This pull request restructures the codebase by grouping the facade, trigger_poller, and trigger_poller_trusted_submit modules under a single internal automation module, updating all relevant imports. Feedback suggests using relative imports (super::) instead of absolute paths (crate::automation::) for sibling submodules within the automation module to make the code more idiomatic and robust to future refactoring.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
| pub(crate) use crate::automation::trigger_poller_trusted_submit::AccessCheckerTriggerFireAuthorizer; | ||
| pub(crate) use crate::automation::trigger_poller_trusted_submit::ConversationContentRefMaterializer; | ||
| #[cfg(any(test, feature = "test-support"))] | ||
| pub(crate) use crate::automation::trigger_poller_trusted_submit::TenantScopedTrustedTriggerFireAuthorizer; |
There was a problem hiding this comment.
Since trigger_poller and trigger_poller_trusted_submit are sibling submodules within the same automation module, it is more idiomatic and robust to use relative imports (super::) instead of absolute paths (crate::automation::). This prevents the imports from breaking if the parent automation module is ever renamed or relocated.
pub(crate) use super::trigger_poller_trusted_submit::AccessCheckerTriggerFireAuthorizer;
pub(crate) use super::trigger_poller_trusted_submit::ConversationContentRefMaterializer;
#[cfg(any(test, feature = References
- When importing items from a parent module into a child module in Rust, use
super::for relative imports instead of the full crate path. This makes the import more idiomatic and concise.
|
🚅 Deployed to the ironclaw-pr-5818 environment in ironclaw-ci-preview
|
4cb65ca to
0a99d20
Compare
0e35ac0 to
92d950b
Compare
92d950b to
428587c
Compare
Coverage ratchetReborn integration-tier coverageLine coverage (Reborn crates): 85.17% — 282588 / 331797 lines Per-crate breakdown (65 crates, lowest-covered first)
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 (4 entry/entries excluded from the accounting above)
|
There was a problem hiding this comment.
✅ IronLoop Review: reviewer
Review at a glance
| Verdict | Blocking | Notes | Inline | Head |
|---|---|---|---|---|
| ✅ Approved | 0 | 0 | 0 | 428587c151f5 |
Head: 428587c151f5aa9b6ae9a9641e6bd96177e898f9
Next: No reviewer action needed.
Run details
Status: Current
Needs human: no
Needs validation: no
Summary
No concrete issues found. The PR is a scoped module reorganization of the Reborn automation facade and trigger poller with matching internal path updates and no observed behavior change.
Findings
None.
Developer follow-up
After fixing this feedback:
- Push the fix to this PR branch.
- Re-run this reviewer with
@ironloopai review --agent reviewerif you only changed this reviewer's findings. - Re-run all reviewers with
@ironloopai reviewwhen the fix may affect multiple areas. - Use
@ironloopai statusto check queued/running/completed/stale/stalled state while reviewers run.
…ssection n9) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…issection n9) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
428587c to
b8a13a7
Compare
What
Dissection step n9 of the composition god-crate refactor (
docs/plans/2026-07-02-reborn-internal-module-refactor.md§3): group the automation cluster (facade + trigger-poller, ~5.2k lines) under a singleautomation/internal module. Pure, behavior-preserving move —git mv+ import repaths + 1:1 re-pointed crate-rootpub use. No public API change.Files moved →
crates/ironclaw_reborn_composition/src/automation/Facade renamed (
automation.rs→automation/facade.rs): the old top-level module was itself namedautomation, so it can't be a submodule of a domain module also calledautomation. Renaming tofacadematches the plan's{facade, trigger_poller}grouping. All three inner mods are ungated.Pure move — the plan's "pull trigger-poller wiring out of factory.rs" is deferred to a later logic PR (the factory.rs footprint today is only a doc comment + a config field, no extractable block).
Public-API preservation
RebornAutomationProductFacadeis still exported at the crate root, now viapub use automation::facade::RebornAutomationProductFacade;(the only changedpub use). Exported item-set is identical to base (264 == 264).Verification
--no-default-features· full feature setreborn_clicompiles; architecture boundary tests pass (32, 0 fail — incl.trusted_trigger_submit_request_minting_stays_worker_owned)Risk
Low — mechanical move (one intra-cluster rename to resolve the name collision), byte-identical public API, full cfg-matrix green. Draft pending human review (SOC 2 — nothing auto-merges).