Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
21 commits
Select commit Hold shift + click to select a range
5e638da
feat(extension-runtime): channel egress policy + declared injection t…
BenKurrek Jul 12, 2026
3afa2eb
feat(extension-runtime): EgressFactory carries the staged channel dec…
BenKurrek Jul 12, 2026
de88054
feat(extension-runtime): host-runtime channel egress transport (P5 sl…
BenKurrek Jul 12, 2026
2e32d68
feat(extension-runtime): coordinator delivery-attempt lifecycle state…
BenKurrek Jul 12, 2026
567f384
feat(extension-runtime): the generic DeliveryCoordinator (P5 slice 4b)
BenKurrek Jul 12, 2026
9bc185f
feat(extension-runtime): wire the channel egress transport + brace-te…
BenKurrek Jul 12, 2026
008eae7
feat(extension-runtime): Slack ChannelAdapter::deliver over restricte…
BenKurrek Jul 12, 2026
f6179df
feat(extension-runtime): Telegram ChannelAdapter::deliver + token pat…
BenKurrek Jul 12, 2026
a3b5d52
feat(extension-runtime): CommunicationPresentationPolicy replaces con…
BenKurrek Jul 12, 2026
268301a
feat(extension-runtime): generic TraceChannel with origin data + wire…
BenKurrek Jul 12, 2026
510cde6
feat(extension-runtime): the bundled Telegram channel package, binary…
BenKurrek Jul 12, 2026
a82214a
feat(extension-runtime): coordinator wiring ports over the extension …
BenKurrek Jul 12, 2026
54ee10b
feat(extension-runtime): coordinator notice-class path, Retract parts…
BenKurrek Jul 12, 2026
d206c01
feat(extension-runtime): the generic run-delivery observer and trigge…
BenKurrek Jul 12, 2026
8aa1e66
feat(extension-runtime): cut the Slack host over to the generic deliv…
BenKurrek Jul 12, 2026
68ab431
feat(extension-runtime): delete the Slack delivery lane; every send i…
BenKurrek Jul 12, 2026
73f8d3c
test(extension-runtime): the exported channel-adapter conformance sui…
BenKurrek Jul 12, 2026
444584a
test(extension-runtime): integration proofs for the coordinated deliv…
BenKurrek Jul 13, 2026
4ea9ceb
docs(extension-runtime): P5 checklist — OUT/ING-11/ING-12/DEL-10/TEST…
BenKurrek Jul 13, 2026
cad991a
fix(extension-runtime): clear the CI gates on the P5 conformance module
BenKurrek Jul 13, 2026
60a3be7
Merge branch 'nea25/13-ingress-router' into nea25/14-delivery
BenKurrek Jul 13, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

5 changes: 5 additions & 0 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -321,6 +321,7 @@ ironclaw_webui_v2 = { path = "crates/ironclaw_webui_v2", version = "0.1.0", feat
# facade-only rule means it re-exports no SLACK_V2_ADAPTER_ID/SLACK_USER_ACTOR_KIND-style
# constants; Slack pairing/actor-resolution int-tier tests need them directly.
ironclaw_slack_v2_adapter = { path = "crates/ironclaw_slack_v2_adapter", version = "0.1.0" }
ironclaw_telegram_v2_adapter = { path = "crates/ironclaw_telegram_v2_adapter", version = "0.1.0" }
ironclaw_reborn_config = { path = "crates/ironclaw_reborn_config", version = "0.1.0" }
ironclaw_reborn_openai_compat = { path = "crates/ironclaw_reborn_openai_compat", version = "0.1.0", features = ["openai-compat-beta"] }
ironclaw_run_state = { path = "crates/ironclaw_run_state", version = "0.1.0" }
Expand Down Expand Up @@ -476,6 +477,10 @@ path = "tests/integration/extension_runtime.rs"
name = "reborn_integration_extension_ingress"
path = "tests/integration/extension_ingress.rs"

[[test]]
name = "reborn_integration_extension_delivery"
path = "tests/integration/extension_delivery.rs"

[[test]]
name = "reborn_integration_extension_visibility"
path = "tests/integration/extension_visibility.rs"
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -566,12 +566,14 @@ fn reborn_cli_binary_crate_stays_separate_from_v1_root() {
&dependencies,
"ironclaw_reborn_cli",
[
"ironclaw_extension_host",
"ironclaw_reborn_composition",
"ironclaw_reborn_config",
"ironclaw_reborn_traces",
"ironclaw_reborn_webui_ingress",
"ironclaw_telegram_v2_adapter",
],
"ironclaw_reborn_cli should enter Reborn through ironclaw_reborn_composition (assembled-runtime and provider-admin facade), ironclaw_reborn_config (boot-config contract), ironclaw_reborn_traces (contributor-side TraceCommons client extracted from the legacy monolith), and ironclaw_reborn_webui_ingress (host-owned WebUI serve lifecycle) only. Adding any other workspace crate here re-opens speculative public API access to internal Reborn types.",
"ironclaw_reborn_cli should enter Reborn through ironclaw_reborn_composition (assembled-runtime and provider-admin facade), ironclaw_reborn_config (boot-config contract), ironclaw_reborn_traces (contributor-side TraceCommons client extracted from the legacy monolith), and ironclaw_reborn_webui_ingress (host-owned WebUI serve lifecycle) — plus ironclaw_extension_host (the NativeExtensionFactory contract) and concrete extension crates for the binary-assembled native factory registry (DEL-7: only the binary and tests may link concrete extension crates). Adding any other workspace crate here re-opens speculative public API access to internal Reborn types.",
);
assert_workspace_deps_exactly(
&dependencies_all_kinds,
Expand Down
72 changes: 53 additions & 19 deletions crates/ironclaw_architecture/tests/reborn_extension_specificity.rs
Original file line number Diff line number Diff line change
Expand Up @@ -745,7 +745,6 @@ const ALLOWLIST: &[(&str, &str)] = &[
"crates/ironclaw_llm/src/gemini_oauth.rs",
"www.googleapis.com",
),
("crates/ironclaw_llm/src/reasoning.rs", "slack"),
(
"crates/ironclaw_llm/src/tool_schema/placeholder_stripping.rs",
"notion",
Expand Down Expand Up @@ -1212,22 +1211,6 @@ const ALLOWLIST: &[(&str, &str)] = &[
"crates/ironclaw_reborn_composition/src/slack/slack_channel_routes/subjects.rs",
"slack",
),
(
"crates/ironclaw_reborn_composition/src/slack/slack_delivery.rs",
"slack",
),
(
"crates/ironclaw_reborn_composition/src/slack/slack_delivery.rs",
"slack.com",
),
(
"crates/ironclaw_reborn_composition/src/slack/slack_dm_open.rs",
"slack",
),
(
"crates/ironclaw_reborn_composition/src/slack/slack_egress.rs",
"slack",
),
(
"crates/ironclaw_reborn_composition/src/slack/slack_host_beta.rs",
"slack",
Expand All @@ -1241,7 +1224,7 @@ const ALLOWLIST: &[(&str, &str)] = &[
"slack",
),
(
"crates/ironclaw_reborn_composition/src/slack/slack_outbound_targets.rs",
"crates/ironclaw_reborn_composition/src/slack/slack_preference_targets.rs",
"slack",
),
(
Expand Down Expand Up @@ -1300,12 +1283,63 @@ const ALLOWLIST: &[(&str, &str)] = &[
("crates/ironclaw_reborn_identity/src/lib.rs", "github"),
("crates/ironclaw_reborn_identity/src/lib.rs", "google"),
("crates/ironclaw_reborn_identity/src/lib.rs", "slack"),
("crates/ironclaw_reborn_traces/src/client.rs", "slack"),
(
"crates/ironclaw_reborn_traces/src/contribution.rs",
"github",
),
("crates/ironclaw_reborn_traces/src/contribution.rs", "gmail"),
("crates/ironclaw_common/src/attachment.rs", "telegram"),
("crates/ironclaw_common/src/identity.rs", "telegram"),
("crates/ironclaw_common/src/platform.rs", "telegram"),
(
"crates/ironclaw_product_adapter_registry/src/lib.rs",
"telegram",
),
(
"crates/ironclaw_product_adapters/src/identity.rs",
"telegram",
),
(
"crates/ironclaw_product_adapters/src/outbound.rs",
"telegram",
),
("crates/ironclaw_product_workflow/Cargo.toml", "telegram"),
("crates/ironclaw_product_workflow/src/lib.rs", "telegram"),
(
"crates/ironclaw_reborn_composition/src/extension_host/available_extensions.rs",
"telegram",
),
("crates/ironclaw_reborn_identity/src/key.rs", "telegram"),
("crates/ironclaw_reborn_identity/src/lib.rs", "telegram"),
(
"crates/ironclaw_reborn_traces/src/contribution.rs",
"telegram",
),
("crates/ironclaw_safety/src/leak_detector.rs", "telegram"),
(
"crates/ironclaw_wasm_product_adapters/src/auth_verifier.rs",
"telegram",
),
(
"crates/ironclaw_wasm_product_adapters/src/egress_policy.rs",
"api.telegram.org",
),
(
"crates/ironclaw_wasm_product_adapters/src/egress_policy.rs",
"telegram",
),
(
"crates/ironclaw_wasm_product_adapters/src/lib.rs",
"telegram",
),
(
"crates/ironclaw_webui_v2/frontend/src/pages/chat/hooks/useChannelOnboarding.ts",
"telegram",
),
(
"crates/ironclaw_webui_v2/frontend/src/pages/chat/hooks/useThreads.ts",
"telegram",
),
("crates/ironclaw_reborn_traces/src/contribution.rs", "slack"),
("crates/ironclaw_skills/src/selector.rs", "github"),
("crates/ironclaw_skills/src/types.rs", "github"),
Expand Down
1 change: 1 addition & 0 deletions crates/ironclaw_extension_host/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@ subtle = "2"
thiserror = "2"
tokio = { version = "1", features = ["macros", "rt", "sync", "time"] }
tracing = "0.1"
url = "2"

[dev-dependencies]
tokio = { version = "1", features = ["macros", "rt", "rt-multi-thread", "sync", "time"] }
Expand Down
Loading
Loading