@@ -20,7 +20,7 @@ func (s *Session) Prompt(text string) error {
2020
2121 var msgs []agentcore.AgentMessage
2222 if ! s .preambleInjected && s .deferredToolsPreamble != "" {
23- msgs = append (msgs , agentcore . UserMsg (s .deferredToolsPreamble ))
23+ msgs = append (msgs , injectedUserMsg (s .deferredToolsPreamble ))
2424 s .preambleInjected = true
2525 }
2626 msgs = append (msgs , s .buildUserMessage (agentcore .TextBlock (text )))
@@ -35,7 +35,7 @@ func (s *Session) PromptWithBlocks(blocks []agentcore.ContentBlock) error {
3535
3636 var msgs []agentcore.AgentMessage
3737 if ! s .preambleInjected && s .deferredToolsPreamble != "" {
38- msgs = append (msgs , agentcore . UserMsg (s .deferredToolsPreamble ))
38+ msgs = append (msgs , injectedUserMsg (s .deferredToolsPreamble ))
3939 s .preambleInjected = true
4040 }
4141 msgs = append (msgs , s .buildUserMessage (blocks ... ))
@@ -426,6 +426,7 @@ func (s *Session) SwitchSession(id string) error {
426426 if err := s .agent .SetMessages (snapshot .Messages ); err != nil {
427427 return fmt .Errorf ("restore messages: %w" , err )
428428 }
429+ agentcore .ReactivateDeferred (s .allTools , snapshot .Messages )
429430 }
430431 if snapshot .Thinking != "" {
431432 thinkingLevel := agentcore .ThinkingLevel (snapshot .Thinking )
@@ -565,3 +566,11 @@ func (s *Session) Close() {
565566 store .Close ()
566567 }
567568}
569+
570+ // injectedUserMsg creates a user message marked as system-injected via metadata.
571+ // Auto-naming and session listing skip messages with this marker.
572+ func injectedUserMsg (text string ) agentcore.Message {
573+ msg := agentcore .UserMsg (text )
574+ msg .Metadata = map [string ]any {"injected" : true }
575+ return msg
576+ }
0 commit comments