Skip to content

chore: promote staging to staging-promote/7008e9a8-24463010725 (2026-04-15 17:22 UTC) - #2505

Merged
henrypark133 merged 1 commit into
mainfrom
staging-promote/427783da-24468358894
Apr 18, 2026
Merged

henrypark133 merged 1 commit into
mainfrom
staging-promote/427783da-24468358894

Conversation

@ironclaw-ci

@ironclaw-ci ironclaw-ci Bot commented Apr 15, 2026 •

Copy link
Copy Markdown
Contributor

Auto-promotion from staging CI

Batch range: a53eac5c2dec6b6cd5c08189086093fde64aa9cb..427783da673e572712ed1e6ba05dbacfed922f1a
Promotion branch: staging-promote/427783da-24468358894
Base: staging-promote/7008e9a8-24463010725
Triggered by: Staging CI batch at 2026-04-15 17:22 UTC

Commits in this batch (50):

Current commits in this promotion (0)

Current base: main
Current head: staging-promote/427783da-24468358894
Current range: origin/main..origin/staging-promote/427783da-24468358894

  • (no non-merge commits in range)

Auto-updated by staging promotion metadata workflow

Waiting for gates:

  • Tests: pending
  • E2E: pending
  • Claude Code review: pending (will post comments on this PR)

Auto-created by staging-ci workflow

…#2326)

When tools fail (e.g. "No lease for action"), the orchestrator appended
the raw error JSON as an ActionResult message. The LLM frequently
ignored these errors and claimed success — a trust/hallucination issue.

Prefix failed action results with "[ACTION FAILED] <tool>:" so the LLM
receives an unmissable signal that the tool call did not succeed. The
Rust executor already sets `is_error: true` on lease and policy failures.

Closes #2279

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@github-actions github-actions Bot added size: S 10-49 changed lines risk: low Changes to docs, tests, or low-risk modules contributor: core 20+ merged PRs labels Apr 15, 2026
@claude

claude Bot commented Apr 15, 2026

Copy link
Copy Markdown

Code review

Found 1 issue:

  1. [HIGH:85] In Python orchestrator, action_name extracted from r.get('action_name') could be None, causing a TypeError when concatenated with strings on the new line 744. The fallback logic (call.get('name', '')) only applies if the key doesn't exist—if the key exists with a None value, string concatenation fails. Should use defensive handling: str(action_name or call.get('name', 'unknown')) or an f-string.

https://github.com/anthropics/ironclaw/blob/427783da673e572712ed1e6ba05dbacfed922f1a/crates/ironclaw_engine/orchestrator/default.py#L739-L745

Line 740: action_name = r.get("action_name", call.get("name", ""))
Line 744: output_str = "[ACTION FAILED] " + action_name + ": " + output_str

Base automatically changed from staging-promote/7008e9a8-24463010725 to main April 18, 2026 00:59
@henrypark133
henrypark133 merged commit 427783d into main Apr 18, 2026
111 of 147 checks passed
@henrypark133
henrypark133 deleted the staging-promote/427783da-24468358894 branch April 18, 2026 01:00

This branch had an error being deployed

1 failed and 5 inactive deployments
ironclaw-nearai / production — 427783da Deployed Apr 15, 2026 by railway-app[bot]
Near Foundation Ironclaw / production — 427783da Deployed Apr 15, 2026 by railway-app[bot]
venice-ironclaw / production — 427783da Deployed Apr 15, 2026 by railway-app[bot]
cosmose-ironclaw / production — 427783da Deployed Apr 15, 2026 by railway-app[bot]
Ironclaw-QA / production — 427783da Deployed Apr 15, 2026 by railway-app[bot]
humble-cat / staging-cameron — 427783da Deployed Apr 15, 2026 by railway-app[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

contributor: core 20+ merged PRs risk: low Changes to docs, tests, or low-risk modules size: S 10-49 changed lines staging-promotion

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants