IronClaw
IronClaw makes durable state portable across profiles
IronClaw proposes profile-agnostic durable storage, an operator surface for linking IronHub agents and one channel adapter for inbound messages, replies and notifications. The cluster moves identity, state and delivery toward shared domain contracts.
nearai/ironclaw PR #7456 is the inspected primary source: “fix(reborn): make durable storage profile-agnostic.” The related records below were inspected as supporting context rather than independent confirmation.
The facts
- nearai/ironclaw PR #7456 was created 2026-08-10T17:00:26Z and was open at inspection; its title is “fix(reborn): make durable storage profile-agnostic.” - nearai/ironclaw PR #7516 was created 2026-08-12T00:41:09Z and was open at inspection; its title is “feat(webui): operator surface for the IronHub agent link.” - nearai/ironclaw PR #7477 was created 2026-08-11T01:41:00Z and was open at inspection; its title is “feat(channels): unified channel model — one ChannelAdapter for inbound, replies, and notifications.” - The repository reported 12604 stars, 1479 open issues, default branch main, and last push 2026-08-12T00:58:32Z. - The latest tagged-release baseline checked was ironclaw-v1.1.1-rc.1 published 2026-08-10T13:58:58Z.
What changed
nearai/ironclaw PR #7456 reports: Summary Root every Reborn profile directly at IRONCLAW_REBORN_HOME with profile-agnostic state/, system/, workspaces/, runtime/, logs/, cache/, and tmp/ namespaces. Persist a typed security envelope so restart-only profile transitions cannot weaken tenancy or workspace isolation. Bind sandboxes to one typed tenant/user workspace leaf as /workspace; the Reborn home, database, master key, provider credentials, system content, and sibling workspaces remain host-only. Preserve conversations, encrypted secrets, extension installations, settings, prompts, system/user skills, and tenant/user ownership across adoption and restart. Automatically adopt exactly one supported legacy root during startup only when the deployment supplies IRONCLAW_REBORN_STORAGE_CUTOVER=legacy-layout-v1 after every old replica has stopped. Fail before mutation when cutover authority is absent or legacy state is ambiguous, unsupported, tampered, incompatible, or carries an external workspace import. The explicit ironclaw storage adopt command remains the recovery and workspace-ownership path. Change Type [x] Bug fix [ ] New feature [ ] Refactor [x] Documentation [x] CI/Infrastructure [x] Security [ ] Dependencies Linked Issue Epic: #7467 User behavior Startup now follows this bounded decision: The cutover environment value is a deployment attestation, not a process
nearai/ironclaw PR #7516 reports: Summary An operator can only obtain the IronHub register URL and install the hub-minted shared key through the CLI today, so a deployment cannot complete an agent link from the WebUI at all. This adds that surface to the Extensions page. The panel shows the register URL to paste into IronHub, reports whether a key is stored and whether the register gateway is actually running on one, accepts a key, and removes a stored key. IronhubLinkAdminService is declared in ironclaw_product_contracts and implemented in ironclaw_extension_manager::ironhub, next to RebornIronhubLinkService and IronhubSharedKey. No new dependency edges: that crate already depends on ironclaw_secrets and ironclaw_product_contracts, and already stores operator-set deployment credentials through the same substrate in admin_configuration.rs. The key is written to the encrypted standalone secret store under a fixed handle, never to plaintext state. IRONHUB_AGENT_SHARED_KEY keeps its existing precedence, so nothing about the current env-based deployment path changes. One ratchet raise: ironclaw_product_contracts 15909 to 15970, for the port and its wire DTOs. Declaration only. scripts/ci/composition-budget.toml is unchanged. Change Type [x] New feature [x] Security Linked Issue Related #5409.
nearai/ironclaw PR #7477 reports: Unified channel model: one ChannelAdapter per channel for inbound, replies, and notifications Implements docs/internal/design/2026-08-10-unified-channel-model.md end-to-end (§12 items 1–11 + §13 enforcement). Every channel — web-app, Slack, Telegram — is now ONE ChannelAdapter implementing inbound + reply + notifications; the only per-channel variation is the declared entrypoint and capabilities in its manifest; nothing channel-specific for inbound/outbound/notifications lives outside crates/extensions/packages/* (§0), enforced by a new architecture gate. 1. Inbound unification (§12 1–4) ChannelInboundSurfaceRequest / ProductInboundEnvelope generalized: trust is an enum (VerifiedInbound { evidence } | SessionCaller { caller }), binding is an enum (ExternalRef | OwnedThread { thread_id }). Sealed evidence minting is untouched (T1 webui middleware, T2 extension-host verifier; ratchet unchanged). Browser + OpenAI-compat submissions re-plumbed through the ONE webhook inbound core (admit_channel_inbound → submit_inbound_inner → durable IdempotencyLedger → InboundTurnService). The duplicate RebornServices::submit_turn tail (AcceptedWebUiMessage, replay_webui_send_message, …) is deleted; the command constant keeps its wire contract byte-for-byte (the 278-test reborn_services_contract suite passes unchanged). SubmissionLane { Webhook, Session } keeps lane differences as data on the one pipeline: persisted binding-id schemes are byte-identical to the old webui
Why it matters
Profile portability fails when durable records encode one deployment layout, and channel unification fails when inbound and outbound paths disagree on identity. The operator link is where those contracts become visible. The operator test is whether visible output, retained state and authority still describe the same event after retries, background work or restart.
Current
The primary record was open when captured on 2026-08-12. The tagged-release baseline was ironclaw-v1.1.1-rc.1 published 2026-08-10T13:58:58Z. Repository metadata, full source bodies, current pull requests and issues, releases, Google News, Hacker News, Lobsters, Metamesh and the rendered ClawCharts row were inspected. ClawCharts selected the subject; it did not prove the claim.
Evidence
The primary URL is https://github.com/nearai/ironclaw/pull/7456. Supporting records are https://github.com/nearai/ironclaw/pull/7516 and https://github.com/nearai/ironclaw/pull/7477. Source bodies, timestamps and states are preserved in the daily evidence bundle. Test counts and reproductions remain attributed to their authors unless identified as independently rerun.
Source boundary
Open work is described as open, closed work as closed, and operator reports as reports. A pull request is evidence of proposed or reviewed direction, not proof of a shipped release. Search residue, package mirrors and historically published source spines were excluded.
Operator take
Keep durable keys independent of profile paths, make link authority explicit, and test one message identity through inbound handling, reply routing, notification and restart. Preserve a before-state receipt, make the smallest reversible change, and verify the original failure independently.
Caveat
Public project records are mutable. Status, scope and evidence can change after publication. This brief records the inspected state and does not authorize changes to a reader’s deployment.
Source inspected; source state, environment and release boundary remain explicit.