From da7e38c3b016fec2b06ad4e36294dec349c3fce8 Mon Sep 17 00:00:00 2001 From: Kent Kostelac <14237820+kentkost@users.noreply.github.com> Date: Mon, 24 Nov 2025 19:37:24 +0100 Subject: [PATCH 1/3] fix: Changed logging to console such that codex wont pick up garbage stdout --- src/AvaloniaUI.MCP/Program.cs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/AvaloniaUI.MCP/Program.cs b/src/AvaloniaUI.MCP/Program.cs index 3e711d5..de28643 100644 --- a/src/AvaloniaUI.MCP/Program.cs +++ b/src/AvaloniaUI.MCP/Program.cs @@ -14,7 +14,10 @@ static async Task Main(string[] args) // Configure logging with structured logging builder.Logging.ClearProviders(); - builder.Logging.AddConsole(); + builder.Logging.AddConsole(o => + { + o.LogToStandardErrorThreshold = LogLevel.Trace; + }); // Add Sentry logging with configuration builder.Logging.AddSentry(o => @@ -139,4 +142,4 @@ static async Task Main(string[] args) logger.LogInformation("AvaloniaUI MCP Server shutdown complete"); } } -} \ No newline at end of file +} From e44f39cc9088ec49075096542e4bb8f58a897983 Mon Sep 17 00:00:00 2001 From: Kent Kostelac <14237820+kentkost@users.noreply.github.com> Date: Mon, 24 Nov 2025 20:12:27 +0100 Subject: [PATCH 2/3] Upgraded to .net 10 --- .github/workflows/auto-update.yml | 8 ++-- CLAUDE.md | 10 ++-- CONTRIBUTING.md | 4 +- Directory.Build.props | 14 +++--- Directory.Packages.props | 46 +++++++++---------- Dockerfile | 8 ++-- README.md | 6 +-- _config.yml | 4 +- docs/README.md | 4 +- .../examples/getting-started/first-project.md | 2 +- docs/quick-start.md | 2 +- docs/tools/project-generator.md | 4 +- docs/troubleshooting.md | 10 ++-- global.json | 4 +- src/AvaloniaUI.MCP/Program.cs | 2 +- .../Tools/ProjectGeneratorTool.cs | 8 ++-- 16 files changed, 68 insertions(+), 68 deletions(-) diff --git a/.github/workflows/auto-update.yml b/.github/workflows/auto-update.yml index a77a636..62312b6 100644 --- a/.github/workflows/auto-update.yml +++ b/.github/workflows/auto-update.yml @@ -109,14 +109,14 @@ jobs: CURRENT_VERSION=$(cat global.json | grep -o '"version": "[^"]*"' | cut -d'"' -f4) echo "Current .NET version: $CURRENT_VERSION" - # Get latest .NET 9.0 version + # Get latest .NET 10.0 version LATEST_VERSION=$(curl -s https://api.nuget.org/v3-flatcontainer/microsoft.netcore.app/index.json | \ - grep -o '"9\.[0-9]\+\.[0-9]\+"' | \ + grep -o '"10\.[0-9]\+\.[0-9]\+"' | \ sort -V | \ tail -1 | \ tr -d '"') - echo "Latest .NET 9.0 version: $LATEST_VERSION" + echo "Latest .NET 10.0 version: $LATEST_VERSION" if [ "$CURRENT_VERSION" != "$LATEST_VERSION" ]; then echo "has-update=true" >> $GITHUB_OUTPUT @@ -183,4 +183,4 @@ jobs: labels: | dependencies dotnet - automated \ No newline at end of file + automated diff --git a/CLAUDE.md b/CLAUDE.md index 0f924b8..ac3692f 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -4,12 +4,12 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co ## Project Overview -This is an AvaloniaUI.MCP project - a comprehensive Model Context Protocol (MCP) server that provides extensive AvaloniaUI knowledge and development assistance. The server is built on .NET 9.0 and implements the official Microsoft MCP SDK to deliver tools, resources, and prompts for AvaloniaUI development. +This is an AvaloniaUI.MCP project - a comprehensive Model Context Protocol (MCP) server that provides extensive AvaloniaUI knowledge and development assistance. The server is built on .NET 10.0 and implements the official Microsoft MCP SDK to deliver tools, resources, and prompts for AvaloniaUI development. ## Development Environment -- **Target Framework**: .NET 9.0 (net9.0) -- **Required SDK**: 9.0.300 (specified in global.json) +- **Target Framework**: .NET 10.0 (net10.0) +- **Required SDK**: 10.0.100 (specified in global.json) - **Language Features**: C# with ImplicitUsings and Nullable reference types enabled - **Package Management**: Central Package Management is enabled (ManagePackageVersionsCentrally=true) - **MCP SDK**: ModelContextProtocol 0.3.0-preview.1 for server implementation @@ -107,8 +107,8 @@ The server implements STDIO transport and can be used with any MCP-compatible cl ## Important Notes -- The project uses .NET 9.0 with SDK version 9.0.300 +- The project uses .NET 10.0 with SDK version 10.0.100 - The solution file uses the newer .slnx format instead of traditional .sln - The project structure follows modern .NET conventions with Directory.Build.* files for shared configuration - MCP server provides comprehensive AvaloniaUI development assistance through tools, resources, and prompts -- All knowledge base data is embedded as JSON files for offline access \ No newline at end of file +- All knowledge base data is embedded as JSON files for offline access diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 88d05d4..271c0d4 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -34,7 +34,7 @@ Thank you for your interest in contributing to the AvaloniaUI MCP Server! This d ### Prerequisites -- **.NET 9.0 SDK** (version 9.0.300 or later) +- **.NET 10.0 SDK** (version 10.0.100 or later) - **Git** for version control - **IDE** (Visual Studio, VS Code, or JetBrains Rider) @@ -281,4 +281,4 @@ By contributing to this project, you agree that your contributions will be licen - **Code review comments** for implementation questions - **Documentation** in README.md and CLAUDE.md -Thank you for contributing to make AvaloniaUI development better for everyone! 🎉 \ No newline at end of file +Thank you for contributing to make AvaloniaUI development better for everyone! 🎉 diff --git a/Directory.Build.props b/Directory.Build.props index 3aacdcb..afdace6 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -1,8 +1,8 @@ - - - net9.0 - enable - enable - - + + + net10.0 + enable + enable + + diff --git a/Directory.Packages.props b/Directory.Packages.props index 85eb82c..d1ecc11 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -3,7 +3,7 @@ true - + @@ -16,28 +16,28 @@ - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + diff --git a/Dockerfile b/Dockerfile index 825ae6e..7939ed1 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,5 +1,5 @@ -# Build stage -FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build +# Build stage +FROM mcr.microsoft.com/dotnet/sdk:10.0 AS build WORKDIR /src # Copy project files first for better layer caching @@ -29,8 +29,8 @@ RUN dotnet publish src/AvaloniaUI.MCP/AvaloniaUI.MCP.csproj \ -p:PublishSingleFile=false \ -p:PublishTrimmed=false -# Runtime stage - Use Ubuntu Chiseled for minimal size (~30MB vs ~180MB) -FROM mcr.microsoft.com/dotnet/runtime:9.0-noble-chiseled AS runtime +# Runtime stage - Use Ubuntu Chiseled for minimal size (~30MB vs ~180MB) +FROM mcr.microsoft.com/dotnet/runtime:10.0-noble-chiseled AS runtime WORKDIR /app # Copy published app (chiseled images already have non-root user) diff --git a/README.md b/README.md index 8e49c12..7c108aa 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ [![Build Status](https://github.com/decriptor/AvaloniaUI.MCP/workflows/CI/badge.svg)](https://github.com/decriptor/AvaloniaUI.MCP/actions) [![Test Coverage](https://img.shields.io/badge/coverage-90%25-brightgreen)](https://github.com/decriptor/AvaloniaUI.MCP) -[![.NET 9.0](https://img.shields.io/badge/.NET-9.0-blue)](https://dotnet.microsoft.com/download/dotnet/9.0) +[![.NET 10.0](https://img.shields.io/badge/.NET-10.0-blue)](https://dotnet.microsoft.com/download/dotnet/10.0) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![Documentation](https://img.shields.io/badge/docs-GitHub%20Pages-blue)](https://decriptor.github.io/AvaloniaUI.MCP) @@ -46,7 +46,7 @@ A comprehensive MCP server providing enterprise-grade tools, resources, and guid ### Prerequisites -- **.NET 9.0 SDK** or later +- **.NET 10.0 SDK** or later - **MCP-compatible client** (Claude Desktop, VS Code with MCP extension) ### Installation @@ -140,7 +140,7 @@ Try these commands with your MCP client: Built with: -- **.NET 9.0** - Latest runtime with performance optimizations +- **.NET 10.0** - Latest runtime with performance optimizations - **MCP Protocol** - Official Microsoft Model Context Protocol SDK - **OpenTelemetry** - Enterprise observability and monitoring - **Reactive Extensions** - Async/reactive programming patterns diff --git a/_config.yml b/_config.yml index ac91701..3115b39 100644 --- a/_config.yml +++ b/_config.yml @@ -65,7 +65,7 @@ sass: # Custom variables custom: version: "1.0.0" - dotnet_version: "9.0" + dotnet_version: "10.0" mcp_version: "0.3.0" # Exclude from processing @@ -152,4 +152,4 @@ relative_links: # Feed configuration feed: posts_limit: 10 - excerpt_only: true \ No newline at end of file + excerpt_only: true diff --git a/docs/README.md b/docs/README.md index f3975e6..b5731a8 100644 --- a/docs/README.md +++ b/docs/README.md @@ -14,7 +14,7 @@ Welcome to the AvaloniaUI.MCP server documentation. This comprehensive Model Con ## 🎯 Overview -AvaloniaUI.MCP is a professional-grade MCP server built on .NET 9.0 that provides: +AvaloniaUI.MCP is a professional-grade MCP server built on .NET 10.0 that provides: - **15+ Development Tools** for project generation, validation, and code assistance - **Comprehensive Knowledge Base** with 500+ controls, patterns, and examples @@ -26,7 +26,7 @@ AvaloniaUI.MCP is a professional-grade MCP server built on .NET 9.0 that provide ### Prerequisites -- .NET 9.0 SDK +- .NET 10.0 SDK - MCP-compatible client (Claude Desktop, VS Code with MCP extension) ### Installation diff --git a/docs/examples/getting-started/first-project.md b/docs/examples/getting-started/first-project.md index e97e6d3..33962cd 100644 --- a/docs/examples/getting-started/first-project.md +++ b/docs/examples/getting-started/first-project.md @@ -42,7 +42,7 @@ HelloAvaloniaUI/ WinExe - net9.0 + net10.0 enable true app.manifest diff --git a/docs/quick-start.md b/docs/quick-start.md index cd8904e..3dcde79 100644 --- a/docs/quick-start.md +++ b/docs/quick-start.md @@ -6,7 +6,7 @@ Get up and running with AvaloniaUI.MCP in minutes. Before you begin, ensure you have: -- **.NET 9.0 SDK** or later +- **.NET 10.0 SDK** or later - **MCP-compatible client** such as: - Claude Desktop - VS Code with MCP extension diff --git a/docs/tools/project-generator.md b/docs/tools/project-generator.md index dc99bd9..f042f96 100644 --- a/docs/tools/project-generator.md +++ b/docs/tools/project-generator.md @@ -24,7 +24,7 @@ The ProjectGeneratorTool creates production-ready AvaloniaUI projects with vario This creates a basic project with: - Standard project structure -- Modern .NET 9.0 targeting +- Modern .NET 10.0 targeting - Essential AvaloniaUI packages - Basic window and app setup @@ -267,4 +267,4 @@ Works seamlessly with other tools: - Use **XamlValidationTool** to validate generated XAML - Apply **SecurityPatternTool** for authentication - Add **ThemingTool** for custom styling -- Use **DiagnosticTool** for monitoring \ No newline at end of file +- Use **DiagnosticTool** for monitoring diff --git a/docs/troubleshooting.md b/docs/troubleshooting.md index d3b35a2..2c60082 100644 --- a/docs/troubleshooting.md +++ b/docs/troubleshooting.md @@ -16,7 +16,7 @@ Error: The server failed to start or connection refused **Check .NET Version** ```bash dotnet --version -# Should show 9.0.x or later +# Should show 10.0.x or later ``` **Verify Project Build** @@ -108,7 +108,7 @@ echo '{"jsonrpc":"2.0","id":1,"method":"tools/list","params":{}}' | dotnet run - **Check Permissions** ```bash # Ensure executable permissions -chmod +x src/AvaloniaUI.MCP/bin/Debug/net9.0/AvaloniaUI.MCP +chmod +x src/AvaloniaUI.MCP/bin/Debug/net10.0/AvaloniaUI.MCP # Check file access ls -la src/AvaloniaUI.MCP/AvaloniaUI.MCP.csproj @@ -283,7 +283,7 @@ dotnet list package --vulnerable **Verify SDK Version** ```bash dotnet --list-sdks -# Should include 9.0.x +# Should include 10.0.x ``` ### Test Failures @@ -421,7 +421,7 @@ When reporting issues, include: **Environment:** - OS: Ubuntu 22.04 / Windows 11 / macOS 13 -- .NET Version: 9.0.x +- .NET Version: 10.0.x - Server Version: 1.0.0 **Issue:** @@ -450,4 +450,4 @@ What actually happens **Additional Context:** Any other relevant information -``` \ No newline at end of file +``` diff --git a/global.json b/global.json index 5838e3c..376af49 100644 --- a/global.json +++ b/global.json @@ -1,5 +1,5 @@ { "sdk": { - "version": "9.0.300" + "version": "10.0.100" } -} \ No newline at end of file +} diff --git a/src/AvaloniaUI.MCP/Program.cs b/src/AvaloniaUI.MCP/Program.cs index de28643..3899200 100644 --- a/src/AvaloniaUI.MCP/Program.cs +++ b/src/AvaloniaUI.MCP/Program.cs @@ -142,4 +142,4 @@ static async Task Main(string[] args) logger.LogInformation("AvaloniaUI MCP Server shutdown complete"); } } -} +} \ No newline at end of file diff --git a/src/AvaloniaUI.MCP/Tools/ProjectGeneratorTool.cs b/src/AvaloniaUI.MCP/Tools/ProjectGeneratorTool.cs index 31b3859..28acab4 100644 --- a/src/AvaloniaUI.MCP/Tools/ProjectGeneratorTool.cs +++ b/src/AvaloniaUI.MCP/Tools/ProjectGeneratorTool.cs @@ -196,9 +196,9 @@ static string GenerateProjectFile(string projectName, string platforms, bool inc { string targetFramework = platforms switch { - "mobile" => "net9.0", - "all" => "net9.0", - _ => "net9.0" + "mobile" => "net10.0", + "all" => "net10.0", + _ => "net10.0" }; var packageReferences = new List @@ -429,4 +429,4 @@ public static AppBuilder BuildAvaloniaApp() .LogToTrace(); }}"; } -} \ No newline at end of file +} From 84b5e41bc87378430e1a5862d773a00c7cbf63a8 Mon Sep 17 00:00:00 2001 From: Kent Kostelac <14237820+kentkost@users.noreply.github.com> Date: Mon, 24 Nov 2025 21:24:30 +0100 Subject: [PATCH 3/3] fixed warnings --- src/AvaloniaUI.MCP/AvaloniaUI.MCP.csproj | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/src/AvaloniaUI.MCP/AvaloniaUI.MCP.csproj b/src/AvaloniaUI.MCP/AvaloniaUI.MCP.csproj index b6646fa..97e0c9c 100644 --- a/src/AvaloniaUI.MCP/AvaloniaUI.MCP.csproj +++ b/src/AvaloniaUI.MCP/AvaloniaUI.MCP.csproj @@ -9,9 +9,6 @@ - - - @@ -19,9 +16,8 @@ - - - + + @@ -33,9 +29,6 @@ - - -