Files
ironclaw/scripts
Benjamin Kurrek b72d7da662 feat(reborn): standardized messaging framework — host-owned standard ops with enforced canonical contracts (#6831)
* feat(reborn): standardized messaging framework — host-owned standard ops with enforced canonical contracts

Squash-port of branch inky-cast (43 commits, head 93b74fa73) onto main
d3791e0f8. The branch's prior refreshes were merge-based, so a per-commit
rebase across the WS6 renames + WS7 family moves re-conflicted on every
replay; this is the sanctioned fallback: one 3-way application of the full
reviewed delta (ort merge, rename detection on), preserving the reviewed
end state exactly, then re-homed onto the restructured tree:

- crates/ironclaw_host_api           -> crates/contracts/ironclaw_host_api
- crates/ironclaw_host_runtime       -> crates/kernel/ironclaw_host_runtime
- crates/ironclaw_extensions         -> crates/extensions/ironclaw_extension_registry
- crates/ironclaw_reborn_composition -> crates/app/ironclaw_composition
- new prompts/ + schemas/ messaging assets relocated with the host_api move

Conflict resolutions (9 text + 1 binary): workspace Cargo.toml dep table,
extension_host active.rs/mcp.rs imports + standard_op field, slack package
asset comment, three host_runtime test import lists, wasm-src digest table
(placeholder pending rebuild), Slack WASM artifact (placeholder pending
rebuild), reborn-extension-surfaces SKILL.md path refresh.

Follow-up commits adapt stale crate names/paths in ported content and
rebuild the Slack WASM artifact.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* chore(reborn): re-point ported content at post-WS6/WS7 crate names and paths

Mechanical adaptation of the squash-ported messaging framework to the
restructured tree: crate-name fixes in code (ironclaw_extensions:: ->
ironclaw_extension_registry:: in production.rs and manifest_v3_contract.rs)
and path/name refreshes in comments, docs, the affected-test planner
fixture, the changed-coverage exemption keys, and the messaging
design/plan docs. 75 lines, 1:1 swaps, no behavior change.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* chore(reborn): recapture slack wasm-src digest and shifted coverage-exemption line

The merged slack wasm-src tree differs from both parents (PR feature delta
+ post-move path comments), so its source digest is recomputed after
rebuilding the artifact per scripts/ci/wasm-src-digests.toml's own
instructions; the rebuilt slack_user_tool.wasm is byte-identical to the
branch's committed artifact, and the github/google digests stay at main's
values. Also re-keys the capability.rs changed-coverage exemption from
line 256 to 265 — the only exempted line the merge shifted (verified by
content match; the other three files' exempted lines are unshifted).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* chore(ci): fold the planner's snapshot-prefix mapping into #7133's landed mechanism

Main independently added INTEGRATION_SNAPSHOT_PREFIX_OWNERS (with the
golden-payload mapping this branch carried as
INTEGRATION_SUPPORT_PREFIX_OWNERS); the rebase adopts main's vocabulary and
drops this branch's now-duplicate prefix loop from the support-owner test —
#7133's dedicated golden-payload test pins the same behavior. Golden
snapshots regenerated against the merged tree (surface-hash lines only,
the PR's reviewed footprint); 61 planner self-tests green and both live
selections verified (snapshot -> lane 1, acme fixture -> lane 2).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* chore(arch): lower the cross-crate include ratchet to 16 for the retired slack schema embed

#7258's two-directional include inventory (merge-queue red on this PR)
demands the ceiling drop in the PR that removes a reach-in: standard_op
binding retires the ironclaw_extension_support -> packages/slack schema
asset embed (schemas resolve from the compiled-in host_api messaging
registry), taking the live cross-crate count 17 -> 16. Constant lowered
and the measurement note updated (slack/telegram owner itemization 5 -> 4).
Gate re-run green locally; it was the single root cause of all three
merge-queue failures (the same gate runs in Code Style's smoke job, the
architecture-misc test bucket, and E2E's boundaries job).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* chore(arch): raise the host_api size ceiling for the messaging vocabulary (17501 -> 18570)

The second #7258 gate this PR trips: contracts crates carry a checked
production-line ceiling, and the standardized-messaging vocabulary grows
ironclaw_host_api to 18570 lines. Raised to the exact live count (zero
banked slack, matching the table's captured-at-live convention) with the
rationale inline and in the PR body's architecture-audit section: the
growth is declarations only — op enum, error taxonomy, compiled-in schema
and prompt constants, test-support conformance — while executable
validation lives in ironclaw_host_runtime; moving the vocabulary up is
structurally circular (CapabilityDescriptor.standard_op anchors it).
Full architecture suite green locally with both gate fixes (241+ tests).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-08-05 23:23:50 +00:00
..