Repository navigation
Collaboration routines: cap mail in agent context, report timeouts, keep skills across pod rollouts - #3253
Merged
Conversation
Contributor
✅ Snyk checks have passed. No issues have been found so far.
💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse. |
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
Custom routines on the deployed instance were cancelled at the 10-minute agent limit, and the owner got nothing. Two causes:
ListM365Mail, which returns up to 100 messages per call, each with a body of up to 10,000 characters by default (the model can ask for more). Reading the inbox and the sent folder filled most of Laguna's 250K-token window. The harness only prunes once the window is nearly full, so every turn still sent about 200K tokens. Each turn took 1-2 minutes, and the run hit the cap.LoadSkillfailed withSkillStager: skill '...' has no skill content folder. A skill project is pushed to cloud storage once, when it is created, beforeSKILL.mdis written, and never again. A new pod pulls that empty copy.A timed-out run also showed "Check your Microsoft connection and Collaboration model" in Routines, and no email or Teams message reached the owner.
Changes
Cap mail per tool call (
CollaborationToolResults)ListM365Mailresult shares one 30,000-character body budget across its messages: 50 messages get 600 characters each, 5 get 6,000. When bodies are cut, anotetells the model to list fewer messages or read one thread withconversationId.Report timeouts (
WorkRoutine,AutomationConstants,AutomationRunExecutionService)AutomationConstants.AGENT_WAIT_TIMEOUT_ERROR.none. It's sent while the owner's Microsoft token is still attached to the run. This applies to every routine kind, but only to timeouts.MicrosoftTeamsSendChatMessageReactor.SELF_CHAT_IDis now public so the note can use it.Push skill content to cloud storage (
SkillProjects, skill reactors,CollaborationSkillFiles)SkillProjects.pushContent(projectId)pushes the project'sapp_rootfolder, the same folderSaveAssetReactorpushes. The push is a sync, so deleted files stay deleted. It does nothing outside a cluster.CreateSkillReactor,UpdateSkillReactor,CloneSkillReactor, andCollaborationSkillFiles.publish(after its git commit).