Fix KeyError when displaying logs for tools without a properties key - #1534
Open
ikatyal2110 wants to merge 1 commit into
Open
Fix KeyError when displaying logs for tools without a properties key#1534ikatyal2110 wants to merge 1 commit into
ikatyal2110 wants to merge 1 commit into
Conversation
llm logs crashes with KeyError: 'properties' when a tool stored in the
database has an input_schema that does not contain a 'properties' key.
This happens when a plugin creates a Tool instance directly with the
default empty input_schema instead of using Tool.function(), which
always adds 'properties' via Pydantic schema generation. The fix uses
.get('properties', {}) so schemas without that key display correctly.
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.
In
llm/cli.pyline 2241,logs_listaccessestool["input_schema"]["properties"]when rendering the tool section ofllm logs. A plugin can create aToolinstance directly with the defaultinput_schema={}rather than going throughTool.function(), which always adds a"properties"key via Pydantic. Any such tool stored in the database causesllm logsto abort withKeyError: 'properties'. The fix changes the access totool["input_schema"].get("properties", {}), and a new test reproduces the crash by rewriting a logged tool's schema to omit that key.Generated by Claude Code