refactor(composition): group slack cluster under slack/ (dissection n8) - #5785
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 (36)
📝 WalkthroughSummary by CodeRabbit
WalkthroughThis PR consolidates Slack-related submodules (actor identity, channel routes/connection, delivery, egress, host beta/state, outbound targets, personal binding/oauth, setup, serve) under a new ChangesSlack module namespace consolidation
Estimated code review effort: 2 (Simple) | ~15 minutes Possibly related PRs
Suggested reviewers: Path-rename churn only — no logic touched, gated entirely by 🚥 Pre-merge checks | ✅ 4✅ Passed checks (4 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 reorganizes the Slack-related modules within the ironclaw_reborn_composition crate by grouping them under a new internal slack module. While the crate's public API remains unchanged due to preserved re-exports at the root, all internal references, module declarations, and tests have been updated to use the new nested paths. There are no review comments to address, and the changes look clean and well-structured.
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.
|
🚅 Deployed to the ironclaw-pr-5785 environment in ironclaw-ci-preview
|
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…on n8) Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
4cb65ca to
0a99d20
Compare
|
⟳ Redone off current |
Coverage ratchetReborn integration-tier coverageLine coverage (Reborn crates): 85.16% — 282160 / 331320 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 | 0a99d20cdba6 |
Head: 0a99d20cdba62b61b55aaff5ad01511bf048e558
Next: No reviewer action needed.
Run details
Status: Current
Needs human: no
Needs validation: no
Summary
No concrete blocking issues found. The change is a scoped Slack module relocation under src/slack/ with updated internal references and preserved public re-exports, plus the matching pub-use snapshot update.
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.
What
Dissection step n8 of the composition god-crate refactor (
docs/plans/2026-07-02-reborn-internal-module-refactor.md§3): group the 17-module Slack cluster (the largest domain, ~34.6k lines) under a singleslack/internal module. Pure, behavior-preserving move —git mv+ import repaths + 1:1 re-pointed crate-rootpub use. No logic extracted, no public API change.Files moved →
crates/ironclaw_reborn_composition/src/slack/(17 modules, prefix kept)slack_actor_identity·slack_channel_connection·slack_channel_routes(+dir) ·slack_connectable_channel·slack_delivery·slack_dm_open·slack_egress·slack_host_beta(+dir) ·slack_host_state·slack_outbound_targets·slack_pairing_notifier·slack_personal_binding·slack_personal_binding_pairing·slack_personal_binding_pairing_serve·slack_personal_binding_serve·slack_serve(+dir) ·slack_setupSubdirectories moved intact;
slack_serve/e2e_tests.rs's#[path = "e2e_auth_challenge.rs"]relative include is preserved.Deliberately left at root (slack-gated but not slack-domain, per leaf-first placement — candidates for later projection/automation/root steps):
host_ingress(manifest ingress, 0 slack refs),delivered_gate_routing(triggered-run approval routing),channel_connection_resume(gate-resume read model).cfg gates — uniform
mod slack;is ungated; all 17 inner mods are#[cfg(feature = "slack-v2-host-beta")](the duplicated attribute onslack_channel_connectioncollapsed to one). The full-feature build confirms the parent gate is hung correctly — slack code is fully absent under default/--no-default-featuresand present underslack::with the beta feature.Public-API subtlety handled
slack_servewas apub mod(public API surface). Moving it requiredpub use slack::slack_serve;at the crate root (lib.rs:266) so the external pathironclaw_reborn_composition::slack_serve::…resolves unchanged. External test consumers using that path were correctly left untouched.Verification
1m13s) ·--no-default-features(slack absent) · full feature set (slack present)reborn_clicompiles; architecture boundary tests pass (32, 0 fail)+slack_serveis the module re-export replacing the oldpub mod(same public path). Snapshot regenerated.runtime::/slack_host_beta::parallelism flakes — each passes in isolation (-- --exact); not introduced here (pure repath).Risk
Low — mechanical move, byte-identical public API, full cfg-matrix green. Draft pending human review (SOC 2 — nothing auto-merges).