Skip to content

Bump Spectre.Console and Spectre.Console.Testing#43

Closed
dependabot[bot] wants to merge 368 commits intomainfrom
dependabot/nuget/tests/DotClaw.Cli.Tests/multi-a3a7418cda
Closed

Bump Spectre.Console and Spectre.Console.Testing#43
dependabot[bot] wants to merge 368 commits intomainfrom
dependabot/nuget/tests/DotClaw.Cli.Tests/multi-a3a7418cda

Conversation

@dependabot
Copy link
Copy Markdown

@dependabot dependabot bot commented on behalf of github Mar 23, 2026

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.0 of Spectre.Console has been released!

Spectre.Console.Cli has a new home!

We've decided to move Spectre.Console.Cli to 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 as 1.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 CommandAppTester from 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.Sources as 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

  • Add top-level CancellationToken support to Spectre.Console.Cli by @​0xced in #​1911
  • Update the Spectre.Console.Cli documentation with CancellationToken by @​0xced in #​1920

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

CLI

New Contributors

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.0 of Spectre.Console has been released!

Spectre.Console.Cli has a new home!

We've decided to move Spectre.Console.Cli to 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 as 1.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 CommandAppTester from 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.Sources as 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

  • Add top-level CancellationToken support to Spectre.Console.Cli by @​0xced in #​1911
  • Update the Spectre.Console.Cli documentation with CancellationToken by @​0xced in #​1920

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

CLI

New Contributors

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 rebase will rebase this PR
  • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
  • @dependabot show <dependency name> ignore conditions will show all of the ignore conditions of the specified dependency
  • @dependabot ignore this major version will 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 version will 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 dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)

MarkBovee and others added 30 commits March 4, 2026 13:18
- 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>
…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>
- 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.
MarkBovee and others added 24 commits March 20, 2026 12:39
…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>
@dependabot @github
Copy link
Copy Markdown
Author

dependabot bot commented on behalf of github Mar 23, 2026

Labels

The following labels could not be found: dependencies, security. Please create them before Dependabot can add them to a pull request.

Please fix the above issues or remove invalid values from dependabot.yml.

@dependabot @github
Copy link
Copy Markdown
Author

dependabot bot commented on behalf of github Mar 23, 2026

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.

@dependabot dependabot bot deleted the dependabot/nuget/tests/DotClaw.Cli.Tests/multi-a3a7418cda branch March 23, 2026 14:49
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants