Repository navigation
Conversation
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.
Fixed
read_file,search_literal,find_*,recall_memory) failed inside the RLM sandbox withThis event loop is already running. RLM agents now run off the event loop usingasyncio.to_thread(), and tool calls are bridged back to the event loop viaasyncio.run_coroutine_threadsafe(). New moduleagents/rlm_tools.pyprovidesbuild_rlm_agent(),run_rlm(), andlog_rlm_outcome().Issue.confidencedefault (0.8) was below thereview.min_confidencedefault (0.81). The code_review, doc and supply_chain prompts and theIssue.confidencefield description now request a confidence ("≥0.9 verified with tools; 0.7–0.9 strong evidence; <0.7 weak"). The newfilter_by_confidence()helper (agents/review/helpers.py) is used by all three reviewers and logs raw and kept counts per scope.content_filter, so code_review returned nothing (Empty LM response). The trigger wasdspy.RLM's stockreasoningfield description ("Think step-by-step: what do you know? What remains? Plan your next action."). NewCodespyRLM(agents/context_safe.py) replaces it with "Short plan for the next step." and is used bybuild_rlm_agent()and theContextSafeRLM fallback.Invalid Python syntax. dspy'sPythonInterpreterinjects inputs asname = repr(value), and an Enum repr (<IssueCategory.BUG: 'bug'>) is not valid Python, so every execution of code_review (categories) and supply_chain (category) failed before the model's code ran.CodespyRLMnow passes Enum inputs as their plain values.get_tree() got an unexpected keyword argument 'max_depth',Tool 'read_file' rejected arguments: ['path']). dspy.RLM copies each tool's Python signature into the sandbox, and the async-to-sync bridge exposedsync_wrapper(**kwargs), so the sandbox wrapper accepted only a literalkwargsargument.bridge_tools_to_loop()now sets the bridged function's signature from the tool's args.Added
DiagnosticTwoStepAdapter(agents/diagnostic_adapter.py) is now the default adapter inconfigure_dspy()andlm_context(), replacingTwoStepAdapter. When a response is empty or null, it logs the model,max_tokens,reasoning_effort, usage,finish_reason, reasoning/thinking blocks, tool calls and request size. Acontent_filterrefusal raisesAdapterParseError("model refused (content_filter)")and writes a dump to<review.cache_dir>/refusals/<timestamp>-<signature>.json. Dumps contain the full prompt, including reviewed code. Only keys ending in_key,_secretor_tokenare redacted.config.get_loaded_config_path()),min_confidence, andmax_iters/max_llm_callsfor code_review, doc and supply_chain.log_rlm_outcome()warns when an RLM run ends in the "Extract forced final output" fallback after tool errors, with the error count and the first error. RLMverboseis enabled when the log level is DEBUG (build_rlm_agent()and theContextSafefallback).Changed
review.min_confidence(REVIEW_MIN_CONFIDENCE) is now 0.5 (was 0.81). This allows issues to be reported even when the LLM does not explicitly set a confidence score (theIssue.confidencedefault is 0.8, which now passes the threshold).codespy.yaml,.env.exampleand the actionmin-confidencedescription are updated. Override it in codespy.yaml or with the environment variable if needed.