Skip to content

Add .NET intelligence, verification, MCP hosting, and native binaries - #37

Open
Telli wants to merge 1 commit into
mainfrom
codex/dotnet-intelligence-verification-mcp-binaries
Open

Telli wants to merge 1 commit into
mainfrom
codex/dotnet-intelligence-verification-mcp-binaries

Conversation

@Telli

@Telli Telli commented Oct 8, 2026

Copy link
Copy Markdown
Contributor

Summary

Add compiler-backed .NET intelligence and permission-gated verification to the existing coding-agent runtime:

  • Resolve exact symbols, references, hierarchy, and compiler diagnostics through a bounded Roslyn/MSBuild workspace cache. Semantic rename validates the complete edit plan and records checkpoint-linked undo/redo mutations, including recovery after failure or cancellation.
  • Share build/test verification between verify, /verify, and verify_workspace. Restore is explicit; automatic verification and bounded repair are opt-in. Failed verification produces truthful completion and exit status, while prompt assembly consumes approved cached diagnostics without running builds.
  • Host the existing tool executor through the official MCP SDK over stdio or Streamable HTTP. The server defaults to read-only, enforces its curated tool allowlist on calls, and gives elevated clients independent durable sessions. HTTP validates Host/Origin and requires authentication for elevated or remote access.
  • Add six self-contained native binary publish/smoke jobs, archive checksums, and release gates alongside the existing NuGet tool and SDK packages. Package smoke uses an isolated cache and local source mapping so reused preview versions cannot resolve stale packages.

Validation

  • dotnet build SharpClawCode.sln --configuration Release --warnaserror — zero warnings/errors, including examples.
  • dotnet test SharpClawCode.sln --configuration Release — 389 passed: 275 unit, 94 integration, 20 parity.
  • Relevant package, CLI, MCP, plugin, and cross-platform checks were run: all 22 production packages and 22 symbol packages created; clean SDK consumer and NuGet CLI installation passed; real stdio/HTTP MCP clients, permission denials, semantic rename/undo, TRX verification, bounded repair, cancellation/recovery, and linked-source boundary tests passed.
  • Configured coverage floor passed at 41.24% (required 38%). Scenario gates, DocFX with warnings as errors, dependency audit of 35 projects, VS Code compilation, and actionlint validation passed.
  • Relocated macOS ARM64 archive passed native startup with isolated runtime discovery, SQLite state, MCP protocol-only stdout/EOF shutdown, semantic loading, durable rename undo, and real build/test checks.

Risk and compatibility

  • Durable JSON/session formats remain compatible or include a migration — new configuration, result fields, and event contracts are additive; automatic verification remains disabled by default.
  • Dangerous file, shell, and network operations still pass through permissions — cold MSBuild evaluation requires execution approval; verification uses the shell scope; MCP calls share the normal executor.
  • No credentials, local state, or generated secrets are included — native archives, local traces, caches, and build output remain ignored.

SDK-dependent semantic/build/test features still require a compatible installed .NET SDK and restored project assets. Query compilations exclude project-supplied analyzers/source generators. Automatic verification initially covers recorded supported file mutations.

Only macOS ARM64 native execution was completed locally. Windows x64/ARM64, Linux x64/ARM64, and macOS x64 acceptance remain gated on their matching release CI runners; cross-publishing is not counted as execution. This PR does not publish a release.

Copilot AI balanced review requested due to automatic review settings October 8, 2026 22:27

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copilot was unable to review this pull request because the user who requested the review has reached their quota limit.

@coderabbitai

coderabbitai Bot commented Oct 8, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 123 files, which is 23 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry.

⚙️ Run configuration
  • Configuration used: defaults
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 8d57b2d2-3094-4fa8-bfb2-8a13ad2389dd
📥 Commits

Reviewing files that changed from the base of the PR and between 72c2967 and f1bd8fb.

