fix: render tool frames for a non-streaming agent (#91) + correct /status docs (#90) - #92
Merged
Merged
Conversation
…tus docs (#90) #91: an agent whose messages are produced without token streaming delivers its turn via the AG-UI snapshot path, and langstage-core's snapshot handler yielded text only -- so the `● tool_name` / `↳ result` the CLI already knows how to draw never arrived, and a tool-call-only turn rendered nothing while --verify reported success. Root cause + fix are in langstage-core; this raises the floor to >=1.0.24, which emits tool_calls/tool_result on the snapshot wire so print_chunk renders them. Tool frames stay suppressed in the quiet/scriptable single-shot path (the 0.6.20 "tool chatter" contract) -- unchanged. #90: the README /status line still advertised a "sync/async mode" field that 0.6.21 removed from the runtime (#88). Corrected to agent, thread, verbose, cwd. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011HWCfJii6gXd3XL3Gq3W8B
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011HWCfJii6gXd3XL3Gq3W8B
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_011HWCfJii6gXd3XL3Gq3W8B
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #91 and #90.
#91 — tool calls/results invisible for a non-streaming agent
An agent whose messages are produced without token streaming — a custom node calling
model.invoke(), a non-streaming provider, a rule-based node (the "Creating Your Own Agent" shape) — delivers its turn via the AG-UI snapshot path, andlangstage-core's snapshot handler yielded text only. So the● tool_name/↳ resultthatprint_chunkalready knows how to draw never arrived, and a tool-call-only turn rendered nothing while--verifyreported success.The root cause and fix are in langstage-core (fixed there in 1.0.24: the snapshot branch now emits
tool_calls/tool_result). This release raises the floor to >= 1.0.24 and adds an integration test driving the issue's exact graph through the CLI stream path.Verified end to end — the issue's
tool_agent.py, rendered throughprint_chunkon a UTF-8 terminal:Two honest notes:
langstage-cli -a x "msg"piped), where stdout carries only the reply text — the "tool chatter" contract from 0.6.20. So a tool-call-only turn is still empty output in that mode (it has no text reply). If you'd rather scriptable mode surface tool frames, that's a deliberate contract change worth its own issue — I didn't flip it unilaterally.print_chunkrendering●/↳raisesUnicodeEncodeError(non-quiet mode) — the same latent glyph-encoding bug as the HITL menu's❯/✓/✗. Pre-existing, not introduced here; worth a separate ASCII-fallback sweep.#90 — README
/statusdoc drift0.6.21 (#88) removed the "sync/async mode" line from
/statusand updated the CLI Options table +[ui] async_modeexample, but missed the/statusentry in the Commands list. Corrected toagent, thread, verbose, cwd— matching the runtime.Verification
Full suite 140 passed.
🤖 Generated with Claude Code
https://claude.ai/code/session_011HWCfJii6gXd3XL3Gq3W8B