IronClaw

IronClaw adds run timing evidence to exported conversations

IronClaw proposes adding run timing evidence to downloadable conversation artifacts. A daily failure taxonomy and Slack documentation correction broaden the record from transcript text to execution timing, known failure classes and actual channel permissions.

← Back to homeOriginal source ↗

nearai/ironclaw PR #7735 is the inspected primary source: “feat(artifact): add run timing evidence to downloadable conversation artifacts.” The related records below were inspected as supporting context rather than independent confirmation.

The facts

- nearai/ironclaw PR #7735 was created 2026-08-18T22:20:13Z and was open at inspection; its title is “feat(artifact): add run timing evidence to downloadable conversation artifacts.” - nearai/ironclaw issue #7736 was created 2026-08-19T00:15:16Z and was open at inspection; its title is “Daily ironclaw failure taxonomy — 2026-08-19.” - nearai/ironclaw PR #7737 was created 2026-08-19T00:29:56Z and was open at inspection; its title is “docs(channels): fix Slack setup drift — widened scopes, reactions:write, full admin field list.” - The repository reported 12605 stars, 1510 open issues, default branch main, and last push 2026-08-19T01:04:17Z. - The latest tagged-release baseline checked was ironclaw-v1.3.0-rc.2 published 2026-08-18T17:20:17Z.

What changed

nearai/ironclaw PR #7735 reports: Summary Adds a timings block to the user-downloadable run/thread artifact JSON: per-iteration inference duration, per-tool duration, tool-call counts, and run totals — so a bug report carries timing evidence instead of the user saying "it felt slow". Adds a **durable floor**: per-message created_at/updated_at are now exported. They were already loaded from the database and thrown away. These survive a restart, so an artifact downloaded a day later still shows step-to-step gaps even when the exact timings are gone. **No database changes, no new persistence, no migrations, no agent-loop changes.** Every number already existed — this PR only projects them into the export at read time. The timing block carries **no prompt text, no tool arguments, no tool results**. Names, statuses, counts, durations only. Schema constants deliberately stay at v1 (see Compatibility). The problem A user hits a 90-second turn, clicks "download this run", and attaches the JSON to a bug report. Today that file contains the messages, run status, usage and cost, and a best-effort tail of process logs — **and no timing at all**. You cannot tell from it whether the turn was one slow inference or twelve fast tool calls. The artifact does not even carry message timestamps. The measurements already exist. The agent loop stopwatches both halves of every iteration and writes them to a process-local operator

nearai/ironclaw issue #7736 reports: Daily ironclaw failure taxonomy — 2026-08-19 Suites analyzed enterprise (10 non-pass) — This run's 10 non-pass tasks are dominated by a weak model (Qwen/Qwen3.8-27B) failing to complete multi-step enterprise automations: it frequently never creates the scheduled routine at all (L1 FAIL) or never performs the required delivery (email/Telegram/Slack), and misuses tools — literal unexpanded shell variables in URLs, schema-invalid pagination arguments, and calling real external endpoints instead of the emulated world. One clean ironclaw harness defect stands out: the auto-bootstrapped NEAR AI web_search credential cannot be leased at dispatch time, so a single off-task web_search call terminalizes the whole run as BlockedAuth (qa-8c). Two tasks fail against a custom MCP endpoint the emulated world never serves (bad_eval/infra), and the InputEncode/auth_required signals are correctly-recoverable model-visible outcomes the model failed to route around. _ironclaw rev(s): a7f813d27087a38dac990061a6bddfa3e5e25e54_ Harness fix candidates (ranked by blast radius) | # | Category | Tasks | Suites | Confidence | Files | |---|---|---|---|---|---| | 1 | nearai-websearch-credential-staging-blocks-run | 1 | enterprise:1 | 0.50 | crates/app/ironclaw_composition/src/llm_admin/nearai_mcp.rs:56, crates/kernel/ironclaw_host_runtime/src/obligations/handler.rs:830, crates/kernel/ironclaw_host_runtime/src/services.rs:403 | 1. nearai-websearch-credential-staging-blocks-run — 1 tasks Root cause:** bootstrap_nearai_mcp (crates/app/ironclaw_composition/src/llm_admin/nearai_mcp.rs:29-196) submits the NEAR AI API key as a product-auth credential under AuthProductScope::new(resource_scope, AuthSurface::Api), where resource_scope is built with a fresh InvocationId::new() and owner_scope.without_thread_and_mission() (lines 56-59, 90), and marks the account Configured (has_access_secret=true). At turn time the obligation handler stages it

nearai/ironclaw PR #7737 reports: Summary docs/channels/slack.mdx was rewritten on 2026-08-12 (#7550) and drifted the next day: the manifest's user scopes still miss reactions:read, reactions:write, im:write (widened in #7515), and the bot scopes miss reactions:write, which the → working indicator (#7446) needs. The **Enter the deployment configuration** step now lists all eight fields on the Admin → Configuration card (Installation ID, Bot user ID, OAuth client id/secret were unmentioned) with where each comes from in the Slack app UI. The **Configuration** section still pointed at "the Slack card under Extensions" and "channel routing"; it now matches the setup steps (Admin → Configuration) and describes presence-based admission — no allowlist/routes, invite the bot to admit a channel, shared channels answer only on explicit mention (#7445), DMs always. Slash-command usage_hint corrected to the real commands (/model use, /new, /stop); a note explains that pre-widening accounts get a reconnect prompt on first use of the new tools. Internal setup-slack-for-reborn-binary.md callout still taught the retired "Extensions → Channels tab → Configure" path; updated to Admin → Configuration. Change Type [x] Documentation Linked Issue Related #7550, #7515, #7446, #7445 Validation [x] python3 scripts/ci/docs_publication_boundary.py [x] python3 scripts/ci/check-guidance.py [ ] cargo fmt / clippy / build — Not applicable: docs only Test Strategy User behavior: An operator following the Slack page ends up with a Slack app whose scopes match the

Why it matters

A transcript without timing or failure classification is weak operational evidence. Exported artifacts should explain when work ran, how it failed and which channel permissions shaped delivery. The operator test is whether the system remains bounded and its receipts still describe the action after failure, retry or restart.

Current

The primary record was open when captured on 2026-08-19. The tagged-release baseline was ironclaw-v1.3.0-rc.2 published 2026-08-18T17:20:17Z. 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/7735. Supporting records are https://github.com/nearai/ironclaw/issues/7736 and https://github.com/nearai/ironclaw/pull/7737. 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

Export monotonic timing and terminal state with conversations, keep a dated failure taxonomy, and test channel documentation against the permissions the adapter uses. 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.