📒 Files selected for processing (123)
  • .github/scripts/Publish-Binaries.ps1
  • .github/scripts/Test-Binary.ps1
  • .github/scripts/Test-Packages.ps1
  • .github/workflows/release.yml
  • Directory.Packages.props
  • README.md
  • SharpClawCode.Packages.slnf
  • SharpClawCode.sln
  • docs/architecture.md
  • docs/binary-distribution.md
  • docs/dotnet-intelligence.md
  • docs/mcp-server.md
  • docs/runtime.md
  • docs/superpowers/plans/2026-10-06-dotnet-intelligence-verification-mcp-distribution.md
  • docs/testing.md
  • docs/toc.yml
  • docs/tools.md
  • docs/verification.md
  • src/SharpClaw.Code.Cli/Composition/CliServiceCollectionExtensions.cs
  • src/SharpClaw.Code.Cli/Program.cs
  • src/SharpClaw.Code.Cli/Rendering/TextOutputRenderer.cs
  • src/SharpClaw.Code.Cli/SharpClaw.Code.Cli.csproj
  • src/SharpClaw.Code.Commands/Handlers/McpCommandHandler.cs
  • src/SharpClaw.Code.Commands/Handlers/VerifyCommandHandler.cs
  • src/SharpClaw.Code.Commands/Handlers/VersionCommandHandler.cs
  • src/SharpClaw.Code.Commands/PromptInvocationService.cs
  • src/SharpClaw.Code.Commands/Repl/ReplHost.cs
  • src/SharpClaw.Code.Mcp.Server/SharpClaw.Code.Mcp.Server.csproj
  • src/SharpClaw.Code.Mcp.Server/SharpClawMcpHttpServer.cs
  • src/SharpClaw.Code.Mcp.Server/SharpClawMcpServer.cs
  • src/SharpClaw.Code.Mcp.Server/SharpClawMcpToolBridge.cs
  • src/SharpClaw.Code.Mcp/Abstractions/ISharpClawMcpServer.cs
  • src/SharpClaw.Code.Mcp/Models/SharpClawMcpServerOptions.cs
  • src/SharpClaw.Code.Memory/Abstractions/IDotNetWorkspaceEvaluationAuthorization.cs
  • src/SharpClaw.Code.Memory/Abstractions/IDotNetWorkspaceSemanticService.cs
  • src/SharpClaw.Code.Memory/Abstractions/IDotNetWorkspaceTargetResolver.cs
  • src/SharpClaw.Code.Memory/MemoryServiceCollectionExtensions.cs
  • src/SharpClaw.Code.Memory/Services/DotNetSemanticWorkspaceCache.cs
  • src/SharpClaw.Code.Memory/Services/DotNetWorkspaceSemanticQueries.cs
  • src/SharpClaw.Code.Memory/Services/DotNetWorkspaceSemanticRename.cs
  • src/SharpClaw.Code.Memory/Services/DotNetWorkspaceSemanticService.cs
  • src/SharpClaw.Code.Memory/Services/DotNetWorkspaceTargetResolver.cs
  • src/SharpClaw.Code.Memory/SharpClaw.Code.Memory.csproj
  • src/SharpClaw.Code.Permissions/Models/PermissionRequestSourceKind.cs
  • src/SharpClaw.Code.Protocol/Commands/TurnExecutionResult.cs
  • src/SharpClaw.Code.Protocol/Events/RuntimeEvent.cs
  • src/SharpClaw.Code.Protocol/Events/VerificationEvents.cs
  • src/SharpClaw.Code.Protocol/Models/CSharpRenameModels.cs
  • src/SharpClaw.Code.Protocol/Models/CSharpToolModels.cs
  • src/SharpClaw.Code.Protocol/Models/ConversationTurn.cs
  • src/SharpClaw.Code.Protocol/Models/DotNetSemanticModels.cs
  • src/SharpClaw.Code.Protocol/Models/OpenCodeParityModels.cs
  • src/SharpClaw.Code.Protocol/Models/SharpClawWorkflowMetadataKeys.cs
  • src/SharpClaw.Code.Protocol/Models/VerificationModels.cs
  • src/SharpClaw.Code.Protocol/Models/VerificationPolicyModels.cs
  • src/SharpClaw.Code.Protocol/Serialization/ProtocolJsonContext.cs
  • src/SharpClaw.Code.Runtime/Composition/RuntimeServiceCollectionExtensions.cs
  • src/SharpClaw.Code.Runtime/Configuration/SharpClawConfigService.cs
  • src/SharpClaw.Code.Runtime/Diagnostics/WorkspaceDiagnosticsService.cs
  • src/SharpClaw.Code.Runtime/Mutations/CheckpointMutationCoordinator.cs
  • src/SharpClaw.Code.Runtime/Mutations/MutationWorkspaceApplier.cs
  • src/SharpClaw.Code.Runtime/Orchestration/ConversationRuntime.cs
  • src/SharpClaw.Code.Runtime/Turns/DefaultTurnRunner.cs
  • src/SharpClaw.Code.Runtime/Turns/TurnMutationAccumulator.cs
  • src/SharpClaw.Code.Runtime/Turns/TurnMutationJournal.cs
  • src/SharpClaw.Code.Runtime/Turns/TurnRunResult.cs
  • src/SharpClaw.Code.Runtime/Verification/AffectedProjectResolver.cs
  • src/SharpClaw.Code.Runtime/Verification/DotNetDiagnosticParser.cs
  • src/SharpClaw.Code.Runtime/Verification/IAffectedProjectResolver.cs
  • src/SharpClaw.Code.Runtime/Verification/IDotNetDiagnosticParser.cs
  • src/SharpClaw.Code.Runtime/Verification/ITestResultParser.cs
  • src/SharpClaw.Code.Runtime/Verification/IVerificationDiagnosticsCache.cs
  • src/SharpClaw.Code.Runtime/Verification/IVerificationLoopCoordinator.cs
  • src/SharpClaw.Code.Runtime/Verification/IVerificationPolicyResolver.cs
  • src/SharpClaw.Code.Runtime/Verification/IVerificationService.cs
  • src/SharpClaw.Code.Runtime/Verification/Tools/VerifyWorkspaceTool.cs
  • src/SharpClaw.Code.Runtime/Verification/TrxTestResultParser.cs
  • src/SharpClaw.Code.Runtime/Verification/VerificationDiagnosticsCache.cs
  • src/SharpClaw.Code.Runtime/Verification/VerificationFailureContextFormatter.cs
  • src/SharpClaw.Code.Runtime/Verification/VerificationLoopCoordinator.cs
  • src/SharpClaw.Code.Runtime/Verification/VerificationPolicyResolver.cs
  • src/SharpClaw.Code.Runtime/Verification/VerificationService.cs
  • src/SharpClaw.Code.Tools/Abstractions/IToolPermissionDeniedResultFactory.cs
  • src/SharpClaw.Code.Tools/BuiltIn/CSharpDiagnosticsTool.cs
  • src/SharpClaw.Code.Tools/BuiltIn/CSharpFindReferencesTool.cs
  • src/SharpClaw.Code.Tools/BuiltIn/CSharpRenameSymbolTool.cs
  • src/SharpClaw.Code.Tools/BuiltIn/CSharpSymbolResolveTool.cs
  • src/SharpClaw.Code.Tools/BuiltIn/CSharpTypeHierarchyTool.cs
  • src/SharpClaw.Code.Tools/BuiltIn/DotNetSolutionInspectTool.cs
  • src/SharpClaw.Code.Tools/BuiltIn/SharpClawToolBase.cs
  • src/SharpClaw.Code.Tools/Execution/DotNetEvaluationAuthorization.cs
  • src/SharpClaw.Code.Tools/Execution/ToolExecutor.cs
  • src/SharpClaw.Code.Tools/ToolsServiceCollectionExtensions.cs
  • src/SharpClaw.Code/SharpClaw.Code.csproj
  • tests/Fixtures/DotNetSemantic/Consumer/Consumer.csproj
  • tests/Fixtures/DotNetSemantic/Consumer/InvoiceConsumer.cs
  • tests/Fixtures/DotNetSemantic/Fixture.Tests/Fixture.Tests.csproj
  • tests/Fixtures/DotNetSemantic/Fixture.Tests/InvoiceTests.cs
  • tests/Fixtures/DotNetSemantic/Fixture.slnx
  • tests/Fixtures/DotNetSemantic/Library/Invoice.cs
  • tests/Fixtures/DotNetSemantic/Library/Library.csproj
  • tests/SharpClaw.Code.IntegrationTests/Fixtures/DotNetFixtureWorkspace.cs
  • tests/SharpClaw.Code.IntegrationTests/Fixtures/FaultingFileSystem.cs
  • tests/SharpClaw.Code.IntegrationTests/Mcp/InboundMcpHttpTests.cs
  • tests/SharpClaw.Code.IntegrationTests/Mcp/InboundMcpStdioTests.cs
  • tests/SharpClaw.Code.IntegrationTests/Memory/CSharpRenameTests.cs
  • tests/SharpClaw.Code.IntegrationTests/Memory/CSharpSemanticToolTests.cs
  • tests/SharpClaw.Code.IntegrationTests/Memory/DotNetWorkspaceSemanticTests.cs
  • tests/SharpClaw.Code.IntegrationTests/Memory/SemanticImportCacheTests.cs
  • tests/SharpClaw.Code.IntegrationTests/SharpClaw.Code.IntegrationTests.csproj
  • tests/SharpClaw.Code.IntegrationTests/Verification/AutomaticVerificationTests.cs
  • tests/SharpClaw.Code.IntegrationTests/Verification/RealAutomaticVerificationTests.cs
  • tests/SharpClaw.Code.IntegrationTests/Verification/VerificationServiceTests.cs
  • tests/SharpClaw.Code.IntegrationTests/Verification/VerificationSurfaceTests.cs
  • tests/SharpClaw.Code.ParityHarness/ParityScenarioIds.cs
  • tests/SharpClaw.Code.ParityHarness/ParityScenarioTests.cs
  • tests/SharpClaw.Code.ParityHarness/SemanticParityTests.cs
  • tests/SharpClaw.Code.ParityHarness/SharpClaw.Code.ParityHarness.csproj
  • tests/SharpClaw.Code.ParityHarness/VerificationParityTests.cs
  • tests/SharpClaw.Code.UnitTests/MemorySkillsGit/DotNetWorkspaceTargetResolverTests.cs
  • tests/SharpClaw.Code.UnitTests/Runtime/SharpClawConfigServiceTests.cs
  • tests/SharpClaw.Code.UnitTests/Verification/VerificationParserTests.cs
  • tests/SharpClaw.Code.UnitTests/Verification/VerificationPolicyTests.cs

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.

  • Autopilot · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

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