Skip to content

fix: surface a plain-string interrupt's payload in the HITL prompt (Closes #95) - #96

Merged
dkedar7 merged 1 commit into
mainfrom
fix/95-string-interrupt-floor
Jul 25, 2026
Merged

dkedar7 merged 1 commit into
mainfrom
fix/95-string-interrupt-floor

Conversation

@dkedar7

@dkedar7 dkedar7 commented Jul 25, 2026

Copy link
Copy Markdown
Owner

Closes #95.

A bare-string interrupt("Approve deleting ALL files in /home? (y/n)") — the most common LangGraph HITL form — rendered (no action details provided), asking the user to Approve/Reject blind. Dict payloads rendered fine; only the scalar case was lost.

The CLI renderer was never the problem — format_interrupt_request already returns str(action) for a scalar. The payload was dropped two layers up in langstage-core's on_interrupt handler, which ran json.loads() on the string, failed (a plain question isn't JSON), and fell back to an empty request. Fixed in langstage-core 1.0.28 on the chunk wire the CLI consumes; this PR raises the floor to >= 1.0.28 so pip install langstage-cli gets it.

Verified end to end (the frame now carries the string, the renderer shows it):

action_requests: ['Approve deleting ALL files in /home? (y/n)']
  cli renders -> 'Approve deleting ALL files in /home? (y/n)'

Regression test pins both the frame payload and the render. Full suite 143 passed.

🤖 Generated with Claude Code

https://claude.ai/code/session_011HWCfJii6gXd3XL3Gq3W8B

…#95)

A bare-string interrupt("Approve deleting X?") rendered "(no action details
provided)" — the user was asked to Approve/Reject blind. The CLI renderer already
handled a scalar (format_interrupt_request returns str(action)); the payload was
dropped upstream in langstage-core's on_interrupt handler (json.loads on a
non-JSON string -> empty request). Fixed in langstage-core 1.0.28 (chunk wire the
CLI consumes); this raises the core floor to >= 1.0.28 so a fresh install gets it,
with a regression test pinning the frame + render.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_011HWCfJii6gXd3XL3Gq3W8B
@dkedar7
dkedar7 merged commit 6e4b444 into main Jul 25, 2026
11 of 12 checks passed
@dkedar7
dkedar7 deleted the fix/95-string-interrupt-floor branch July 25, 2026 06:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

HITL: a plain-string interrupt("...") shows "(no action details provided)" — the human approves blind

1 participant