Bump Spectre.Console and Spectre.Console.Testing#43
Closed
dependabot[bot] wants to merge 368 commits intomainfrom
Closed
Bump Spectre.Console and Spectre.Console.Testing#43dependabot[bot] wants to merge 368 commits intomainfrom
dependabot[bot] wants to merge 368 commits intomainfrom
Conversation
- Mark Phase 0 as essentially complete with focus on agent DB-only source of truth - Note that specialist channel routing has been disabled and moved to Phase 1 - Update goal section to reflect current status Phase 0 completed work: - PR-01: Routing Mapping Persistence + Agent Model Properties ✓ - PR-02: Orchestrator Uses DB Agent Profiles Only ✓ - PR-03: Agent Delegation with Roles ✓ - PR-04: Main Agent Name from Config ✓ - PR-05b: Main-Agent Protection Rules ✓ - PR-06: Guardrails and Diagnostics ✓ Phase 1 future: Communication and Chat channel routing Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Add .claude/mcp-settings.json with nebula-rag server configuration - Update ROADMAP.md to switch Phase 1 and 2: - Phase 1 now: Communication and Chat (specialist channel routing, agent delegation) - Phase 2 now: Gateway Bridge API Refactor (previous Phase 1) - Phases 3-7 shifted down accordingly - Create plans/phase-1-communication-chat.md with detailed implementation checklist - Index ROADMAP.md and phase-1-communication-chat.md to Nebula RAG Phase 1 Key Features: - Specialist Channel Mappings (configurable channel → agent) - Agent Delegation Protocol (role-based, multi-agent conversations) - Communication Flow (direct vs orchestrated routing) Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Rewrote entire ROADMAP.md to fix duplicate Phase 2 entries: - Phase 1: Communication and Chat (NEW - specialist channel routing, agent delegation) - Phase 2: Gateway Bridge API Refactor (shifted from original Phase 1) - Phase 3: Gateway Channels and Chat Optimization (shifted from original Phase 2) - Phase 4-7: Shifted down accordingly Nebula RAG indexing note: Source cannot be updated via API due to Docker container filesystem access limitations. File content is correct in local repository. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Replaced monolithic Host/Discord/Telegram projects with 8-project clean architecture: Core, Data, Agents, Modules, Projects, Api, Dashboard, Gateway - Data layer owns all DB config (ServiceCollectionExtensions, DatabaseExtensions, DotClawDbContextFactory); Gateway has no EF/provider imports - Added Phase 0 agent services: IAgentQueryService, AgentQueryService, IAgentRoutingService, DotClawAgentRoutingService, DotClawStartupValidator, DotClawStartupValidationHostedService, AgentOrchestrator - Main-agent protection in AgentsController: DELETE blocked, key fields (Personality, Provider, Model, IsActive, Name) read-only via PUT - PostgreSQL loaded from .env via DOTCLAW__ prefix; SQLite fallback for dev - Auto-migration with drop+recreate on incompatible schema - Updated scripts to use DotClaw.slnx; added Phase0AgentComponents migration - All tests passing (3/3), 0 build warnings Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…gent delegation protocol
…g improvements
Core changes:
- Telegram long-polling (TelegramPollingService) — receives messages and routes
them through AgentOrchestrator → AgentRuntime → LLM → reply
- ClaudeLlmProvider and GitHubCopilotLlmProvider with real API calls;
LlmProviderFactory accepts IConfiguration for credential injection
- AgentRuntime.ProcessMessageAsync wired to ILlmProvider.CompleteAsync with
structured message list (system prompt + conversation history)
- IStartupGreetingService / StartupGreetingService — LLM-generated personalised
startup greeting with hardcoded fallback
- DotClawStartupValidator auto-provisions supervisor on first boot, patches
provider/model on existing agent, sends welcome to direct channels only
Onboarding / API:
- POST /api/setup/telegram — name-based setup, no GUID required
- POST /api/agents/name/{name}/import-personality — store raw markdown as
system prompt verbatim; sets ProfileSource = MarkdownProfile
- DELETE /api/channels/mappings/{id} — delete channel mapping by ID
- AgentsController PUT: Personality and Description now updatable for main agent
- IsDirect column on agent_channel_mappings (EF migration)
- CleanupSentinelAgentGuid migration removes bad 00000000-0000-0000-0000-000000000001 row
Skills:
- /add-telegram, /add-discord, /setup — SQL removed, API-only provisioning
- /import-personality — new skill, fetches live agent list as choice
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…aw.Api - plans/phase-1-multiagent-completion.md: new plan covering agent tool framework (read_file/list_directory/search_code/run_shell/git tools), multi-agent setup (Forge/Atlas/Relay), Dark spawning sub-agents at runtime, Telegram swarm multi-bot polling, and joke-contest integration test as the phase-1 acceptance scenario - TelegramService/DiscordService: upsert existing agent_platforms row on re-configure instead of throwing a unique-constraint violation - DotClaw.Api/Program.cs: wire up DotClawData, controllers, Telegram sender in the standalone Api project (was still default weatherforecast) - DotClaw.Data/ServiceCollectionExtensions: minor cleanup Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Tool framework:
- IAgentTool + IToolExecutor interfaces in DotClaw.Core/Tools
- Six tool implementations: read_file, list_directory, search_code,
run_shell (Unrestricted scope only), git_status, git_log
- ToolExecutor: dispatches by agent.Tools[], builds LLM system-prompt
appendix, parses tool-call JSON blocks from LLM responses
- AgentRuntime: tool-use loop (max 5 rounds) — detect {"tool":...}
JSON block, execute, append tool_result, re-prompt until plain answer
- AgentFactory: inject IToolExecutor + ILoggerFactory
- Agent.Tools[] + DbAgent.Tools[]: per-agent tool allow-list (JSON array)
- Migration: AddAgentToolsColumn adds tools column + TopicId int? on
agent_channel_mappings, updates unique index to include TopicId
- Gateway: registers all 6 tools as IAgentTool singletons + IToolExecutor
Telegram forum topics (message_thread_id):
- DbAgentChannelMapping.TopicId int? — null = all topics / wildcard
- Unique index changed to (AgentPlatformId, ChannelId, TopicId) so
different topic threads can be registered as separate mappings
- TelegramMessage.MessageThreadId parsed from getUpdates response
- TelegramPollingService passes TopicId through DelegationRequest
- TelegramSender.SendMessageAsync: optional topicId param, includes
message_thread_id in sendMessage payload when set
- ITelegramSender interface updated accordingly
- SetupTelegramRequest.TopicId — callers can register a bot into a
specific topic thread via POST /api/setup/telegram
- IChannelMappingRepository.AddChannelMappingAsync: topicId param
- DelegationRequest.TopicId field added to AgentOrchestrator
Other:
- /add-agent skill: complete flow — save md, POST /api/agents,
import-personality, verify; never invents content
- AgentsController: Tools exposed in protected PUT path for main agent
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- TryParseToolCall now accepts both nested {"params":{...}} and
top-level {"tool":"x","path":"..."} formats so LLMs that skip
the params wrapper no longer cause an empty-path loop
- Add StatusController at GET / returning active agent count and
endpoint listing instead of 404
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Replace in-memory conversation storage with DB-backed persistence: - AgentRuntime now loads/saves turns via IMessageRepository scoped to (agentId, channel, channelId, threadId) so each Telegram chat gets its own history window, and topic threads stay isolated - IAgentFactory.CreateRuntimeAsync accepts channel context; AgentFactory and AgentOrchestrator pass platform/channelId/threadId through - IMessageRepository gains GetRecentByChannelAsync for sliding-window history queries ordered oldest-first for LLM context - Tool-loop intermediate steps remain in-process only (not persisted) since they are reasoning steps, not conversation turns - Remove IMemoryService/InMemoryMemoryService from DI — no longer needed for conversation; the messages table is the single source of truth Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- SetupController: POST /api/setup/telegram now accepts optional agentId so sub-agents (Forge, Vector, Echo, Pulse) get their own name in the test message instead of the supervisor's - Added using DotClaw.Core.Domain.Agents to SetupController - /add-agent skill: Telegram setup step now passes agentId in the request - /edit-agent skill: new skill for editing agent config interactively, including Telegram reconfiguration as an editable field Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- LlmProviderFactory: register "anthropic" as alias for "claude" so
agents created with provider="anthropic" don't crash on startup
- ClaudeLlmProvider: fix model aliases to use correct proxy model names
(claude-haiku-4.5, claude-sonnet-4.6, claude-opus-4.6)
- ResolveModel: pass through full model IDs directly; support per-model
env overrides (ANTHROPIC_DEFAULT_{MODEL}_MODEL) for all aliases
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Clears all stored conversation messages for an agent. Useful after updating a personality so the new system prompt takes full effect without old context interfering. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…od and enhance MCP tool definitions
- Updated C# review checks to enforce concrete models in integration tests. - Revised AGENTS.md to clarify supervisor role and responsibilities. - Enhanced McpToolsController to return models directly instead of ActionResult. - Introduced IHttpClientFactory for HttpMcpClient to improve HTTP client management. - Refactored MCP tools to utilize dependency injection for client creation. - Added new architecture, coding, quality, security, and workflow instructions. - Established mandatory boundaries for persistence and migration ownership. - Improved documentation standards and completion checks for code changes.
- Remove redundant System.Text.Json package reference (built-in to .NET 10.0) - Set EF Core Database.Command and HttpClient logs to Warning level - Convert internal service logs from Info to Debug (validator, polling, sender) - Simplify startup validation messages Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
… Test Plans - Deleted phase-1-multiagent-completion.md as part of restructuring. - Removed phase-1-rag-summary.md to streamline documentation. - Introduced phase-1-communication-api.md detailing the implementation of OpenClaw-style gateway APIs. - Added phase-1-communication-test.md to outline the test plan for validating new API endpoints.
…and refine self-improvement program
This reverts commit 1305062.
…rride When run from Claude Code, DOTNET_CLI_HOME is set to /tmp/dotnet-cli-home, causing dotnet tool install to target the wrong directory. Resolve the real user home via getent and pass it explicitly via HOME= prefix so the tool lands in ~/.dotnet/tools where the user's PATH expects it. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
DOTNET_CLI_HOME overrides HOME for dotnet tool install, causing the tool to land in /tmp/dotnet-cli-home/.dotnet/tools instead of ~/.dotnet/tools. Use env -u to unset it so the tool installs to the correct user-owned location. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
LoadAll searches CWD ancestors for .env, which misses the repo .env when dotclaw is run from an unrelated directory. After LoadAll, resolve the repo root via FindAny and explicitly load its .env so all configured env vars are available regardless of working directory. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Instead of patching appsettings.Development.json (which has no effect on a running host), the test command now stops the gateway, restarts it with Logging__LogLevel__Default=Debug injected as an environment variable, runs the k6 tests, then restarts again at Information level. Debug logs are now visible in dotclaw logs --tail during test runs. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The resx glob error (MSB3552) only occurs on cold dotnet run builds. Restarting with --no-build reuses the existing build artifacts, avoiding the spurious MSBuild error while still injecting Logging__LogLevel__Default. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
dotnet run --no-build defaults to Debug configuration, but the gateway is built in Release by dotclaw start. Add --configuration Release so the restart finds the correct binary in .artifacts/bin/Release/. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Rename install.sh/install.ps1 → scripts/publish.sh/publish.ps1 - Add dotnet publish --self-contained false for gateway and dashboard to ~/.claw/ - Write ~/.claw/install.json manifest (repositoryRoot, gatewayPath, dashboardPath) - Add InstallManifest model and InstallManifestLocator service - Refactor LocalDotClawHostStarter to run published binaries directly (drop dotnet run) - Move PID/log files from .artifacts/ to ~/.claw/ - Extend RepositoryRootLocator.FindAny() to fall back to install.json - Add dotclaw update command (git pull + publish.sh --skip-tests) - Drop repositoryRootResolver from GatewayCommandPreflightService Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Rename install.sh/install.ps1 → scripts/publish.sh/publish.ps1 - Add dotnet publish --self-contained false for gateway and dashboard to ~/.claw/ - Write ~/.claw/install.json manifest (repositoryRoot, gatewayPath, dashboardPath) - Add InstallManifest model and InstallManifestLocator service - Refactor LocalDotClawHostStarter to run published binaries directly (drop dotnet run) - Move PID/log files from .artifacts/ to ~/.claw/ - Extend RepositoryRootLocator.FindAny() to fall back to install.json - Add dotclaw update command (git pull + publish.sh --skip-tests) - Drop repositoryRootResolver from GatewayCommandPreflightService Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add -p:ErrorOnDuplicatePublishOutputFiles=false to gateway and dashboard publish steps in both publish.sh and publish.ps1. The SDK raises NETSDK1152 when multiple referenced projects each contribute an appsettings.json to the same flat output directory; suppressing the error is safe because the gateway's own appsettings wins via last-write ordering. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ay and dashboard - Pass ASPNETCORE_URLS so published binaries bind to configured port instead of Kestrel default 5000 - Load ~/.claw/.env before starting gateway and dashboard processes - Copy repo .env to ~/.claw/.env during publish - Extract ApplyDotEnv() helper to avoid duplication Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
feat: improve CLI start, status, and logs display with Spectre.Console panels feat: enhance publish scripts for single-file output and agent container image build fix: increase timeout for SearchCodeTool and improve cancellation handling fix: adjust log level filtering in LiveLogLoggerProvider fix: add composite index comment in DotClawDbContext for clarity fix: update assembly retrieval method in Gateway Program.cs fix: change default log level to Debug in development settings fix: refine log level settings in production appsettings.json
Tests hardcoded Linux paths which fail on Windows. Use Path.Combine and Path.GetFullPath for assertions so they pass on any platform. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Remove legacy install.ps1, install.sh, and INSTALLER-DESIGN.md - Add process stop for running Gateway/Dashboard before publish - Route .env writes to ~/.claw/.env when running from published install - Add UseStaticFiles middleware for proper Blazor static file serving Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…ing (#34) - Add GatewayHubRelay hosted service that connects to gateway's /hubs/dashboard and relays all orchestration events to AgentHub clients - Simplify DashboardSignalRChatOrchestrator to only send messages via API, letting the relay handle response streaming - Add new AgentHub client methods for tool completion, agent busy state, dispatch lifecycle, and document notifications - Clean up stale plan docs and superpowers specs - Add design doc and dashboard features plan Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
…p improvements Merge traffic light dots and agent tabs into a single title bar row matching Warp terminal aesthetics. Includes multi-tab chat wiring, AES encryption enhancements, setup prompt defaults refactor, and gateway relay improvements. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Updated TerminalPage.razor to simplify layout structure by removing unnecessary section and using a div with class "chat-shell". - Expanded app.css with new styles for chat UI components, including sidebar, messages area, input bar, and agent info panel. - Introduced design system variables for consistent theming across chat components. - Improved scrollbar styles for various chat elements to enhance user experience.
New tools: edit_file, glob, task_manage, invoke_skill, cron_manage Skills system: SkillLoader scans agent-assets/skills/ for SKILL.md files Hooks pipeline: PreToolUse, PostToolUse, SessionStart, Stop events Plugin loader: discovers plugin.json manifests from agent-assets/ Subagent types: explore, code-reviewer, general-purpose, plan templates All 208 existing tests pass. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- C1: Use ArgumentList for shell command execution in HookPipeline (no injection) - C2: Normalize paths before containment check in GlobTool (path traversal) - I1: Use Interlocked.Increment for thread-safe ID generation in TaskTools - I2: Add path containment check in SkillLoader.LoadReference - I3: Align TestProgram DI with production wiring via AddAgentTools/AddSkillsSystem - I4: Fix misleading docstring in CronTools (session-scoped, not persisted) - M1: Clarify HookDefinition.Matcher only supports exact match (no glob) - M2: Eliminate duplicate CountOccurrences calls in EditFileTool - Fix nullable warning: agent?.Name in ToolExecutor Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Autonomous agent capabilities — tools, skills, hooks, plugins, subagent types, and code review fixes for security/correctness. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Bumps Spectre.Console from 0.49.1 to 0.54.0 Bumps Spectre.Console.Testing from 0.49.1 to 0.54.0 --- updated-dependencies: - dependency-name: Spectre.Console dependency-version: 0.54.0 dependency-type: direct:production update-type: version-update:semver-minor - dependency-name: Spectre.Console.Testing dependency-version: 0.54.0 dependency-type: direct:production update-type: version-update:semver-minor ... Signed-off-by: dependabot[bot] <support@github.com>
Author
LabelsThe following labels could not be found: Please fix the above issues or remove invalid values from |
Author
|
OK, I won't notify you again about this release, but will get in touch when a new version is available. If you change your mind, just re-open this PR and I'll resolve any conflicts on it. |
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.
Updated Spectre.Console from 0.49.1 to 0.54.0.
Release notes
Sourced from Spectre.Console's releases.
0.54.0
Version
0.54.0of Spectre.Console has been released!Spectre.Console.Cli has a new home!
We've decided to move
Spectre.Console.Clito its own repository, where we will prepare it for a 1.0 release. This means that the Spectre.Console.Cli NuGet packages will no longer be versioned together with Spectre.Console. They will now have a preview version such as1.0.0-alpha-0.x.There should be no issues staying on version 0.53.0 of Spectre.Console.Cli until we release a stable version if you prefer not to use a pre-release dependency.
New unit testing package for Spectre.Console.Cli
There is now a new testing package for Spectre.Console.Cli called Spectre.Console.Cli.Testing. This is where you will find the
CommandAppTesterfrom now on.You can find more information about unit testing in the documentation.
What's Changed
Full Changelog: spectreconsole/spectre.console@0.53.0...0.54.0
0.53.1
This is a hotfix release for 0.53.0, which accidentally included
OpenCli.Sourcesas a dependency, instead of being included in the package.As a bonus, a fix for panels was also included in this release 😄
What's Changed
Full Changelog: spectreconsole/spectre.console@0.53.0...0.53.1
0.53.0
What's Changed
Full Changelog: spectreconsole/spectre.console@0.52.0...0.53.0
0.52.0
What's Changed
Full Changelog: spectreconsole/spectre.console@0.51.1...0.52.0
0.51.1
What's Changed
New Contributors
Full Changelog: spectreconsole/spectre.console@0.50.0...0.51.1
0.50.0
What's Changed
General
Console
HtmlEncoderIncorrectly Applying Italics to Bold Text by @z4ryy in #1590CLI
New Contributors
... (truncated)
Commits viewable in compare view.
Updated Spectre.Console.Testing from 0.49.1 to 0.54.0.
Release notes
Sourced from Spectre.Console.Testing's releases.
0.54.0
Version
0.54.0of Spectre.Console has been released!Spectre.Console.Cli has a new home!
We've decided to move
Spectre.Console.Clito its own repository, where we will prepare it for a 1.0 release. This means that the Spectre.Console.Cli NuGet packages will no longer be versioned together with Spectre.Console. They will now have a preview version such as1.0.0-alpha-0.x.There should be no issues staying on version 0.53.0 of Spectre.Console.Cli until we release a stable version if you prefer not to use a pre-release dependency.
New unit testing package for Spectre.Console.Cli
There is now a new testing package for Spectre.Console.Cli called Spectre.Console.Cli.Testing. This is where you will find the
CommandAppTesterfrom now on.You can find more information about unit testing in the documentation.
What's Changed
Full Changelog: spectreconsole/spectre.console@0.53.0...0.54.0
0.53.1
This is a hotfix release for 0.53.0, which accidentally included
OpenCli.Sourcesas a dependency, instead of being included in the package.As a bonus, a fix for panels was also included in this release 😄
What's Changed
Full Changelog: spectreconsole/spectre.console@0.53.0...0.53.1
0.53.0
What's Changed
Full Changelog: spectreconsole/spectre.console@0.52.0...0.53.0
0.52.0
What's Changed
Full Changelog: spectreconsole/spectre.console@0.51.1...0.52.0
0.51.1
What's Changed
New Contributors
Full Changelog: spectreconsole/spectre.console@0.50.0...0.51.1
0.50.0
What's Changed
General
Console
HtmlEncoderIncorrectly Applying Italics to Bold Text by @z4ryy in #1590CLI
New Contributors
... (truncated)
Commits viewable in compare view.
Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting
@dependabot rebase.Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR:
@dependabot rebasewill rebase this PR@dependabot recreatewill recreate this PR, overwriting any edits that have been made to it@dependabot show <dependency name> ignore conditionswill show all of the ignore conditions of the specified dependency@dependabot ignore this major versionwill close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this minor versionwill close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)@dependabot ignore this dependencywill close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)