Repository navigation
Implement the medium-priority backlog (items 13, 15-18) - #14
Merged
Merged
Conversation
- Resume: unanswered tool calls in a loaded transcript run before the first model call; an invalid transcript raises TranscriptError up front. - ToolSpec.parallel_safe: a turn calling an unsafe tool runs sequentially. - Settings.timeout_seconds / LLM_TIMEOUT_SECONDS, passed to every provider builder; an explicit timeout beats a supplied http_client's. - OpenAI model-aware quirks: o-series models do not get parallel_tool_calls. - Tracing: warn on a second configure_tracing() and on a traced run with no provider installed. Item 14 needs a live call and stays open. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
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.
What
Implements the medium-priority items of
BACKLOG.md: 13, 15, 16, 17 and 18, and records the live check for 14. Stacked on #13, so the base isfeature/high-priority; retarget tomainonce #13 merges.Why
parallel_tool_calls, which was sent on every request.configure_tracing(), ortrace=Truewith no provider, silently discarded spans.Changes
check_invariants()runs, so a bad transcript raisesTranscriptErrorbefore any model call.ToolSpec.parallel_safeand@tool(parallel_safe=...): a turn calling an unsafe tool runs all its calls sequentially, in call order.Settings.timeout_secondsandLLM_TIMEOUT_SECONDS: replaces the read timeout of the OpenAI-compatible providers; for Anthropic it is the SDK's overall timeout. An explicit timeout now beats a suppliedhttp_client's.providers.openai.MODEL_QUIRKSandquirks_for_model(o1/o3/o4 omitparallel_tool_calls), plus aquirks=override onbuild_openai_client.configure_tracing()and one for a traced run with no provider installed.encrypted_contentwithoutinclude, and replay is accepted. No code change.Not done: resuming a turn that paused and then failed (13), other OpenAI families and OpenRouter/Modal in the quirks table (17), and the tracing detection is untested on older OpenTelemetry SDKs (18). ruff and mypy are clean, 586 tests pass, coverage 94.8%.
🤖 Generated with Claude Code