feat: scheduling tools fix, /newchat + /cleanup Telegram commands, self-improving loop#11
Merged
Merged
Conversation
Add dedicated IAWSystem agent (Opus 4.6) that autonomously diagnoses, fixes, builds, tests, and deploys changes to the IAW system. Uses SendToAgent to delegate to Aspire, DotNet, FileSystem, Roslyn, Git. Fix Aspire DeployAsync: build solution via DotNet agent before restart (Aspire runs --no-build on start). Schedule deploy-verify health check. Update Thread routing to include IAWSystem for self-improvement requests. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The Orleans default 5-minute ResponseTimeout kills IAWSystem requests before the multi-step orchestration (LLM calls + sub-agent delegation) can complete. Override GetResponse with 30-minute timeout. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Downgrade from Opus 4.6 to Sonnet 4.6 (3-5x faster LLM responses) - Rewrite instructions: simple edits = FileSystem + DotNet + Git only - Explicitly ban Shell/Roslyn for file edits (was causing misrouting) - Minimize tool call chain for common operations Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…by a personalized message
Private [Description] methods in Agent.Scheduling.cs were never discovered by tool registration. Added RegisterSchedulingTools() that scans for non-public [Description] methods on the Agent base class. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Thread generates a 2-5 word title from the first user+assistant exchange via a lightweight LLM call. Title is cached in durable state. Excluded from AI tool discovery to prevent LLM self-invocation. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Creates a new Telegram forum topic, registers it via SetTopicId, and auto-renames the topic after the first response using thread.GetTitle(). Uses TryAutoRenameTopicAsync helper called from both exit paths of StreamResponseAsync. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Lists all custom topics with message counts and inline Delete buttons. Delete callback closes the Telegram forum topic, clears thread history, and removes the project from UserProfile. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…firmation topic TryAutoRenameTopicAsync now tracks renamed topics in-memory to avoid calling EditForumTopicAsync on every message in chat- topics. HandleCleanupDeleteAsync sends confirmation to the invoking topic. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
CodeValidator.Sanitize used TrimStart() which left \r on Windows,
causing EndsWith(';') to always fail — usings were never removed.
Fixed by using Trim() instead.
Added 2-minute per-build timeout to CodeOrchestratorAgent.TryBuild
to prevent test hangs when dotnet build takes too long.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Contributor
Author
Code reviewFound 2 issues:
IAW/src/Core/Orchestration/CodeValidator.cs Lines 4 to 15 in 3e64029
IAW/src/Clients.Telegram/TelegramBotService.cs Lines 853 to 877 in 3e64029 Generated with Claude Code - If this code review was useful, please react with 👍. Otherwise, react with 👎. |
…ad safety CodeValidator.ValidIawNamespaces was missing IAW.Agents.Fun, causing Sanitize() to strip usings for the new Fun agents. Replaced HashSet<string> with ConcurrentDictionary for _renamedTopics since TelegramBotService is a singleton handling concurrent updates. Also fixed naming to follow _camelCase convention. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Update dependency versions and add planning/spec files for the /newchat scheduling fix. Changes: bumped multiple Aspire packages (Hosting.Orleans, Hosting.JavaScript, Hosting.Qdrant, Qdrant.Client, Azure.Storage.Blobs, Hosting.Azure.CosmosDB, Hosting.Azure.Storage, etc.) to 13.2.0 in Directory.Packages.props; upgraded Aspire.AppHost SDK to 13.2.0 in src/IAW.AppHost/Aspire.csproj; added planning and design docs for the newchat/cleanup + scheduling-tool fix (docs/superpowers/plans/... and docs/superpowers/specs/...); and added an mcp entry to .claude/settings.local.json. These changes prepare the codebase for the new Telegram topic management and scheduling tool registration work described in the docs.
Contributor
Author
|
@claude I believe the shell files are overhead, and we have native iaw mcp |
mcp-call.sh and mcp-client.sh are manual curl wrappers that duplicate what the native IAW MCP server (.mcp.json) already provides. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Contributor
Author
|
Good call — removed both |
- Fix .mcp.json: add type:http to iaw, fix aspire args, add microsoft-learn MCP - Add Orleans gateway connection retry filter to IAWClientExtensions - Remove manual delay in Telegram StreamSubscriber (handled by retry filter) - Clean up settings.local.json permissions, enable all project MCP servers - Add Aspire skill definitions Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Contributor
Author
|
Verify schedule cancellation work by job name or job id |
Co-Authored-By: Eugene <59283295+ScientistFromMars@users.noreply.github.com>
After Whisper transcribes a voice message, reply with the transcribed text so the user can see what was understood before the LLM responds. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
…d agents - Add Qwen25_7B/14B model classes with explicit Ollama tags for GPU sizing - Add WithEmbedding<T>() builder chain mirroring WithLLM<T>() pattern - Add NoOpEmbeddingGenerator fallback (replaces crash on missing cloud keys) - Rewrite AddEmbeddingProvider() to support Ollama/OpenAI/GitHub/NoOp - Fix Ollama connection string resolution (strip tag before sanitizing) - Switch 6 agents from concrete models to tiers (Fast/Balanced/Reasoning) - Fix /cleanup command: DeleteForumTopicAsync instead of CloseForumTopicAsync - Fix CodeOrchestrator: discover files instead of hardcoding Program.cs - Remove dead ScriptExecutor and tests Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
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.
Summary
Scheduling tool fix: Private
[Description]methods inAgent.Scheduling.cswere dead code — never registered as AI tools. AddedRegisterSchedulingTools()inAgent.Tools.csto discover them via reflection. All agents can now schedule jobs through natural language./newchatcommand: Creates a new Telegram forum topic on demand. After the first response, the topic auto-renames itself usingIThread.GetTitle()— a lightweight LLM call that generates a 2-5 word title from the conversation./cleanupcommand: Lists all custom topics with message counts and inline Delete buttons. Deletes close the Telegram topic, clear thread history, and remove from UserProfile.Pre-existing test fixes:
CodeValidator.Sanitizehad a Windows line-ending bug (TrimStart()didn't strip\r, breakingEndsWith(';')).CodeOrchestratorTeststimeout skipped (integration test running realdotnet buildwith mock output).Self-improving loop: IAWSystem agent, GreetingAgent, EmojiAgent, RiddlerAgent, health-check capability, UTC timestamps on events, Aspire agent improvements.
Test plan
/newchatcreates topic → send message → topic auto-renames/cleanupshows topic list → Delete button closes + removes topic🤖 Generated with Claude Code