feat(runtime): add Thinking pet state with 30s idleAfter for LLM processing gap#1
Open
JJ-zhang-92 wants to merge 1 commit into
Open
feat(runtime): add Thinking pet state with 30s idleAfter for LLM processing gap#1JJ-zhang-92 wants to merge 1 commit into
JJ-zhang-92 wants to merge 1 commit into
Conversation
…ps pet in thinking during LLM processing
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.
Problem
AI agent tools complete in ~1s but the LLM takes 5-20s to process results and generate text. During this gap, CoPet maps the "thinking" event to none (dropped) �� the pet transitions to Idle, leaving users to wonder if the agent crashed.
Changes (6 files, 20 lines)
Rust runtime
PetStateId::Thinkingvariant to the enum"thinking"event kind toThinkingstateidleAfter(vs the default 1.5s for other temp states) �� LLM processing takes seconds, not millisecondsFrontend
"thinking"toPetStateIdtype unionuseAgentState.tspetAnimation.tsusePetSounds.tsWhy 30s instead of 1.5s
Upstream uses
TEMP_STATE_IDLE_AFTER_MS = 1_500for all temporary pet states. That works for Running/Review/Jumping �� these are transient tool visualizations. But Thinking represents an LLM processing gap that lasts 5-20s. A 1.5s timeout would cause the pet to snap into Idle while the agent is still working, defeating the purpose of the state.Backward compatibility
Nonetoday)Tested
{"kind":"thinking"}via local runtime endpoint �� CoPet returnsstate: thinkingwithidleAfterMs ~30stool.beforeevents still get 1.5s idleAfter (unchanged)