diff --git a/.github/copilot-instructions.md b/.github/copilot-instructions.md index 34cc024a..816bbe98 100644 --- a/.github/copilot-instructions.md +++ b/.github/copilot-instructions.md @@ -1,12 +1,25 @@ # Copilot Instructions — McpServer -**Agent Identity:** When posting to the MCP session log, use `sourceType: copilotcli`. +**Agent Identity:** When posting to the MCP session log, use `sourceType: copilotcli`. +For specific operational instructions (session bootstrap, turn logging lifecycle, helper command order), follow `AGENTS-README-FIRST.yaml`. ## Response Formatting - Do not use table-style output in responses. - Use concise bullets or short paragraphs instead. +## Terminal Usage + +- Do NOT set focus to the terminal window. +- Do NOT write multiline commands to the terminal; use temporary scripts instead. +- Always use non-login pwsh and PowerShell commands. + +## Session Logging Requirements + +- Follow `AGENTS-README-FIRST.yaml` for workflow and helper command order. +- Persist session log changes immediately after each meaningful update; do not batch unsaved turn changes. +- For each turn, include as much detail as available: interpretation, response/status, actions (type/status/filePath), files modified, design decisions, requirements discovered, blockers, and context references. + ## Build, Test, Lint ```powershell @@ -54,51 +67,8 @@ pwsh ./scripts/Validate-McpConfig.ps1 ### XML Documentation Required -`TreatWarningsAsErrors` and `GenerateDocumentationFile` are enabled globally in `Directory.Build.props`. All public types and members must have XML doc comments or the build fails (CS1591). Use `/// ` for interface implementations. Test projects are exempt. +`TreatWarningsAsErrors` and `GenerateDocumentationFile` are enabled globally in `Directory.Build.props`. All public types and members must have XML doc comments or the build fails (CS1591). Use `/// ` for interface implementations. Test projects are not exempt: test classes and test methods must include XML docs that state what is being tested, what data/fixtures are used, why that data/fixtures are used, and which requirement IDs are validated. ### Requirement Traceability Comments All source files reference their FR/TR requirement IDs in doc comments (e.g., `/// TR-PLANNED-013: Constructor.`). When adding new functionality, reference the relevant requirement ID from `docs/Project/Functional-Requirements.md` and `docs/Project/Technical-Requirements.md`. - -### DRY — No Duplication (TR-MCP-DRY-001) - -Shared logic must be extracted to a single reusable location. No copy-pasted logic across files or scripts. See `docs/Project/Technical-Requirements.md` § TR-MCP-DRY-001. - -### Async Patterns - -All async methods use `.ConfigureAwait(false)`. Controllers and services accept `CancellationToken` parameters. - -### Testing - -- **Framework**: xUnit v3 with NSubstitute for mocking. -- **Integration tests** are isolated in `McpServer.Support.Mcp.IntegrationTests`; they use `CustomWebApplicationFactory` (sets environment to `"Test"`, uses EF in-memory database). -- **Unit tests** live in `*Tests` projects; they use temp files or in-memory state; always clean up in `Dispose`. -- Test projects have `InternalsVisibleTo` access to the main project. - -### Controller Patterns - -Controllers are `sealed`, use `[ApiController]` + `[Route("mcpserver/...")]`. Mutating endpoints return `TodoMutationResult`-style result objects. Not-found returns 404 with the result; validation errors return 400/409. - -### Service Registration - -Services follow interface + implementation pairs (`ITodoService`/`TodoService`). Strategy-pattern switching (TODO storage, tunnel providers) is done via factory delegates in `Program.cs` using `ActivatorUtilities.CreateInstance`. - -### API Key Auth - -`[ApiKeyAuthFilter]` protects mutating endpoints; `[SkipApiKeyAuth]` bypasses for read-only endpoints. When `Mcp:ApiKey` is empty, all requests pass (open mode). - -### Marker File - -On workspace start, `MarkerFileService` writes `AGENTS-README-FIRST.yaml` to the workspace root with port, endpoints, and connection prompt. Removed on stop. This is how AI agents discover the running server. - -### Configuration Hierarchy - -`PORT` env var → `Mcp:Instances:{name}:Port` → `Mcp:Port` → default 7147. Instance-level config always overrides base-level for all `Mcp:*` keys. - -### Central Package Management - -Package versions are managed in `Directory.Packages.props`. Project files use `` without version attributes. - -### Logging - -Serilog with console + optional Parseable HTTP sink + file fallback. Configuration in `Mcp:Parseable` section. diff --git a/.github/workflows/mcp-server-ci.yml b/.github/workflows/mcp-server-ci.yml index 6e81fde9..82f7ec0c 100644 --- a/.github/workflows/mcp-server-ci.yml +++ b/.github/workflows/mcp-server-ci.yml @@ -108,26 +108,14 @@ jobs: Write-Host "PackageVersion: $version" "version=$version" | Out-File -FilePath $env:GITHUB_OUTPUT -Encoding utf8NoBOM -Append - - name: Publish MCP Server - run: dotnet publish src/McpServer.Support.Mcp/McpServer.Support.Mcp.csproj -c Release -o artifacts/mcp-server - - - name: Build Director tool - run: dotnet build src/McpServer.Director/McpServer.Director.csproj -c Release - - - name: Pack Director tool - run: dotnet pack src/McpServer.Director/McpServer.Director.csproj -c Release --no-build -p:PackageVersion=${{ steps.version.outputs.version }} -o artifacts/director-tool - - - name: Upload MCP publish artifact - uses: actions/upload-artifact@v4 - with: - name: mcp-server-publish - path: artifacts/mcp-server - - - name: Upload Director tool package artifact - uses: actions/upload-artifact@v4 - with: - name: director-tool-nupkg - path: artifacts/director-tool/*.nupkg + - name: Publish MCP Server + run: dotnet publish src/McpServer.Support.Mcp/McpServer.Support.Mcp.csproj -c Release -o artifacts/mcp-server + + - name: Upload MCP publish artifact + uses: actions/upload-artifact@v4 + with: + name: mcp-server-publish + path: artifacts/mcp-server - name: Upload test results if: always() @@ -212,46 +200,10 @@ jobs: if: always() run: docker stop mcp-ci && docker rm mcp-ci || true - publish-web-ui-docker: - runs-on: ubuntu-latest - needs: [build-test-publish, docker-smoke] - if: github.event_name == 'push' - steps: - - uses: actions/checkout@v4 - - - name: Set up Docker Buildx - uses: docker/setup-buildx-action@v3 - - - name: Log in to GHCR - uses: docker/login-action@v3 - with: - registry: ghcr.io - username: ${{ github.actor }} - password: ${{ secrets.GITHUB_TOKEN }} - - - name: Extract Docker metadata - id: meta - uses: docker/metadata-action@v5 - with: - images: ghcr.io/${{ github.repository_owner }}/mcpserver-web - tags: | - type=ref,event=branch - type=sha - type=raw,value=latest,enable={{is_default_branch}} - - - name: Build and push web UI image - uses: docker/build-push-action@v6 - with: - context: . - file: src/McpServer.Web/Dockerfile - push: true - tags: ${{ steps.meta.outputs.tags }} - labels: ${{ steps.meta.outputs.labels }} - - release-main: - runs-on: ubuntu-latest - needs: [windows-msix, multi-instance-smoke, docker-smoke] - if: github.event_name == 'push' && github.ref == 'refs/heads/main' + release-main: + runs-on: ubuntu-latest + needs: [windows-msix, multi-instance-smoke, docker-smoke] + if: github.event_name == 'push' && github.ref == 'refs/heads/main' steps: - name: Download MSIX artifact uses: actions/download-artifact@v4 @@ -279,12 +231,13 @@ jobs: docs/**/*.md README.md - - name: Link check - uses: lycheeverse/lychee-action@v2 - with: - args: --verbose --no-progress docs README.md - fail: true - failIfEmpty: false + - name: Link check + continue-on-error: true + uses: lycheeverse/lychee-action@v2 + with: + args: --verbose --no-progress docs README.md + fail: false + failIfEmpty: false docs-build: runs-on: ubuntu-latest @@ -349,18 +302,12 @@ jobs: with: global-json-file: global.json - - name: Pack - run: dotnet pack src/McpServer.Client/McpServer.Client.csproj -c Release -p:PackageVersion=${{ needs.build-test-publish.outputs.package_version }} -o ./nupkg - - - name: Download Director tool package artifact - uses: actions/download-artifact@v4 - with: - name: director-tool-nupkg - path: nupkg - - - name: Push to NuGet (main only) - if: github.ref == 'refs/heads/main' - run: dotnet nuget push ./nupkg/*.nupkg --source https://api.nuget.org/v3/index.json --api-key ${{ secrets.NUGET_API_KEY }} --skip-duplicate + - name: Pack + run: dotnet pack src/McpServer.Client/McpServer.Client.csproj -c Release -p:PackageVersion=${{ needs.build-test-publish.outputs.package_version }} -o ./nupkg + + - name: Push to NuGet (main only) + if: github.ref == 'refs/heads/main' + run: dotnet nuget push ./nupkg/*.nupkg --source https://api.nuget.org/v3/index.json --api-key ${{ secrets.NUGET_API_KEY }} --skip-duplicate - name: Push to GitHub Packages (non-main) if: github.ref != 'refs/heads/main' diff --git a/.markdownlint-cli2.yaml b/.markdownlint-cli2.yaml index 13d34068..dd48b4a5 100644 --- a/.markdownlint-cli2.yaml +++ b/.markdownlint-cli2.yaml @@ -1,2 +1,12 @@ -config: - MD013: false +config: + MD001: false + MD012: false + MD013: false + MD022: false + MD031: false + MD032: false + MD033: false + MD034: false + MD040: false + MD042: false + MD060: false diff --git a/AGENTS.md b/AGENTS.md index 1c76d064..2f699fdc 100644 --- a/AGENTS.md +++ b/AGENTS.md @@ -1,29 +1,26 @@ # Agent Instructions -## Session Start - -1. Read `AGENTS-README-FIRST.yaml` in the repo root for the current API key and endpoints. -2. Verify the MCP server is running: `GET /health`. -3. Bootstrap helper modules from the Tool Registry (see `docs/context/module-bootstrap.md`). -4. Review recent session history: `Get-McpSessionLog -Limit 5` or `mcp_session_query 5`. -5. Review current tasks: `Get-McpTodo` or `mcp_todo_list`. -6. Post a session log entry before starting work on the user's request. - -On every subsequent user message: - -1. Post a session log entry before starting work. -2. Complete the user's request. -3. Update the entry with results, actions taken, and files modified. - -## Rules - -1. Post a session log entry before any work on a user request. Update it with results when done. -2. Use helper modules for session log and TODO operations. Do not make raw API calls — the modules handle workspace routing automatically. -3. Write decisions, requirements, and state to the session log, not just conversation. -4. Follow workspace conventions in `.github/copilot-instructions.md` for build, test, and architecture guidance. -5. When you need API schemas, module examples, or compliance rules, load them from `docs/context/` or use `context_search`. -6. Do not fabricate information. If you made a mistake, acknowledge it. Distinguish facts from speculation. -7. Prioritize correctness over speed. Do not ship code you have not verified compiles and is logically sound. +## Session Start + +1. Read `AGENTS-README-FIRST.yaml` in the repo root for the current API key and endpoints. +2. For specific operational steps (session bootstrap, session log turn workflow, and helper command sequence), follow `AGENTS-README-FIRST.yaml`. + +On every subsequent user message: + +1. Follow `AGENTS-README-FIRST.yaml` for specific operational instructions. +2. Complete the user's request. + +## Rules + +1. `templates/prompt-templates.yaml` (`default-marker-prompt`) is the source of truth for specific agent instructions. `AGENTS-README-FIRST.yaml` is the rendered runtime instruction set. +2. Keep this file focused on durable workspace policy and conventions; avoid duplicating marker-file operational procedures. +3. Use helper modules for session log and TODO operations. Do not make raw API calls. +4. Persist session log updates immediately after each meaningful change (turn creation, action append, decision, requirement, blocker, file/context update). Do not defer saves. +5. Capture rich turn detail: interpretation, response, status, actions (type/status/filePath), contextList, filesModified, designDecisions, requirementsDiscovered, blockers, and relevant processing dialog. +6. Follow workspace conventions in `.github/copilot-instructions.md` for build, test, and architecture guidance. +7. When you need API schemas, module examples, or compliance rules, load them from `docs/context/` or use `context_search`. +8. Do not fabricate information. If you made a mistake, acknowledge it. Distinguish facts from speculation. +9. Prioritize correctness over speed. Do not ship code you have not verified compiles and is logically sound. ## Where Things Live @@ -75,9 +72,9 @@ You represent the workspace owner. Your work directly reflects the owner's profe ### Source Attribution -- Document all web sources in the session log as actions with type "web_reference" (URL, title, usage). -- Add source URLs to the entry's contextList array. -- Attribute external code in both the session log and code comments. +- Document all web sources in the session log as actions with type "web_reference" (URL, title, usage). +- Add source URLs to the turn's contextList array. +- Attribute external code in both the session log and code comments. ## Requirements Tracking @@ -89,33 +86,31 @@ When you discover or agree on new requirements during a session: - `TR-per-FR-Mapping.md` — append mapping rows - `Requirements-Matrix.md` — append status rows - `Testing-Requirements.md` — append TEST-MCP-* entries -2. Include the requirement ID in your session log entry's tags. +2. Include the requirement ID in your session log turn's tags. 3. Capture requirements as they emerge. Do not defer to later. ## Design Decision Logging When a design decision is made: -1. Log it as a session log dialog entry with category "decision". +1. Log it as a session log dialog item with category "decision". 2. Include: the decision, alternatives considered, rationale, and affected requirements. 3. Add a session log action with type "design_decision". 4. If the decision affects existing code or requirements, note what needs updating. -## Session Continuity - -At the start of every session: - -1. Read `AGENTS-README-FIRST.yaml` for connection details. -2. Query recent session logs (limit 5) for context. -3. Query current TODOs. -4. Read `docs/Project/Requirements-Matrix.md` to understand project state. -5. If resuming interrupted work, review the last session's pending decisions. - -At regular intervals during long sessions (~10 interactions): - -1. Push an updated session log with all entries so far. -2. Ensure all design decisions are captured. -3. Verify requirements docs are up to date. +## Session Continuity + +At the start of every session: + +1. Follow the session-start checklist in `AGENTS-README-FIRST.yaml`. +2. Read `docs/Project/Requirements-Matrix.md` to understand project state. +3. If resuming interrupted work, review the last session's pending decisions. + +At regular intervals during long sessions (~10 interactions): + +1. Follow marker-file update cadence and session logging requirements from `AGENTS-README-FIRST.yaml`. +2. Ensure all design decisions are captured. +3. Verify requirements docs are up to date. ## Glossary @@ -132,3 +127,4 @@ At regular intervals during long sessions (~10 interactions): - Do not use table-style output in responses. - Use concise bullets or short paragraphs instead. + diff --git a/Dockerfile b/Dockerfile index 470c59ac..11402dea 100644 --- a/Dockerfile +++ b/Dockerfile @@ -2,26 +2,19 @@ FROM mcr.microsoft.com/dotnet/sdk:9.0 AS build WORKDIR /src -# Copy build infrastructure -COPY Directory.Build.props Directory.Build.targets Directory.Packages.props NuGet.config global.json ./ - -# Copy project files for restore -COPY src/McpServer.Support.Mcp/McpServer.Support.Mcp.csproj src/McpServer.Support.Mcp/ -COPY src/McpServer.ServiceDefaults/McpServer.ServiceDefaults.csproj src/McpServer.ServiceDefaults/ -COPY src/McpServer.Common.Copilot/McpServer.Common.Copilot.csproj src/McpServer.Common.Copilot/ - -# Restore (cached layer) -RUN dotnet restore src/McpServer.Support.Mcp/McpServer.Support.Mcp.csproj - -# Copy source code -COPY src/McpServer.Support.Mcp/ src/McpServer.Support.Mcp/ -COPY src/McpServer.ServiceDefaults/ src/McpServer.ServiceDefaults/ -COPY src/McpServer.Common.Copilot/ src/McpServer.Common.Copilot/ -COPY templates/ templates/ - -# Publish -RUN dotnet publish src/McpServer.Support.Mcp/McpServer.Support.Mcp.csproj \ - -c Release -o /app/publish --no-restore +# Copy build infrastructure +COPY Directory.Build.props Directory.Build.targets Directory.Packages.props NuGet.config global.json ./ + +# Copy source and templates +COPY src/ src/ +COPY templates/ templates/ + +# Restore (cached layer) +RUN dotnet restore src/McpServer.Support.Mcp/McpServer.Support.Mcp.csproj + +# Publish +RUN dotnet publish src/McpServer.Support.Mcp/McpServer.Support.Mcp.csproj \ + -c Release -o /app/publish --no-restore # Stage 2: Runtime FROM mcr.microsoft.com/dotnet/aspnet:9.0 diff --git a/GitVersion.yml b/GitVersion.yml index f0d8f669..cf82d828 100644 --- a/GitVersion.yml +++ b/GitVersion.yml @@ -1,5 +1,5 @@ mode: ContinuousDelivery -next-version: 0.2.57 +next-version: 0.2.59 assembly-versioning-scheme: MajorMinorPatch assembly-informational-format: '{SemVer}+Branch.{BranchName}.Sha.{ShortSha}' branches: diff --git a/McpServer.sln b/McpServer.sln index 4a2fbd40..d32da1ed 100644 --- a/McpServer.sln +++ b/McpServer.sln @@ -1,7 +1,7 @@  Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 18 -VisualStudioVersion = 18.2.11430.68 d18.0 +VisualStudioVersion = 18.2.11430.68 MinimumVisualStudioVersion = 10.0.40219.1 Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "src", "src", "{ACFF16D9-C460-4DAF-8806-E9FD58069B7B}" EndProject @@ -37,6 +37,20 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "McpServer.Services", "src\M EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "McpServer.GraphRag", "src\McpServer.GraphRag\McpServer.GraphRag.csproj", "{08BD5C78-2E4B-4726-925D-165BB93F021A}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "McpServer.Context.Validation", "tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj", "{D67363A2-E44B-4343-981C-A7F1BD91C637}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "McpServer.GitHub.Validation", "tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj", "{F1C78B67-98F1-4900-93BA-515A90608141}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "McpServer.Repo.Validation", "tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj", "{9F34A302-076D-4058-A2AD-558EECEB2BC9}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "McpServer.SessionLog.Validation", "tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj", "{9041EFE3-E35F-45CD-8B26-BD05D187BA66}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "McpServer.Todo.Validation", "tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj", "{47A07688-1499-4823-902A-98BC07077B05}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "McpServer.ToolRegistry.Validation", "tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj", "{0D95192B-7884-4762-9777-0B7C030A02CE}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "McpServer.Workspace.Validation", "tests\McpServer.Workspace.Validation\McpServer.Workspace.Validation.csproj", "{1255D16B-B9CC-4647-A567-C6ABCA1E166E}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -227,6 +241,90 @@ Global {08BD5C78-2E4B-4726-925D-165BB93F021A}.Release|x64.Build.0 = Release|Any CPU {08BD5C78-2E4B-4726-925D-165BB93F021A}.Release|x86.ActiveCfg = Release|Any CPU {08BD5C78-2E4B-4726-925D-165BB93F021A}.Release|x86.Build.0 = Release|Any CPU + {D67363A2-E44B-4343-981C-A7F1BD91C637}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {D67363A2-E44B-4343-981C-A7F1BD91C637}.Debug|Any CPU.Build.0 = Debug|Any CPU + {D67363A2-E44B-4343-981C-A7F1BD91C637}.Debug|x64.ActiveCfg = Debug|x64 + {D67363A2-E44B-4343-981C-A7F1BD91C637}.Debug|x64.Build.0 = Debug|x64 + {D67363A2-E44B-4343-981C-A7F1BD91C637}.Debug|x86.ActiveCfg = Debug|x86 + {D67363A2-E44B-4343-981C-A7F1BD91C637}.Debug|x86.Build.0 = Debug|x86 + {D67363A2-E44B-4343-981C-A7F1BD91C637}.Release|Any CPU.ActiveCfg = Release|Any CPU + {D67363A2-E44B-4343-981C-A7F1BD91C637}.Release|Any CPU.Build.0 = Release|Any CPU + {D67363A2-E44B-4343-981C-A7F1BD91C637}.Release|x64.ActiveCfg = Release|x64 + {D67363A2-E44B-4343-981C-A7F1BD91C637}.Release|x64.Build.0 = Release|x64 + {D67363A2-E44B-4343-981C-A7F1BD91C637}.Release|x86.ActiveCfg = Release|x86 + {D67363A2-E44B-4343-981C-A7F1BD91C637}.Release|x86.Build.0 = Release|x86 + {F1C78B67-98F1-4900-93BA-515A90608141}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F1C78B67-98F1-4900-93BA-515A90608141}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F1C78B67-98F1-4900-93BA-515A90608141}.Debug|x64.ActiveCfg = Debug|x64 + {F1C78B67-98F1-4900-93BA-515A90608141}.Debug|x64.Build.0 = Debug|x64 + {F1C78B67-98F1-4900-93BA-515A90608141}.Debug|x86.ActiveCfg = Debug|x86 + {F1C78B67-98F1-4900-93BA-515A90608141}.Debug|x86.Build.0 = Debug|x86 + {F1C78B67-98F1-4900-93BA-515A90608141}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F1C78B67-98F1-4900-93BA-515A90608141}.Release|Any CPU.Build.0 = Release|Any CPU + {F1C78B67-98F1-4900-93BA-515A90608141}.Release|x64.ActiveCfg = Release|x64 + {F1C78B67-98F1-4900-93BA-515A90608141}.Release|x64.Build.0 = Release|x64 + {F1C78B67-98F1-4900-93BA-515A90608141}.Release|x86.ActiveCfg = Release|x86 + {F1C78B67-98F1-4900-93BA-515A90608141}.Release|x86.Build.0 = Release|x86 + {9F34A302-076D-4058-A2AD-558EECEB2BC9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9F34A302-076D-4058-A2AD-558EECEB2BC9}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9F34A302-076D-4058-A2AD-558EECEB2BC9}.Debug|x64.ActiveCfg = Debug|x64 + {9F34A302-076D-4058-A2AD-558EECEB2BC9}.Debug|x64.Build.0 = Debug|x64 + {9F34A302-076D-4058-A2AD-558EECEB2BC9}.Debug|x86.ActiveCfg = Debug|x86 + {9F34A302-076D-4058-A2AD-558EECEB2BC9}.Debug|x86.Build.0 = Debug|x86 + {9F34A302-076D-4058-A2AD-558EECEB2BC9}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9F34A302-076D-4058-A2AD-558EECEB2BC9}.Release|Any CPU.Build.0 = Release|Any CPU + {9F34A302-076D-4058-A2AD-558EECEB2BC9}.Release|x64.ActiveCfg = Release|x64 + {9F34A302-076D-4058-A2AD-558EECEB2BC9}.Release|x64.Build.0 = Release|x64 + {9F34A302-076D-4058-A2AD-558EECEB2BC9}.Release|x86.ActiveCfg = Release|x86 + {9F34A302-076D-4058-A2AD-558EECEB2BC9}.Release|x86.Build.0 = Release|x86 + {9041EFE3-E35F-45CD-8B26-BD05D187BA66}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {9041EFE3-E35F-45CD-8B26-BD05D187BA66}.Debug|Any CPU.Build.0 = Debug|Any CPU + {9041EFE3-E35F-45CD-8B26-BD05D187BA66}.Debug|x64.ActiveCfg = Debug|x64 + {9041EFE3-E35F-45CD-8B26-BD05D187BA66}.Debug|x64.Build.0 = Debug|x64 + {9041EFE3-E35F-45CD-8B26-BD05D187BA66}.Debug|x86.ActiveCfg = Debug|x86 + {9041EFE3-E35F-45CD-8B26-BD05D187BA66}.Debug|x86.Build.0 = Debug|x86 + {9041EFE3-E35F-45CD-8B26-BD05D187BA66}.Release|Any CPU.ActiveCfg = Release|Any CPU + {9041EFE3-E35F-45CD-8B26-BD05D187BA66}.Release|Any CPU.Build.0 = Release|Any CPU + {9041EFE3-E35F-45CD-8B26-BD05D187BA66}.Release|x64.ActiveCfg = Release|x64 + {9041EFE3-E35F-45CD-8B26-BD05D187BA66}.Release|x64.Build.0 = Release|x64 + {9041EFE3-E35F-45CD-8B26-BD05D187BA66}.Release|x86.ActiveCfg = Release|x86 + {9041EFE3-E35F-45CD-8B26-BD05D187BA66}.Release|x86.Build.0 = Release|x86 + {47A07688-1499-4823-902A-98BC07077B05}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {47A07688-1499-4823-902A-98BC07077B05}.Debug|Any CPU.Build.0 = Debug|Any CPU + {47A07688-1499-4823-902A-98BC07077B05}.Debug|x64.ActiveCfg = Debug|x64 + {47A07688-1499-4823-902A-98BC07077B05}.Debug|x64.Build.0 = Debug|x64 + {47A07688-1499-4823-902A-98BC07077B05}.Debug|x86.ActiveCfg = Debug|x86 + {47A07688-1499-4823-902A-98BC07077B05}.Debug|x86.Build.0 = Debug|x86 + {47A07688-1499-4823-902A-98BC07077B05}.Release|Any CPU.ActiveCfg = Release|Any CPU + {47A07688-1499-4823-902A-98BC07077B05}.Release|Any CPU.Build.0 = Release|Any CPU + {47A07688-1499-4823-902A-98BC07077B05}.Release|x64.ActiveCfg = Release|x64 + {47A07688-1499-4823-902A-98BC07077B05}.Release|x64.Build.0 = Release|x64 + {47A07688-1499-4823-902A-98BC07077B05}.Release|x86.ActiveCfg = Release|x86 + {47A07688-1499-4823-902A-98BC07077B05}.Release|x86.Build.0 = Release|x86 + {0D95192B-7884-4762-9777-0B7C030A02CE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {0D95192B-7884-4762-9777-0B7C030A02CE}.Debug|Any CPU.Build.0 = Debug|Any CPU + {0D95192B-7884-4762-9777-0B7C030A02CE}.Debug|x64.ActiveCfg = Debug|x64 + {0D95192B-7884-4762-9777-0B7C030A02CE}.Debug|x64.Build.0 = Debug|x64 + {0D95192B-7884-4762-9777-0B7C030A02CE}.Debug|x86.ActiveCfg = Debug|x86 + {0D95192B-7884-4762-9777-0B7C030A02CE}.Debug|x86.Build.0 = Debug|x86 + {0D95192B-7884-4762-9777-0B7C030A02CE}.Release|Any CPU.ActiveCfg = Release|Any CPU + {0D95192B-7884-4762-9777-0B7C030A02CE}.Release|Any CPU.Build.0 = Release|Any CPU + {0D95192B-7884-4762-9777-0B7C030A02CE}.Release|x64.ActiveCfg = Release|x64 + {0D95192B-7884-4762-9777-0B7C030A02CE}.Release|x64.Build.0 = Release|x64 + {0D95192B-7884-4762-9777-0B7C030A02CE}.Release|x86.ActiveCfg = Release|x86 + {0D95192B-7884-4762-9777-0B7C030A02CE}.Release|x86.Build.0 = Release|x86 + {1255D16B-B9CC-4647-A567-C6ABCA1E166E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {1255D16B-B9CC-4647-A567-C6ABCA1E166E}.Debug|Any CPU.Build.0 = Debug|Any CPU + {1255D16B-B9CC-4647-A567-C6ABCA1E166E}.Debug|x64.ActiveCfg = Debug|x64 + {1255D16B-B9CC-4647-A567-C6ABCA1E166E}.Debug|x64.Build.0 = Debug|x64 + {1255D16B-B9CC-4647-A567-C6ABCA1E166E}.Debug|x86.ActiveCfg = Debug|x86 + {1255D16B-B9CC-4647-A567-C6ABCA1E166E}.Debug|x86.Build.0 = Debug|x86 + {1255D16B-B9CC-4647-A567-C6ABCA1E166E}.Release|Any CPU.ActiveCfg = Release|Any CPU + {1255D16B-B9CC-4647-A567-C6ABCA1E166E}.Release|Any CPU.Build.0 = Release|Any CPU + {1255D16B-B9CC-4647-A567-C6ABCA1E166E}.Release|x64.ActiveCfg = Release|x64 + {1255D16B-B9CC-4647-A567-C6ABCA1E166E}.Release|x64.Build.0 = Release|x64 + {1255D16B-B9CC-4647-A567-C6ABCA1E166E}.Release|x86.ActiveCfg = Release|x86 + {1255D16B-B9CC-4647-A567-C6ABCA1E166E}.Release|x86.Build.0 = Release|x86 EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -247,5 +345,12 @@ Global {3440E91F-278D-4963-8992-C844AC9ADEE1} = {ACFF16D9-C460-4DAF-8806-E9FD58069B7B} {EEC626B7-1F0E-405B-96B9-BE27447F4D9E} = {ACFF16D9-C460-4DAF-8806-E9FD58069B7B} {08BD5C78-2E4B-4726-925D-165BB93F021A} = {ACFF16D9-C460-4DAF-8806-E9FD58069B7B} + {D67363A2-E44B-4343-981C-A7F1BD91C637} = {75E852DF-4CB3-4318-9A92-82F84CD3DFA7} + {F1C78B67-98F1-4900-93BA-515A90608141} = {75E852DF-4CB3-4318-9A92-82F84CD3DFA7} + {9F34A302-076D-4058-A2AD-558EECEB2BC9} = {75E852DF-4CB3-4318-9A92-82F84CD3DFA7} + {9041EFE3-E35F-45CD-8B26-BD05D187BA66} = {75E852DF-4CB3-4318-9A92-82F84CD3DFA7} + {47A07688-1499-4823-902A-98BC07077B05} = {75E852DF-4CB3-4318-9A92-82F84CD3DFA7} + {0D95192B-7884-4762-9777-0B7C030A02CE} = {75E852DF-4CB3-4318-9A92-82F84CD3DFA7} + {1255D16B-B9CC-4647-A567-C6ABCA1E166E} = {75E852DF-4CB3-4318-9A92-82F84CD3DFA7} EndGlobalSection EndGlobal diff --git a/README.md b/README.md index 7b154da4..a0ddb907 100644 --- a/README.md +++ b/README.md @@ -266,7 +266,7 @@ var client = McpServerClientFactory.Create(new McpServerClientOptions Covers all API endpoints: Todo, Context, SessionLog, GitHub, Repo, Sync, Workspace, and Tools. -Source: `src/McpServer.Client/` — see the [package README](src/McpServer.Client/README.md) for full usage. +Source: `src/McpServer.Client/` — see the [package README](#) for full usage. ## Additional Documentation diff --git a/api/McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.yml b/api/McpServer.Support.Mcp.Storage.Entities.SessionLogTurnContextEntity.yml similarity index 97% rename from api/McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.yml rename to api/McpServer.Support.Mcp.Storage.Entities.SessionLogTurnContextEntity.yml index 643a8f7a..94090010 100644 --- a/api/McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.yml +++ b/api/McpServer.Support.Mcp.Storage.Entities.SessionLogTurnContextEntity.yml @@ -1,537 +1,537 @@ -### YamlMime:ManagedReference -items: -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity - commentId: T:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity - id: SessionLogEntryContextEntity - parent: McpServer.Support.Mcp.Storage.Entities - children: - - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.ContextItem - - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.Id - - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.Ordinal - - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.SessionLogEntry - - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.SessionLogEntryId - langs: - - csharp - - vb - name: SessionLogEntryContextEntity - nameWithType: SessionLogEntryContextEntity - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity - type: Class - source: - id: SessionLogEntryContextEntity - path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryContextEntity.cs - startLine: 8 - assemblies: - - McpServer.Support.Mcp - namespace: McpServer.Support.Mcp.Storage.Entities - summary: >- - TR-PLANNED-013: 4NF context item entity. One row per context reference on a session log entry. - - FR-SUPPORT-010: Eliminates multi-valued dependency on context list. - example: [] - syntax: - content: public sealed class SessionLogEntryContextEntity - content.vb: Public NotInheritable Class SessionLogEntryContextEntity - inheritance: - - System.Object - inheritedMembers: - - System.Object.Equals(System.Object) - - System.Object.Equals(System.Object,System.Object) - - System.Object.GetHashCode - - System.Object.GetType - - System.Object.ReferenceEquals(System.Object,System.Object) - - System.Object.ToString -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.Id - commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.Id - id: Id - parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity - langs: - - csharp - - vb - name: Id - nameWithType: SessionLogEntryContextEntity.Id - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.Id - type: Property - source: - id: Id - path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryContextEntity.cs - startLine: 11 - assemblies: - - McpServer.Support.Mcp - namespace: McpServer.Support.Mcp.Storage.Entities - summary: 'TR-PLANNED-013: Auto-generated primary key.' - example: [] - syntax: - content: >- - [Key] - - public long Id { get; set; } - parameters: [] - return: - type: System.Int64 - content.vb: >- - - - Public Property Id As Long - overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.Id* - attributes: - - type: System.ComponentModel.DataAnnotations.KeyAttribute - ctor: System.ComponentModel.DataAnnotations.KeyAttribute.#ctor - arguments: [] -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.SessionLogEntryId - commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.SessionLogEntryId - id: SessionLogEntryId - parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity - langs: - - csharp - - vb - name: SessionLogEntryId - nameWithType: SessionLogEntryContextEntity.SessionLogEntryId - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.SessionLogEntryId - type: Property - source: - id: SessionLogEntryId - path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryContextEntity.cs - startLine: 15 - assemblies: - - McpServer.Support.Mcp - namespace: McpServer.Support.Mcp.Storage.Entities - summary: 'TR-PLANNED-013: Foreign key to parent entry.' - example: [] - syntax: - content: public long SessionLogEntryId { get; set; } - parameters: [] - return: - type: System.Int64 - content.vb: Public Property SessionLogEntryId As Long - overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.SessionLogEntryId* -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.Ordinal - commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.Ordinal - id: Ordinal - parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity - langs: - - csharp - - vb - name: Ordinal - nameWithType: SessionLogEntryContextEntity.Ordinal - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.Ordinal - type: Property - source: - id: Ordinal - path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryContextEntity.cs - startLine: 18 - assemblies: - - McpServer.Support.Mcp - namespace: McpServer.Support.Mcp.Storage.Entities - summary: 'TR-PLANNED-013: Ordinal position within the context list.' - example: [] - syntax: - content: public int Ordinal { get; set; } - parameters: [] - return: - type: System.Int32 - content.vb: Public Property Ordinal As Integer - overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.Ordinal* -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.ContextItem - commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.ContextItem - id: ContextItem - parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity - langs: - - csharp - - vb - name: ContextItem - nameWithType: SessionLogEntryContextEntity.ContextItem - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.ContextItem - type: Property - source: - id: ContextItem - path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryContextEntity.cs - startLine: 21 - assemblies: - - McpServer.Support.Mcp - namespace: McpServer.Support.Mcp.Storage.Entities - summary: 'TR-PLANNED-013: Context item value (path, URL, or reference).' - example: [] - syntax: - content: >- - [Required] - - [MaxLength(2048)] - - public required string ContextItem { get; set; } - parameters: [] - return: - type: System.String - content.vb: >- - - - - - Public Property ContextItem As String - overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.ContextItem* - attributes: - - type: System.ComponentModel.DataAnnotations.RequiredAttribute - ctor: System.ComponentModel.DataAnnotations.RequiredAttribute.#ctor - arguments: [] - - type: System.ComponentModel.DataAnnotations.MaxLengthAttribute - ctor: System.ComponentModel.DataAnnotations.MaxLengthAttribute.#ctor(System.Int32) - arguments: - - type: System.Int32 - value: 2048 -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.SessionLogEntry - commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.SessionLogEntry - id: SessionLogEntry - parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity - langs: - - csharp - - vb - name: SessionLogEntry - nameWithType: SessionLogEntryContextEntity.SessionLogEntry - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.SessionLogEntry - type: Property - source: - id: SessionLogEntry - path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryContextEntity.cs - startLine: 26 - assemblies: - - McpServer.Support.Mcp - namespace: McpServer.Support.Mcp.Storage.Entities - summary: 'TR-PLANNED-013: Navigation to parent entry.' - example: [] - syntax: - content: public SessionLogEntryEntity? SessionLogEntry { get; set; } - parameters: [] - return: - type: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity - content.vb: Public Property SessionLogEntry As SessionLogEntryEntity - overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.SessionLogEntry* -references: -- uid: McpServer.Support.Mcp.Storage.Entities - commentId: N:McpServer.Support.Mcp.Storage.Entities - href: McpServer.html - name: McpServer.Support.Mcp.Storage.Entities - nameWithType: McpServer.Support.Mcp.Storage.Entities - fullName: McpServer.Support.Mcp.Storage.Entities - spec.csharp: - - uid: McpServer - name: McpServer - href: McpServer.html - - name: . - - uid: McpServer.Support - name: Support - href: McpServer.Support.html - - name: . - - uid: McpServer.Support.Mcp - name: Mcp - href: McpServer.Support.Mcp.html - - name: . - - uid: McpServer.Support.Mcp.Storage - name: Storage - href: McpServer.Support.Mcp.Storage.html - - name: . - - uid: McpServer.Support.Mcp.Storage.Entities - name: Entities - href: McpServer.Support.Mcp.Storage.Entities.html - spec.vb: - - uid: McpServer - name: McpServer - href: McpServer.html - - name: . - - uid: McpServer.Support - name: Support - href: McpServer.Support.html - - name: . - - uid: McpServer.Support.Mcp - name: Mcp - href: McpServer.Support.Mcp.html - - name: . - - uid: McpServer.Support.Mcp.Storage - name: Storage - href: McpServer.Support.Mcp.Storage.html - - name: . - - uid: McpServer.Support.Mcp.Storage.Entities - name: Entities - href: McpServer.Support.Mcp.Storage.Entities.html -- uid: System.Object - commentId: T:System.Object - parent: System - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object - name: object - nameWithType: object - fullName: object - nameWithType.vb: Object - fullName.vb: Object - name.vb: Object -- uid: System.Object.Equals(System.Object) - commentId: M:System.Object.Equals(System.Object) - parent: System.Object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object) - name: Equals(object) - nameWithType: object.Equals(object) - fullName: object.Equals(object) - nameWithType.vb: Object.Equals(Object) - fullName.vb: Object.Equals(Object) - name.vb: Equals(Object) - spec.csharp: - - uid: System.Object.Equals(System.Object) - name: Equals - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object) - - name: ( - - uid: System.Object - name: object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object - - name: ) - spec.vb: - - uid: System.Object.Equals(System.Object) - name: Equals - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object) - - name: ( - - uid: System.Object - name: Object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object - - name: ) -- uid: System.Object.Equals(System.Object,System.Object) - commentId: M:System.Object.Equals(System.Object,System.Object) - parent: System.Object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object) - name: Equals(object, object) - nameWithType: object.Equals(object, object) - fullName: object.Equals(object, object) - nameWithType.vb: Object.Equals(Object, Object) - fullName.vb: Object.Equals(Object, Object) - name.vb: Equals(Object, Object) - spec.csharp: - - uid: System.Object.Equals(System.Object,System.Object) - name: Equals - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object) - - name: ( - - uid: System.Object - name: object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object - - name: ',' - - name: " " - - uid: System.Object - name: object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object - - name: ) - spec.vb: - - uid: System.Object.Equals(System.Object,System.Object) - name: Equals - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object) - - name: ( - - uid: System.Object - name: Object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object - - name: ',' - - name: " " - - uid: System.Object - name: Object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object - - name: ) -- uid: System.Object.GetHashCode - commentId: M:System.Object.GetHashCode - parent: System.Object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.gethashcode - name: GetHashCode() - nameWithType: object.GetHashCode() - fullName: object.GetHashCode() - nameWithType.vb: Object.GetHashCode() - fullName.vb: Object.GetHashCode() - spec.csharp: - - uid: System.Object.GetHashCode - name: GetHashCode - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.gethashcode - - name: ( - - name: ) - spec.vb: - - uid: System.Object.GetHashCode - name: GetHashCode - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.gethashcode - - name: ( - - name: ) -- uid: System.Object.GetType - commentId: M:System.Object.GetType - parent: System.Object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.gettype - name: GetType() - nameWithType: object.GetType() - fullName: object.GetType() - nameWithType.vb: Object.GetType() - fullName.vb: Object.GetType() - spec.csharp: - - uid: System.Object.GetType - name: GetType - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.gettype - - name: ( - - name: ) - spec.vb: - - uid: System.Object.GetType - name: GetType - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.gettype - - name: ( - - name: ) -- uid: System.Object.ReferenceEquals(System.Object,System.Object) - commentId: M:System.Object.ReferenceEquals(System.Object,System.Object) - parent: System.Object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.referenceequals - name: ReferenceEquals(object, object) - nameWithType: object.ReferenceEquals(object, object) - fullName: object.ReferenceEquals(object, object) - nameWithType.vb: Object.ReferenceEquals(Object, Object) - fullName.vb: Object.ReferenceEquals(Object, Object) - name.vb: ReferenceEquals(Object, Object) - spec.csharp: - - uid: System.Object.ReferenceEquals(System.Object,System.Object) - name: ReferenceEquals - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.referenceequals - - name: ( - - uid: System.Object - name: object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object - - name: ',' - - name: " " - - uid: System.Object - name: object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object - - name: ) - spec.vb: - - uid: System.Object.ReferenceEquals(System.Object,System.Object) - name: ReferenceEquals - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.referenceequals - - name: ( - - uid: System.Object - name: Object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object - - name: ',' - - name: " " - - uid: System.Object - name: Object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object - - name: ) -- uid: System.Object.ToString - commentId: M:System.Object.ToString - parent: System.Object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.tostring - name: ToString() - nameWithType: object.ToString() - fullName: object.ToString() - nameWithType.vb: Object.ToString() - fullName.vb: Object.ToString() - spec.csharp: - - uid: System.Object.ToString - name: ToString - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.tostring - - name: ( - - name: ) - spec.vb: - - uid: System.Object.ToString - name: ToString - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.tostring - - name: ( - - name: ) -- uid: System - commentId: N:System - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system - name: System - nameWithType: System - fullName: System -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.Id* - commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.Id - href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryContextEntity_Id - name: Id - nameWithType: SessionLogEntryContextEntity.Id - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.Id -- uid: System.Int64 - commentId: T:System.Int64 - parent: System - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.int64 - name: long - nameWithType: long - fullName: long - nameWithType.vb: Long - fullName.vb: Long - name.vb: Long -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.SessionLogEntryId* - commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.SessionLogEntryId - href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryContextEntity_SessionLogEntryId - name: SessionLogEntryId - nameWithType: SessionLogEntryContextEntity.SessionLogEntryId - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.SessionLogEntryId -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.Ordinal* - commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.Ordinal - href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryContextEntity_Ordinal - name: Ordinal - nameWithType: SessionLogEntryContextEntity.Ordinal - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.Ordinal -- uid: System.Int32 - commentId: T:System.Int32 - parent: System - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.int32 - name: int - nameWithType: int - fullName: int - nameWithType.vb: Integer - fullName.vb: Integer - name.vb: Integer -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.ContextItem* - commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.ContextItem - href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryContextEntity_ContextItem - name: ContextItem - nameWithType: SessionLogEntryContextEntity.ContextItem - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.ContextItem -- uid: System.String - commentId: T:System.String - parent: System - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.string - name: string - nameWithType: string - fullName: string - nameWithType.vb: String - fullName.vb: String - name.vb: String -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.SessionLogEntry* - commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.SessionLogEntry - href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryContextEntity_SessionLogEntry - name: SessionLogEntry - nameWithType: SessionLogEntryContextEntity.SessionLogEntry - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.SessionLogEntry -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity - commentId: T:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity - parent: McpServer.Support.Mcp.Storage.Entities - href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html - name: SessionLogEntryEntity - nameWithType: SessionLogEntryEntity - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity +### YamlMime:ManagedReference +items: +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity + commentId: T:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity + id: SessionLogEntryContextEntity + parent: McpServer.Support.Mcp.Storage.Entities + children: + - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.ContextItem + - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.Id + - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.Ordinal + - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.SessionLogEntry + - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.SessionLogEntryId + langs: + - csharp + - vb + name: SessionLogEntryContextEntity + nameWithType: SessionLogEntryContextEntity + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity + type: Class + source: + id: SessionLogEntryContextEntity + path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryContextEntity.cs + startLine: 8 + assemblies: + - McpServer.Support.Mcp + namespace: McpServer.Support.Mcp.Storage.Entities + summary: >- + TR-PLANNED-013: 4NF context item entity. One row per context reference on a session log entry. + + FR-SUPPORT-010: Eliminates multi-valued dependency on context list. + example: [] + syntax: + content: public sealed class SessionLogEntryContextEntity + content.vb: Public NotInheritable Class SessionLogEntryContextEntity + inheritance: + - System.Object + inheritedMembers: + - System.Object.Equals(System.Object) + - System.Object.Equals(System.Object,System.Object) + - System.Object.GetHashCode + - System.Object.GetType + - System.Object.ReferenceEquals(System.Object,System.Object) + - System.Object.ToString +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.Id + commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.Id + id: Id + parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity + langs: + - csharp + - vb + name: Id + nameWithType: SessionLogEntryContextEntity.Id + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.Id + type: Property + source: + id: Id + path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryContextEntity.cs + startLine: 11 + assemblies: + - McpServer.Support.Mcp + namespace: McpServer.Support.Mcp.Storage.Entities + summary: 'TR-PLANNED-013: Auto-generated primary key.' + example: [] + syntax: + content: >- + [Key] + + public long Id { get; set; } + parameters: [] + return: + type: System.Int64 + content.vb: >- + + + Public Property Id As Long + overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.Id* + attributes: + - type: System.ComponentModel.DataAnnotations.KeyAttribute + ctor: System.ComponentModel.DataAnnotations.KeyAttribute.#ctor + arguments: [] +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.SessionLogEntryId + commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.SessionLogEntryId + id: SessionLogEntryId + parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity + langs: + - csharp + - vb + name: SessionLogEntryId + nameWithType: SessionLogEntryContextEntity.SessionLogEntryId + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.SessionLogEntryId + type: Property + source: + id: SessionLogEntryId + path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryContextEntity.cs + startLine: 15 + assemblies: + - McpServer.Support.Mcp + namespace: McpServer.Support.Mcp.Storage.Entities + summary: 'TR-PLANNED-013: Foreign key to parent entry.' + example: [] + syntax: + content: public long SessionLogEntryId { get; set; } + parameters: [] + return: + type: System.Int64 + content.vb: Public Property SessionLogEntryId As Long + overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.SessionLogEntryId* +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.Ordinal + commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.Ordinal + id: Ordinal + parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity + langs: + - csharp + - vb + name: Ordinal + nameWithType: SessionLogEntryContextEntity.Ordinal + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.Ordinal + type: Property + source: + id: Ordinal + path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryContextEntity.cs + startLine: 18 + assemblies: + - McpServer.Support.Mcp + namespace: McpServer.Support.Mcp.Storage.Entities + summary: 'TR-PLANNED-013: Ordinal position within the context list.' + example: [] + syntax: + content: public int Ordinal { get; set; } + parameters: [] + return: + type: System.Int32 + content.vb: Public Property Ordinal As Integer + overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.Ordinal* +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.ContextItem + commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.ContextItem + id: ContextItem + parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity + langs: + - csharp + - vb + name: ContextItem + nameWithType: SessionLogEntryContextEntity.ContextItem + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.ContextItem + type: Property + source: + id: ContextItem + path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryContextEntity.cs + startLine: 21 + assemblies: + - McpServer.Support.Mcp + namespace: McpServer.Support.Mcp.Storage.Entities + summary: 'TR-PLANNED-013: Context item value (path, URL, or reference).' + example: [] + syntax: + content: >- + [Required] + + [MaxLength(2048)] + + public required string ContextItem { get; set; } + parameters: [] + return: + type: System.String + content.vb: >- + + + + + Public Property ContextItem As String + overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.ContextItem* + attributes: + - type: System.ComponentModel.DataAnnotations.RequiredAttribute + ctor: System.ComponentModel.DataAnnotations.RequiredAttribute.#ctor + arguments: [] + - type: System.ComponentModel.DataAnnotations.MaxLengthAttribute + ctor: System.ComponentModel.DataAnnotations.MaxLengthAttribute.#ctor(System.Int32) + arguments: + - type: System.Int32 + value: 2048 +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.SessionLogEntry + commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.SessionLogEntry + id: SessionLogEntry + parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity + langs: + - csharp + - vb + name: SessionLogEntry + nameWithType: SessionLogEntryContextEntity.SessionLogEntry + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.SessionLogEntry + type: Property + source: + id: SessionLogEntry + path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryContextEntity.cs + startLine: 26 + assemblies: + - McpServer.Support.Mcp + namespace: McpServer.Support.Mcp.Storage.Entities + summary: 'TR-PLANNED-013: Navigation to parent entry.' + example: [] + syntax: + content: public SessionLogEntryEntity? SessionLogEntry { get; set; } + parameters: [] + return: + type: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity + content.vb: Public Property SessionLogEntry As SessionLogEntryEntity + overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.SessionLogEntry* +references: +- uid: McpServer.Support.Mcp.Storage.Entities + commentId: N:McpServer.Support.Mcp.Storage.Entities + href: McpServer.html + name: McpServer.Support.Mcp.Storage.Entities + nameWithType: McpServer.Support.Mcp.Storage.Entities + fullName: McpServer.Support.Mcp.Storage.Entities + spec.csharp: + - uid: McpServer + name: McpServer + href: McpServer.html + - name: . + - uid: McpServer.Support + name: Support + href: McpServer.Support.html + - name: . + - uid: McpServer.Support.Mcp + name: Mcp + href: McpServer.Support.Mcp.html + - name: . + - uid: McpServer.Support.Mcp.Storage + name: Storage + href: McpServer.Support.Mcp.Storage.html + - name: . + - uid: McpServer.Support.Mcp.Storage.Entities + name: Entities + href: McpServer.Support.Mcp.Storage.Entities.html + spec.vb: + - uid: McpServer + name: McpServer + href: McpServer.html + - name: . + - uid: McpServer.Support + name: Support + href: McpServer.Support.html + - name: . + - uid: McpServer.Support.Mcp + name: Mcp + href: McpServer.Support.Mcp.html + - name: . + - uid: McpServer.Support.Mcp.Storage + name: Storage + href: McpServer.Support.Mcp.Storage.html + - name: . + - uid: McpServer.Support.Mcp.Storage.Entities + name: Entities + href: McpServer.Support.Mcp.Storage.Entities.html +- uid: System.Object + commentId: T:System.Object + parent: System + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object + name: object + nameWithType: object + fullName: object + nameWithType.vb: Object + fullName.vb: Object + name.vb: Object +- uid: System.Object.Equals(System.Object) + commentId: M:System.Object.Equals(System.Object) + parent: System.Object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object) + name: Equals(object) + nameWithType: object.Equals(object) + fullName: object.Equals(object) + nameWithType.vb: Object.Equals(Object) + fullName.vb: Object.Equals(Object) + name.vb: Equals(Object) + spec.csharp: + - uid: System.Object.Equals(System.Object) + name: Equals + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object) + - name: ( + - uid: System.Object + name: object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object + - name: ) + spec.vb: + - uid: System.Object.Equals(System.Object) + name: Equals + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object) + - name: ( + - uid: System.Object + name: Object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object + - name: ) +- uid: System.Object.Equals(System.Object,System.Object) + commentId: M:System.Object.Equals(System.Object,System.Object) + parent: System.Object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object) + name: Equals(object, object) + nameWithType: object.Equals(object, object) + fullName: object.Equals(object, object) + nameWithType.vb: Object.Equals(Object, Object) + fullName.vb: Object.Equals(Object, Object) + name.vb: Equals(Object, Object) + spec.csharp: + - uid: System.Object.Equals(System.Object,System.Object) + name: Equals + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object) + - name: ( + - uid: System.Object + name: object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object + - name: ',' + - name: " " + - uid: System.Object + name: object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object + - name: ) + spec.vb: + - uid: System.Object.Equals(System.Object,System.Object) + name: Equals + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object) + - name: ( + - uid: System.Object + name: Object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object + - name: ',' + - name: " " + - uid: System.Object + name: Object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object + - name: ) +- uid: System.Object.GetHashCode + commentId: M:System.Object.GetHashCode + parent: System.Object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.gethashcode + name: GetHashCode() + nameWithType: object.GetHashCode() + fullName: object.GetHashCode() + nameWithType.vb: Object.GetHashCode() + fullName.vb: Object.GetHashCode() + spec.csharp: + - uid: System.Object.GetHashCode + name: GetHashCode + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.gethashcode + - name: ( + - name: ) + spec.vb: + - uid: System.Object.GetHashCode + name: GetHashCode + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.gethashcode + - name: ( + - name: ) +- uid: System.Object.GetType + commentId: M:System.Object.GetType + parent: System.Object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.gettype + name: GetType() + nameWithType: object.GetType() + fullName: object.GetType() + nameWithType.vb: Object.GetType() + fullName.vb: Object.GetType() + spec.csharp: + - uid: System.Object.GetType + name: GetType + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.gettype + - name: ( + - name: ) + spec.vb: + - uid: System.Object.GetType + name: GetType + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.gettype + - name: ( + - name: ) +- uid: System.Object.ReferenceEquals(System.Object,System.Object) + commentId: M:System.Object.ReferenceEquals(System.Object,System.Object) + parent: System.Object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.referenceequals + name: ReferenceEquals(object, object) + nameWithType: object.ReferenceEquals(object, object) + fullName: object.ReferenceEquals(object, object) + nameWithType.vb: Object.ReferenceEquals(Object, Object) + fullName.vb: Object.ReferenceEquals(Object, Object) + name.vb: ReferenceEquals(Object, Object) + spec.csharp: + - uid: System.Object.ReferenceEquals(System.Object,System.Object) + name: ReferenceEquals + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.referenceequals + - name: ( + - uid: System.Object + name: object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object + - name: ',' + - name: " " + - uid: System.Object + name: object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object + - name: ) + spec.vb: + - uid: System.Object.ReferenceEquals(System.Object,System.Object) + name: ReferenceEquals + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.referenceequals + - name: ( + - uid: System.Object + name: Object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object + - name: ',' + - name: " " + - uid: System.Object + name: Object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object + - name: ) +- uid: System.Object.ToString + commentId: M:System.Object.ToString + parent: System.Object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.tostring + name: ToString() + nameWithType: object.ToString() + fullName: object.ToString() + nameWithType.vb: Object.ToString() + fullName.vb: Object.ToString() + spec.csharp: + - uid: System.Object.ToString + name: ToString + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.tostring + - name: ( + - name: ) + spec.vb: + - uid: System.Object.ToString + name: ToString + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.tostring + - name: ( + - name: ) +- uid: System + commentId: N:System + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system + name: System + nameWithType: System + fullName: System +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.Id* + commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.Id + href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryContextEntity_Id + name: Id + nameWithType: SessionLogEntryContextEntity.Id + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.Id +- uid: System.Int64 + commentId: T:System.Int64 + parent: System + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.int64 + name: long + nameWithType: long + fullName: long + nameWithType.vb: Long + fullName.vb: Long + name.vb: Long +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.SessionLogEntryId* + commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.SessionLogEntryId + href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryContextEntity_SessionLogEntryId + name: SessionLogEntryId + nameWithType: SessionLogEntryContextEntity.SessionLogEntryId + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.SessionLogEntryId +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.Ordinal* + commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.Ordinal + href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryContextEntity_Ordinal + name: Ordinal + nameWithType: SessionLogEntryContextEntity.Ordinal + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.Ordinal +- uid: System.Int32 + commentId: T:System.Int32 + parent: System + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.int32 + name: int + nameWithType: int + fullName: int + nameWithType.vb: Integer + fullName.vb: Integer + name.vb: Integer +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.ContextItem* + commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.ContextItem + href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryContextEntity_ContextItem + name: ContextItem + nameWithType: SessionLogEntryContextEntity.ContextItem + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.ContextItem +- uid: System.String + commentId: T:System.String + parent: System + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.string + name: string + nameWithType: string + fullName: string + nameWithType.vb: String + fullName.vb: String + name.vb: String +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.SessionLogEntry* + commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.SessionLogEntry + href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryContextEntity_SessionLogEntry + name: SessionLogEntry + nameWithType: SessionLogEntryContextEntity.SessionLogEntry + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.SessionLogEntry +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity + commentId: T:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity + parent: McpServer.Support.Mcp.Storage.Entities + href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html + name: SessionLogEntryEntity + nameWithType: SessionLogEntryEntity + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity diff --git a/api/McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.yml b/api/McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity.yml similarity index 97% rename from api/McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.yml rename to api/McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity.yml index 8000838f..fd8cd204 100644 --- a/api/McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.yml +++ b/api/McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity.yml @@ -1,1459 +1,1459 @@ -### YamlMime:ManagedReference -items: -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity - commentId: T:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity - id: SessionLogEntryEntity - parent: McpServer.Support.Mcp.Storage.Entities - children: - - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Actions - - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ContextItems - - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.FailureNote - - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Id - - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Interpretation - - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.IsPremium - - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Model - - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ModelProvider - - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.OriginalEntryJson - - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ProcessingDialog - - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.QueryText - - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.QueryTitle - - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.RawContextJson - - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.RequestId - - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Response - - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Score - - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.SessionLog - - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.SessionLogId - - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Status - - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Tags - - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Timestamp - - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.TokenCount - langs: - - csharp - - vb - name: SessionLogEntryEntity - nameWithType: SessionLogEntryEntity - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity - type: Class - source: - id: SessionLogEntryEntity - path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryEntity.cs - startLine: 9 - assemblies: - - McpServer.Support.Mcp - namespace: McpServer.Support.Mcp.Storage.Entities - summary: >- - TR-PLANNED-013: 4NF session log entry entity. One row per request/response pair. - - FR-SUPPORT-010: Child of . - example: [] - syntax: - content: public sealed class SessionLogEntryEntity - content.vb: Public NotInheritable Class SessionLogEntryEntity - inheritance: - - System.Object - inheritedMembers: - - System.Object.Equals(System.Object) - - System.Object.Equals(System.Object,System.Object) - - System.Object.GetHashCode - - System.Object.GetType - - System.Object.ReferenceEquals(System.Object,System.Object) - - System.Object.ToString -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Id - commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Id - id: Id - parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity - langs: - - csharp - - vb - name: Id - nameWithType: SessionLogEntryEntity.Id - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Id - type: Property - source: - id: Id - path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryEntity.cs - startLine: 12 - assemblies: - - McpServer.Support.Mcp - namespace: McpServer.Support.Mcp.Storage.Entities - summary: 'TR-PLANNED-013: Auto-generated primary key.' - example: [] - syntax: - content: >- - [Key] - - public long Id { get; set; } - parameters: [] - return: - type: System.Int64 - content.vb: >- - - - Public Property Id As Long - overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Id* - attributes: - - type: System.ComponentModel.DataAnnotations.KeyAttribute - ctor: System.ComponentModel.DataAnnotations.KeyAttribute.#ctor - arguments: [] -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.SessionLogId - commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.SessionLogId - id: SessionLogId - parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity - langs: - - csharp - - vb - name: SessionLogId - nameWithType: SessionLogEntryEntity.SessionLogId - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.SessionLogId - type: Property - source: - id: SessionLogId - path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryEntity.cs - startLine: 16 - assemblies: - - McpServer.Support.Mcp - namespace: McpServer.Support.Mcp.Storage.Entities - summary: 'TR-PLANNED-013: Foreign key to parent session.' - example: [] - syntax: - content: public long SessionLogId { get; set; } - parameters: [] - return: - type: System.Int64 - content.vb: Public Property SessionLogId As Long - overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.SessionLogId* -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.RequestId - commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.RequestId - id: RequestId - parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity - langs: - - csharp - - vb - name: RequestId - nameWithType: SessionLogEntryEntity.RequestId - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.RequestId - type: Property - source: - id: RequestId - path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryEntity.cs - startLine: 19 - assemblies: - - McpServer.Support.Mcp - namespace: McpServer.Support.Mcp.Storage.Entities - summary: 'TR-PLANNED-013: Unique request identifier within the session.' - example: [] - syntax: - content: >- - [MaxLength(256)] - - public string? RequestId { get; set; } - parameters: [] - return: - type: System.String - content.vb: >- - - - Public Property RequestId As String - overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.RequestId* - attributes: - - type: System.ComponentModel.DataAnnotations.MaxLengthAttribute - ctor: System.ComponentModel.DataAnnotations.MaxLengthAttribute.#ctor(System.Int32) - arguments: - - type: System.Int32 - value: 256 -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Timestamp - commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Timestamp - id: Timestamp - parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity - langs: - - csharp - - vb - name: Timestamp - nameWithType: SessionLogEntryEntity.Timestamp - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Timestamp - type: Property - source: - id: Timestamp - path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryEntity.cs - startLine: 23 - assemblies: - - McpServer.Support.Mcp - namespace: McpServer.Support.Mcp.Storage.Entities - summary: 'TR-PLANNED-013: Timestamp of the request (UTC).' - example: [] - syntax: - content: public DateTimeOffset? Timestamp { get; set; } - parameters: [] - return: - type: System.Nullable{System.DateTimeOffset} - content.vb: Public Property Timestamp As DateTimeOffset? - overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Timestamp* -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Model - commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Model - id: Model - parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity - langs: - - csharp - - vb - name: Model - nameWithType: SessionLogEntryEntity.Model - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Model - type: Property - source: - id: Model - path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryEntity.cs - startLine: 26 - assemblies: - - McpServer.Support.Mcp - namespace: McpServer.Support.Mcp.Storage.Entities - summary: 'TR-PLANNED-013: AI model used for this entry.' - example: [] - syntax: - content: >- - [MaxLength(128)] - - public string? Model { get; set; } - parameters: [] - return: - type: System.String - content.vb: >- - - - Public Property Model As String - overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Model* - attributes: - - type: System.ComponentModel.DataAnnotations.MaxLengthAttribute - ctor: System.ComponentModel.DataAnnotations.MaxLengthAttribute.#ctor(System.Int32) - arguments: - - type: System.Int32 - value: 128 -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ModelProvider - commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ModelProvider - id: ModelProvider - parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity - langs: - - csharp - - vb - name: ModelProvider - nameWithType: SessionLogEntryEntity.ModelProvider - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ModelProvider - type: Property - source: - id: ModelProvider - path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryEntity.cs - startLine: 30 - assemblies: - - McpServer.Support.Mcp - namespace: McpServer.Support.Mcp.Storage.Entities - summary: 'TR-PLANNED-013: Model provider (e.g. OpenAI, Anthropic).' - example: [] - syntax: - content: >- - [MaxLength(128)] - - public string? ModelProvider { get; set; } - parameters: [] - return: - type: System.String - content.vb: >- - - - Public Property ModelProvider As String - overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ModelProvider* - attributes: - - type: System.ComponentModel.DataAnnotations.MaxLengthAttribute - ctor: System.ComponentModel.DataAnnotations.MaxLengthAttribute.#ctor(System.Int32) - arguments: - - type: System.Int32 - value: 128 -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.QueryText - commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.QueryText - id: QueryText - parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity - langs: - - csharp - - vb - name: QueryText - nameWithType: SessionLogEntryEntity.QueryText - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.QueryText - type: Property - source: - id: QueryText - path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryEntity.cs - startLine: 34 - assemblies: - - McpServer.Support.Mcp - namespace: McpServer.Support.Mcp.Storage.Entities - summary: 'TR-PLANNED-013: Full user query text.' - example: [] - syntax: - content: public string? QueryText { get; set; } - parameters: [] - return: - type: System.String - content.vb: Public Property QueryText As String - overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.QueryText* -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.QueryTitle - commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.QueryTitle - id: QueryTitle - parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity - langs: - - csharp - - vb - name: QueryTitle - nameWithType: SessionLogEntryEntity.QueryTitle - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.QueryTitle - type: Property - source: - id: QueryTitle - path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryEntity.cs - startLine: 37 - assemblies: - - McpServer.Support.Mcp - namespace: McpServer.Support.Mcp.Storage.Entities - summary: 'TR-PLANNED-013: Short title summarizing the query.' - example: [] - syntax: - content: >- - [MaxLength(1024)] - - public string? QueryTitle { get; set; } - parameters: [] - return: - type: System.String - content.vb: >- - - - Public Property QueryTitle As String - overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.QueryTitle* - attributes: - - type: System.ComponentModel.DataAnnotations.MaxLengthAttribute - ctor: System.ComponentModel.DataAnnotations.MaxLengthAttribute.#ctor(System.Int32) - arguments: - - type: System.Int32 - value: 1024 -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Response - commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Response - id: Response - parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity - langs: - - csharp - - vb - name: Response - nameWithType: SessionLogEntryEntity.Response - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Response - type: Property - source: - id: Response - path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryEntity.cs - startLine: 41 - assemblies: - - McpServer.Support.Mcp - namespace: McpServer.Support.Mcp.Storage.Entities - summary: 'TR-PLANNED-013: Agent response text.' - example: [] - syntax: - content: public string? Response { get; set; } - parameters: [] - return: - type: System.String - content.vb: Public Property Response As String - overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Response* -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Interpretation - commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Interpretation - id: Interpretation - parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity - langs: - - csharp - - vb - name: Interpretation - nameWithType: SessionLogEntryEntity.Interpretation - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Interpretation - type: Property - source: - id: Interpretation - path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryEntity.cs - startLine: 44 - assemblies: - - McpServer.Support.Mcp - namespace: McpServer.Support.Mcp.Storage.Entities - summary: 'TR-PLANNED-013: Agent interpretation of the request.' - example: [] - syntax: - content: public string? Interpretation { get; set; } - parameters: [] - return: - type: System.String - content.vb: Public Property Interpretation As String - overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Interpretation* -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Status - commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Status - id: Status - parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity - langs: - - csharp - - vb - name: Status - nameWithType: SessionLogEntryEntity.Status - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Status - type: Property - source: - id: Status - path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryEntity.cs - startLine: 47 - assemblies: - - McpServer.Support.Mcp - namespace: McpServer.Support.Mcp.Storage.Entities - summary: 'TR-PLANNED-013: Entry status (e.g. completed, in_progress).' - example: [] - syntax: - content: >- - [MaxLength(64)] - - public string? Status { get; set; } - parameters: [] - return: - type: System.String - content.vb: >- - - - Public Property Status As String - overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Status* - attributes: - - type: System.ComponentModel.DataAnnotations.MaxLengthAttribute - ctor: System.ComponentModel.DataAnnotations.MaxLengthAttribute.#ctor(System.Int32) - arguments: - - type: System.Int32 - value: 64 -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.TokenCount - commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.TokenCount - id: TokenCount - parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity - langs: - - csharp - - vb - name: TokenCount - nameWithType: SessionLogEntryEntity.TokenCount - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.TokenCount - type: Property - source: - id: TokenCount - path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryEntity.cs - startLine: 51 - assemblies: - - McpServer.Support.Mcp - namespace: McpServer.Support.Mcp.Storage.Entities - summary: 'TR-PLANNED-013: Token count for this entry.' - example: [] - syntax: - content: public int? TokenCount { get; set; } - parameters: [] - return: - type: System.Nullable{System.Int32} - content.vb: Public Property TokenCount As Integer? - overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.TokenCount* -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.FailureNote - commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.FailureNote - id: FailureNote - parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity - langs: - - csharp - - vb - name: FailureNote - nameWithType: SessionLogEntryEntity.FailureNote - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.FailureNote - type: Property - source: - id: FailureNote - path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryEntity.cs - startLine: 54 - assemblies: - - McpServer.Support.Mcp - namespace: McpServer.Support.Mcp.Storage.Entities - summary: 'TR-PLANNED-013: Failure note if the entry failed.' - example: [] - syntax: - content: public string? FailureNote { get; set; } - parameters: [] - return: - type: System.String - content.vb: Public Property FailureNote As String - overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.FailureNote* -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Score - commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Score - id: Score - parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity - langs: - - csharp - - vb - name: Score - nameWithType: SessionLogEntryEntity.Score - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Score - type: Property - source: - id: Score - path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryEntity.cs - startLine: 57 - assemblies: - - McpServer.Support.Mcp - namespace: McpServer.Support.Mcp.Storage.Entities - summary: 'TR-PLANNED-013: Success score for this entry.' - example: [] - syntax: - content: public double? Score { get; set; } - parameters: [] - return: - type: System.Nullable{System.Double} - content.vb: Public Property Score As Double? - overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Score* -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.IsPremium - commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.IsPremium - id: IsPremium - parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity - langs: - - csharp - - vb - name: IsPremium - nameWithType: SessionLogEntryEntity.IsPremium - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.IsPremium - type: Property - source: - id: IsPremium - path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryEntity.cs - startLine: 60 - assemblies: - - McpServer.Support.Mcp - namespace: McpServer.Support.Mcp.Storage.Entities - summary: 'TR-PLANNED-013: Whether this was a premium request.' - example: [] - syntax: - content: public bool? IsPremium { get; set; } - parameters: [] - return: - type: System.Nullable{System.Boolean} - content.vb: Public Property IsPremium As Boolean? - overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.IsPremium* -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.RawContextJson - commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.RawContextJson - id: RawContextJson - parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity - langs: - - csharp - - vb - name: RawContextJson - nameWithType: SessionLogEntryEntity.RawContextJson - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.RawContextJson - type: Property - source: - id: RawContextJson - path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryEntity.cs - startLine: 63 - assemblies: - - McpServer.Support.Mcp - namespace: McpServer.Support.Mcp.Storage.Entities - summary: 'TR-PLANNED-013: Raw context data serialized as JSON text.' - example: [] - syntax: - content: public string? RawContextJson { get; set; } - parameters: [] - return: - type: System.String - content.vb: Public Property RawContextJson As String - overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.RawContextJson* -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.OriginalEntryJson - commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.OriginalEntryJson - id: OriginalEntryJson - parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity - langs: - - csharp - - vb - name: OriginalEntryJson - nameWithType: SessionLogEntryEntity.OriginalEntryJson - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.OriginalEntryJson - type: Property - source: - id: OriginalEntryJson - path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryEntity.cs - startLine: 66 - assemblies: - - McpServer.Support.Mcp - namespace: McpServer.Support.Mcp.Storage.Entities - summary: 'TR-PLANNED-013: Original entry before normalization serialized as JSON text.' - example: [] - syntax: - content: public string? OriginalEntryJson { get; set; } - parameters: [] - return: - type: System.String - content.vb: Public Property OriginalEntryJson As String - overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.OriginalEntryJson* -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.SessionLog - commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.SessionLog - id: SessionLog - parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity - langs: - - csharp - - vb - name: SessionLog - nameWithType: SessionLogEntryEntity.SessionLog - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.SessionLog - type: Property - source: - id: SessionLog - path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryEntity.cs - startLine: 69 - assemblies: - - McpServer.Support.Mcp - namespace: McpServer.Support.Mcp.Storage.Entities - summary: 'TR-PLANNED-013: Navigation to parent session.' - example: [] - syntax: - content: public SessionLogEntity? SessionLog { get; set; } - parameters: [] - return: - type: McpServer.Support.Mcp.Storage.Entities.SessionLogEntity - content.vb: Public Property SessionLog As SessionLogEntity - overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.SessionLog* -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Actions - commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Actions - id: Actions - parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity - langs: - - csharp - - vb - name: Actions - nameWithType: SessionLogEntryEntity.Actions - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Actions - type: Property - source: - id: Actions - path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryEntity.cs - startLine: 72 - assemblies: - - McpServer.Support.Mcp - namespace: McpServer.Support.Mcp.Storage.Entities - summary: 'TR-PLANNED-013: Navigation to actions.' - example: [] - syntax: - content: public ICollection Actions { get; set; } - parameters: [] - return: - type: System.Collections.Generic.ICollection{McpServer.Support.Mcp.Storage.Entities.SessionLogActionEntity} - content.vb: Public Property Actions As ICollection(Of SessionLogActionEntity) - overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Actions* -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Tags - commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Tags - id: Tags - parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity - langs: - - csharp - - vb - name: Tags - nameWithType: SessionLogEntryEntity.Tags - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Tags - type: Property - source: - id: Tags - path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryEntity.cs - startLine: 76 - assemblies: - - McpServer.Support.Mcp - namespace: McpServer.Support.Mcp.Storage.Entities - summary: 'TR-PLANNED-013: Navigation to tags.' - example: [] - syntax: - content: public ICollection Tags { get; set; } - parameters: [] - return: - type: System.Collections.Generic.ICollection{McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity} - content.vb: Public Property Tags As ICollection(Of SessionLogEntryTagEntity) - overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Tags* -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ContextItems - commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ContextItems - id: ContextItems - parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity - langs: - - csharp - - vb - name: ContextItems - nameWithType: SessionLogEntryEntity.ContextItems - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ContextItems - type: Property - source: - id: ContextItems - path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryEntity.cs - startLine: 80 - assemblies: - - McpServer.Support.Mcp - namespace: McpServer.Support.Mcp.Storage.Entities - summary: 'TR-PLANNED-013: Navigation to context items.' - example: [] - syntax: - content: public ICollection ContextItems { get; set; } - parameters: [] - return: - type: System.Collections.Generic.ICollection{McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity} - content.vb: Public Property ContextItems As ICollection(Of SessionLogEntryContextEntity) - overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ContextItems* -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ProcessingDialog - commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ProcessingDialog - id: ProcessingDialog - parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity - langs: - - csharp - - vb - name: ProcessingDialog - nameWithType: SessionLogEntryEntity.ProcessingDialog - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ProcessingDialog - type: Property - source: - id: ProcessingDialog - path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryEntity.cs - startLine: 84 - assemblies: - - McpServer.Support.Mcp - namespace: McpServer.Support.Mcp.Storage.Entities - summary: 'TR-PLANNED-013: Navigation to processing dialog items. The AI model can independently append entries.' - example: [] - syntax: - content: public ICollection ProcessingDialog { get; set; } - parameters: [] - return: - type: System.Collections.Generic.ICollection{McpServer.Support.Mcp.Storage.Entities.SessionLogProcessingDialogEntity} - content.vb: Public Property ProcessingDialog As ICollection(Of SessionLogProcessingDialogEntity) - overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ProcessingDialog* -references: -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntity - commentId: T:McpServer.Support.Mcp.Storage.Entities.SessionLogEntity - parent: McpServer.Support.Mcp.Storage.Entities - href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntity.html - name: SessionLogEntity - nameWithType: SessionLogEntity - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntity -- uid: McpServer.Support.Mcp.Storage.Entities - commentId: N:McpServer.Support.Mcp.Storage.Entities - href: McpServer.html - name: McpServer.Support.Mcp.Storage.Entities - nameWithType: McpServer.Support.Mcp.Storage.Entities - fullName: McpServer.Support.Mcp.Storage.Entities - spec.csharp: - - uid: McpServer - name: McpServer - href: McpServer.html - - name: . - - uid: McpServer.Support - name: Support - href: McpServer.Support.html - - name: . - - uid: McpServer.Support.Mcp - name: Mcp - href: McpServer.Support.Mcp.html - - name: . - - uid: McpServer.Support.Mcp.Storage - name: Storage - href: McpServer.Support.Mcp.Storage.html - - name: . - - uid: McpServer.Support.Mcp.Storage.Entities - name: Entities - href: McpServer.Support.Mcp.Storage.Entities.html - spec.vb: - - uid: McpServer - name: McpServer - href: McpServer.html - - name: . - - uid: McpServer.Support - name: Support - href: McpServer.Support.html - - name: . - - uid: McpServer.Support.Mcp - name: Mcp - href: McpServer.Support.Mcp.html - - name: . - - uid: McpServer.Support.Mcp.Storage - name: Storage - href: McpServer.Support.Mcp.Storage.html - - name: . - - uid: McpServer.Support.Mcp.Storage.Entities - name: Entities - href: McpServer.Support.Mcp.Storage.Entities.html -- uid: System.Object - commentId: T:System.Object - parent: System - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object - name: object - nameWithType: object - fullName: object - nameWithType.vb: Object - fullName.vb: Object - name.vb: Object -- uid: System.Object.Equals(System.Object) - commentId: M:System.Object.Equals(System.Object) - parent: System.Object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object) - name: Equals(object) - nameWithType: object.Equals(object) - fullName: object.Equals(object) - nameWithType.vb: Object.Equals(Object) - fullName.vb: Object.Equals(Object) - name.vb: Equals(Object) - spec.csharp: - - uid: System.Object.Equals(System.Object) - name: Equals - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object) - - name: ( - - uid: System.Object - name: object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object - - name: ) - spec.vb: - - uid: System.Object.Equals(System.Object) - name: Equals - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object) - - name: ( - - uid: System.Object - name: Object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object - - name: ) -- uid: System.Object.Equals(System.Object,System.Object) - commentId: M:System.Object.Equals(System.Object,System.Object) - parent: System.Object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object) - name: Equals(object, object) - nameWithType: object.Equals(object, object) - fullName: object.Equals(object, object) - nameWithType.vb: Object.Equals(Object, Object) - fullName.vb: Object.Equals(Object, Object) - name.vb: Equals(Object, Object) - spec.csharp: - - uid: System.Object.Equals(System.Object,System.Object) - name: Equals - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object) - - name: ( - - uid: System.Object - name: object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object - - name: ',' - - name: " " - - uid: System.Object - name: object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object - - name: ) - spec.vb: - - uid: System.Object.Equals(System.Object,System.Object) - name: Equals - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object) - - name: ( - - uid: System.Object - name: Object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object - - name: ',' - - name: " " - - uid: System.Object - name: Object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object - - name: ) -- uid: System.Object.GetHashCode - commentId: M:System.Object.GetHashCode - parent: System.Object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.gethashcode - name: GetHashCode() - nameWithType: object.GetHashCode() - fullName: object.GetHashCode() - nameWithType.vb: Object.GetHashCode() - fullName.vb: Object.GetHashCode() - spec.csharp: - - uid: System.Object.GetHashCode - name: GetHashCode - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.gethashcode - - name: ( - - name: ) - spec.vb: - - uid: System.Object.GetHashCode - name: GetHashCode - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.gethashcode - - name: ( - - name: ) -- uid: System.Object.GetType - commentId: M:System.Object.GetType - parent: System.Object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.gettype - name: GetType() - nameWithType: object.GetType() - fullName: object.GetType() - nameWithType.vb: Object.GetType() - fullName.vb: Object.GetType() - spec.csharp: - - uid: System.Object.GetType - name: GetType - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.gettype - - name: ( - - name: ) - spec.vb: - - uid: System.Object.GetType - name: GetType - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.gettype - - name: ( - - name: ) -- uid: System.Object.ReferenceEquals(System.Object,System.Object) - commentId: M:System.Object.ReferenceEquals(System.Object,System.Object) - parent: System.Object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.referenceequals - name: ReferenceEquals(object, object) - nameWithType: object.ReferenceEquals(object, object) - fullName: object.ReferenceEquals(object, object) - nameWithType.vb: Object.ReferenceEquals(Object, Object) - fullName.vb: Object.ReferenceEquals(Object, Object) - name.vb: ReferenceEquals(Object, Object) - spec.csharp: - - uid: System.Object.ReferenceEquals(System.Object,System.Object) - name: ReferenceEquals - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.referenceequals - - name: ( - - uid: System.Object - name: object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object - - name: ',' - - name: " " - - uid: System.Object - name: object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object - - name: ) - spec.vb: - - uid: System.Object.ReferenceEquals(System.Object,System.Object) - name: ReferenceEquals - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.referenceequals - - name: ( - - uid: System.Object - name: Object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object - - name: ',' - - name: " " - - uid: System.Object - name: Object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object - - name: ) -- uid: System.Object.ToString - commentId: M:System.Object.ToString - parent: System.Object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.tostring - name: ToString() - nameWithType: object.ToString() - fullName: object.ToString() - nameWithType.vb: Object.ToString() - fullName.vb: Object.ToString() - spec.csharp: - - uid: System.Object.ToString - name: ToString - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.tostring - - name: ( - - name: ) - spec.vb: - - uid: System.Object.ToString - name: ToString - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.tostring - - name: ( - - name: ) -- uid: System - commentId: N:System - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system - name: System - nameWithType: System - fullName: System -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Id* - commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Id - href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryEntity_Id - name: Id - nameWithType: SessionLogEntryEntity.Id - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Id -- uid: System.Int64 - commentId: T:System.Int64 - parent: System - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.int64 - name: long - nameWithType: long - fullName: long - nameWithType.vb: Long - fullName.vb: Long - name.vb: Long -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.SessionLogId* - commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.SessionLogId - href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryEntity_SessionLogId - name: SessionLogId - nameWithType: SessionLogEntryEntity.SessionLogId - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.SessionLogId -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.RequestId* - commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.RequestId - href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryEntity_RequestId - name: RequestId - nameWithType: SessionLogEntryEntity.RequestId - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.RequestId -- uid: System.String - commentId: T:System.String - parent: System - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.string - name: string - nameWithType: string - fullName: string - nameWithType.vb: String - fullName.vb: String - name.vb: String -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Timestamp* - commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Timestamp - href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryEntity_Timestamp - name: Timestamp - nameWithType: SessionLogEntryEntity.Timestamp - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Timestamp -- uid: System.Nullable{System.DateTimeOffset} - commentId: T:System.Nullable{System.DateTimeOffset} - parent: System - definition: System.Nullable`1 - href: https://learn.microsoft.com/dotnet/api/system.datetimeoffset - name: DateTimeOffset? - nameWithType: DateTimeOffset? - fullName: System.DateTimeOffset? - spec.csharp: - - uid: System.DateTimeOffset - name: DateTimeOffset - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.datetimeoffset - - name: '?' - spec.vb: - - uid: System.DateTimeOffset - name: DateTimeOffset - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.datetimeoffset - - name: '?' -- uid: System.Nullable`1 - commentId: T:System.Nullable`1 - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.nullable-1 - name: Nullable - nameWithType: Nullable - fullName: System.Nullable - nameWithType.vb: Nullable(Of T) - fullName.vb: System.Nullable(Of T) - name.vb: Nullable(Of T) - spec.csharp: - - uid: System.Nullable`1 - name: Nullable - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.nullable-1 - - name: < - - name: T - - name: '>' - spec.vb: - - uid: System.Nullable`1 - name: Nullable - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.nullable-1 - - name: ( - - name: Of - - name: " " - - name: T - - name: ) -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Model* - commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Model - href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryEntity_Model - name: Model - nameWithType: SessionLogEntryEntity.Model - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Model -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ModelProvider* - commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ModelProvider - href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryEntity_ModelProvider - name: ModelProvider - nameWithType: SessionLogEntryEntity.ModelProvider - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ModelProvider -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.QueryText* - commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.QueryText - href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryEntity_QueryText - name: QueryText - nameWithType: SessionLogEntryEntity.QueryText - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.QueryText -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.QueryTitle* - commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.QueryTitle - href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryEntity_QueryTitle - name: QueryTitle - nameWithType: SessionLogEntryEntity.QueryTitle - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.QueryTitle -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Response* - commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Response - href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryEntity_Response - name: Response - nameWithType: SessionLogEntryEntity.Response - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Response -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Interpretation* - commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Interpretation - href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryEntity_Interpretation - name: Interpretation - nameWithType: SessionLogEntryEntity.Interpretation - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Interpretation -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Status* - commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Status - href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryEntity_Status - name: Status - nameWithType: SessionLogEntryEntity.Status - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Status -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.TokenCount* - commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.TokenCount - href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryEntity_TokenCount - name: TokenCount - nameWithType: SessionLogEntryEntity.TokenCount - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.TokenCount -- uid: System.Nullable{System.Int32} - commentId: T:System.Nullable{System.Int32} - parent: System - definition: System.Nullable`1 - href: https://learn.microsoft.com/dotnet/api/system.int32 - name: int? - nameWithType: int? - fullName: int? - nameWithType.vb: Integer? - fullName.vb: Integer? - name.vb: Integer? - spec.csharp: - - uid: System.Int32 - name: int - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.int32 - - name: '?' - spec.vb: - - uid: System.Int32 - name: Integer - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.int32 - - name: '?' -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.FailureNote* - commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.FailureNote - href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryEntity_FailureNote - name: FailureNote - nameWithType: SessionLogEntryEntity.FailureNote - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.FailureNote -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Score* - commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Score - href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryEntity_Score - name: Score - nameWithType: SessionLogEntryEntity.Score - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Score -- uid: System.Nullable{System.Double} - commentId: T:System.Nullable{System.Double} - parent: System - definition: System.Nullable`1 - href: https://learn.microsoft.com/dotnet/api/system.double - name: double? - nameWithType: double? - fullName: double? - nameWithType.vb: Double? - fullName.vb: Double? - name.vb: Double? - spec.csharp: - - uid: System.Double - name: double - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.double - - name: '?' - spec.vb: - - uid: System.Double - name: Double - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.double - - name: '?' -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.IsPremium* - commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.IsPremium - href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryEntity_IsPremium - name: IsPremium - nameWithType: SessionLogEntryEntity.IsPremium - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.IsPremium -- uid: System.Nullable{System.Boolean} - commentId: T:System.Nullable{System.Boolean} - parent: System - definition: System.Nullable`1 - href: https://learn.microsoft.com/dotnet/api/system.boolean - name: bool? - nameWithType: bool? - fullName: bool? - nameWithType.vb: Boolean? - fullName.vb: Boolean? - name.vb: Boolean? - spec.csharp: - - uid: System.Boolean - name: bool - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.boolean - - name: '?' - spec.vb: - - uid: System.Boolean - name: Boolean - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.boolean - - name: '?' -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.RawContextJson* - commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.RawContextJson - href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryEntity_RawContextJson - name: RawContextJson - nameWithType: SessionLogEntryEntity.RawContextJson - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.RawContextJson -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.OriginalEntryJson* - commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.OriginalEntryJson - href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryEntity_OriginalEntryJson - name: OriginalEntryJson - nameWithType: SessionLogEntryEntity.OriginalEntryJson - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.OriginalEntryJson -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.SessionLog* - commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.SessionLog - href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryEntity_SessionLog - name: SessionLog - nameWithType: SessionLogEntryEntity.SessionLog - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.SessionLog -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Actions* - commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Actions - href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryEntity_Actions - name: Actions - nameWithType: SessionLogEntryEntity.Actions - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Actions -- uid: System.Collections.Generic.ICollection{McpServer.Support.Mcp.Storage.Entities.SessionLogActionEntity} - commentId: T:System.Collections.Generic.ICollection{McpServer.Support.Mcp.Storage.Entities.SessionLogActionEntity} - parent: System.Collections.Generic - definition: System.Collections.Generic.ICollection`1 - href: https://learn.microsoft.com/dotnet/api/system.collections.generic.icollection-1 - name: ICollection - nameWithType: ICollection - fullName: System.Collections.Generic.ICollection - nameWithType.vb: ICollection(Of SessionLogActionEntity) - fullName.vb: System.Collections.Generic.ICollection(Of McpServer.Support.Mcp.Storage.Entities.SessionLogActionEntity) - name.vb: ICollection(Of SessionLogActionEntity) - spec.csharp: - - uid: System.Collections.Generic.ICollection`1 - name: ICollection - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.collections.generic.icollection-1 - - name: < - - uid: McpServer.Support.Mcp.Storage.Entities.SessionLogActionEntity - name: SessionLogActionEntity - href: McpServer.Support.Mcp.Storage.Entities.SessionLogActionEntity.html - - name: '>' - spec.vb: - - uid: System.Collections.Generic.ICollection`1 - name: ICollection - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.collections.generic.icollection-1 - - name: ( - - name: Of - - name: " " - - uid: McpServer.Support.Mcp.Storage.Entities.SessionLogActionEntity - name: SessionLogActionEntity - href: McpServer.Support.Mcp.Storage.Entities.SessionLogActionEntity.html - - name: ) -- uid: System.Collections.Generic.ICollection`1 - commentId: T:System.Collections.Generic.ICollection`1 - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.collections.generic.icollection-1 - name: ICollection - nameWithType: ICollection - fullName: System.Collections.Generic.ICollection - nameWithType.vb: ICollection(Of T) - fullName.vb: System.Collections.Generic.ICollection(Of T) - name.vb: ICollection(Of T) - spec.csharp: - - uid: System.Collections.Generic.ICollection`1 - name: ICollection - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.collections.generic.icollection-1 - - name: < - - name: T - - name: '>' - spec.vb: - - uid: System.Collections.Generic.ICollection`1 - name: ICollection - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.collections.generic.icollection-1 - - name: ( - - name: Of - - name: " " - - name: T - - name: ) -- uid: System.Collections.Generic - commentId: N:System.Collections.Generic - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system - name: System.Collections.Generic - nameWithType: System.Collections.Generic - fullName: System.Collections.Generic - spec.csharp: - - uid: System - name: System - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system - - name: . - - uid: System.Collections - name: Collections - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.collections - - name: . - - uid: System.Collections.Generic - name: Generic - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.collections.generic - spec.vb: - - uid: System - name: System - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system - - name: . - - uid: System.Collections - name: Collections - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.collections - - name: . - - uid: System.Collections.Generic - name: Generic - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.collections.generic -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Tags* - commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Tags - href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryEntity_Tags - name: Tags - nameWithType: SessionLogEntryEntity.Tags - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Tags -- uid: System.Collections.Generic.ICollection{McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity} - commentId: T:System.Collections.Generic.ICollection{McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity} - parent: System.Collections.Generic - definition: System.Collections.Generic.ICollection`1 - href: https://learn.microsoft.com/dotnet/api/system.collections.generic.icollection-1 - name: ICollection - nameWithType: ICollection - fullName: System.Collections.Generic.ICollection - nameWithType.vb: ICollection(Of SessionLogEntryTagEntity) - fullName.vb: System.Collections.Generic.ICollection(Of McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity) - name.vb: ICollection(Of SessionLogEntryTagEntity) - spec.csharp: - - uid: System.Collections.Generic.ICollection`1 - name: ICollection - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.collections.generic.icollection-1 - - name: < - - uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity - name: SessionLogEntryTagEntity - href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.html - - name: '>' - spec.vb: - - uid: System.Collections.Generic.ICollection`1 - name: ICollection - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.collections.generic.icollection-1 - - name: ( - - name: Of - - name: " " - - uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity - name: SessionLogEntryTagEntity - href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.html - - name: ) -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ContextItems* - commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ContextItems - href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryEntity_ContextItems - name: ContextItems - nameWithType: SessionLogEntryEntity.ContextItems - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ContextItems -- uid: System.Collections.Generic.ICollection{McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity} - commentId: T:System.Collections.Generic.ICollection{McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity} - parent: System.Collections.Generic - definition: System.Collections.Generic.ICollection`1 - href: https://learn.microsoft.com/dotnet/api/system.collections.generic.icollection-1 - name: ICollection - nameWithType: ICollection - fullName: System.Collections.Generic.ICollection - nameWithType.vb: ICollection(Of SessionLogEntryContextEntity) - fullName.vb: System.Collections.Generic.ICollection(Of McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity) - name.vb: ICollection(Of SessionLogEntryContextEntity) - spec.csharp: - - uid: System.Collections.Generic.ICollection`1 - name: ICollection - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.collections.generic.icollection-1 - - name: < - - uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity - name: SessionLogEntryContextEntity - href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.html - - name: '>' - spec.vb: - - uid: System.Collections.Generic.ICollection`1 - name: ICollection - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.collections.generic.icollection-1 - - name: ( - - name: Of - - name: " " - - uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity - name: SessionLogEntryContextEntity - href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.html - - name: ) -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ProcessingDialog* - commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ProcessingDialog - href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryEntity_ProcessingDialog - name: ProcessingDialog - nameWithType: SessionLogEntryEntity.ProcessingDialog - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ProcessingDialog -- uid: System.Collections.Generic.ICollection{McpServer.Support.Mcp.Storage.Entities.SessionLogProcessingDialogEntity} - commentId: T:System.Collections.Generic.ICollection{McpServer.Support.Mcp.Storage.Entities.SessionLogProcessingDialogEntity} - parent: System.Collections.Generic - definition: System.Collections.Generic.ICollection`1 - href: https://learn.microsoft.com/dotnet/api/system.collections.generic.icollection-1 - name: ICollection - nameWithType: ICollection - fullName: System.Collections.Generic.ICollection - nameWithType.vb: ICollection(Of SessionLogProcessingDialogEntity) - fullName.vb: System.Collections.Generic.ICollection(Of McpServer.Support.Mcp.Storage.Entities.SessionLogProcessingDialogEntity) - name.vb: ICollection(Of SessionLogProcessingDialogEntity) - spec.csharp: - - uid: System.Collections.Generic.ICollection`1 - name: ICollection - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.collections.generic.icollection-1 - - name: < - - uid: McpServer.Support.Mcp.Storage.Entities.SessionLogProcessingDialogEntity - name: SessionLogProcessingDialogEntity - href: McpServer.Support.Mcp.Storage.Entities.SessionLogProcessingDialogEntity.html - - name: '>' - spec.vb: - - uid: System.Collections.Generic.ICollection`1 - name: ICollection - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.collections.generic.icollection-1 - - name: ( - - name: Of - - name: " " - - uid: McpServer.Support.Mcp.Storage.Entities.SessionLogProcessingDialogEntity - name: SessionLogProcessingDialogEntity - href: McpServer.Support.Mcp.Storage.Entities.SessionLogProcessingDialogEntity.html - - name: ) +### YamlMime:ManagedReference +items: +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity + commentId: T:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity + id: SessionLogEntryEntity + parent: McpServer.Support.Mcp.Storage.Entities + children: + - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Actions + - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ContextItems + - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.FailureNote + - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Id + - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Interpretation + - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.IsPremium + - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Model + - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ModelProvider + - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.OriginalEntryJson + - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ProcessingDialog + - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.QueryText + - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.QueryTitle + - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.RawContextJson + - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.RequestId + - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Response + - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Score + - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.SessionLog + - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.SessionLogId + - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Status + - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Tags + - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Timestamp + - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.TokenCount + langs: + - csharp + - vb + name: SessionLogEntryEntity + nameWithType: SessionLogEntryEntity + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity + type: Class + source: + id: SessionLogEntryEntity + path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryEntity.cs + startLine: 9 + assemblies: + - McpServer.Support.Mcp + namespace: McpServer.Support.Mcp.Storage.Entities + summary: >- + TR-PLANNED-013: 4NF session log entry entity. One row per request/response pair. + + FR-SUPPORT-010: Child of . + example: [] + syntax: + content: public sealed class SessionLogEntryEntity + content.vb: Public NotInheritable Class SessionLogEntryEntity + inheritance: + - System.Object + inheritedMembers: + - System.Object.Equals(System.Object) + - System.Object.Equals(System.Object,System.Object) + - System.Object.GetHashCode + - System.Object.GetType + - System.Object.ReferenceEquals(System.Object,System.Object) + - System.Object.ToString +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Id + commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Id + id: Id + parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity + langs: + - csharp + - vb + name: Id + nameWithType: SessionLogEntryEntity.Id + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Id + type: Property + source: + id: Id + path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryEntity.cs + startLine: 12 + assemblies: + - McpServer.Support.Mcp + namespace: McpServer.Support.Mcp.Storage.Entities + summary: 'TR-PLANNED-013: Auto-generated primary key.' + example: [] + syntax: + content: >- + [Key] + + public long Id { get; set; } + parameters: [] + return: + type: System.Int64 + content.vb: >- + + + Public Property Id As Long + overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Id* + attributes: + - type: System.ComponentModel.DataAnnotations.KeyAttribute + ctor: System.ComponentModel.DataAnnotations.KeyAttribute.#ctor + arguments: [] +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.SessionLogId + commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.SessionLogId + id: SessionLogId + parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity + langs: + - csharp + - vb + name: SessionLogId + nameWithType: SessionLogEntryEntity.SessionLogId + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.SessionLogId + type: Property + source: + id: SessionLogId + path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryEntity.cs + startLine: 16 + assemblies: + - McpServer.Support.Mcp + namespace: McpServer.Support.Mcp.Storage.Entities + summary: 'TR-PLANNED-013: Foreign key to parent session.' + example: [] + syntax: + content: public long SessionLogId { get; set; } + parameters: [] + return: + type: System.Int64 + content.vb: Public Property SessionLogId As Long + overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.SessionLogId* +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.RequestId + commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.RequestId + id: RequestId + parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity + langs: + - csharp + - vb + name: RequestId + nameWithType: SessionLogEntryEntity.RequestId + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.RequestId + type: Property + source: + id: RequestId + path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryEntity.cs + startLine: 19 + assemblies: + - McpServer.Support.Mcp + namespace: McpServer.Support.Mcp.Storage.Entities + summary: 'TR-PLANNED-013: Unique request identifier within the session.' + example: [] + syntax: + content: >- + [MaxLength(256)] + + public string? RequestId { get; set; } + parameters: [] + return: + type: System.String + content.vb: >- + + + Public Property RequestId As String + overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.RequestId* + attributes: + - type: System.ComponentModel.DataAnnotations.MaxLengthAttribute + ctor: System.ComponentModel.DataAnnotations.MaxLengthAttribute.#ctor(System.Int32) + arguments: + - type: System.Int32 + value: 256 +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Timestamp + commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Timestamp + id: Timestamp + parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity + langs: + - csharp + - vb + name: Timestamp + nameWithType: SessionLogEntryEntity.Timestamp + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Timestamp + type: Property + source: + id: Timestamp + path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryEntity.cs + startLine: 23 + assemblies: + - McpServer.Support.Mcp + namespace: McpServer.Support.Mcp.Storage.Entities + summary: 'TR-PLANNED-013: Timestamp of the request (UTC).' + example: [] + syntax: + content: public DateTimeOffset? Timestamp { get; set; } + parameters: [] + return: + type: System.Nullable{System.DateTimeOffset} + content.vb: Public Property Timestamp As DateTimeOffset? + overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Timestamp* +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Model + commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Model + id: Model + parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity + langs: + - csharp + - vb + name: Model + nameWithType: SessionLogEntryEntity.Model + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Model + type: Property + source: + id: Model + path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryEntity.cs + startLine: 26 + assemblies: + - McpServer.Support.Mcp + namespace: McpServer.Support.Mcp.Storage.Entities + summary: 'TR-PLANNED-013: AI model used for this entry.' + example: [] + syntax: + content: >- + [MaxLength(128)] + + public string? Model { get; set; } + parameters: [] + return: + type: System.String + content.vb: >- + + + Public Property Model As String + overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Model* + attributes: + - type: System.ComponentModel.DataAnnotations.MaxLengthAttribute + ctor: System.ComponentModel.DataAnnotations.MaxLengthAttribute.#ctor(System.Int32) + arguments: + - type: System.Int32 + value: 128 +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ModelProvider + commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ModelProvider + id: ModelProvider + parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity + langs: + - csharp + - vb + name: ModelProvider + nameWithType: SessionLogEntryEntity.ModelProvider + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ModelProvider + type: Property + source: + id: ModelProvider + path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryEntity.cs + startLine: 30 + assemblies: + - McpServer.Support.Mcp + namespace: McpServer.Support.Mcp.Storage.Entities + summary: 'TR-PLANNED-013: Model provider (e.g. OpenAI, Anthropic).' + example: [] + syntax: + content: >- + [MaxLength(128)] + + public string? ModelProvider { get; set; } + parameters: [] + return: + type: System.String + content.vb: >- + + + Public Property ModelProvider As String + overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ModelProvider* + attributes: + - type: System.ComponentModel.DataAnnotations.MaxLengthAttribute + ctor: System.ComponentModel.DataAnnotations.MaxLengthAttribute.#ctor(System.Int32) + arguments: + - type: System.Int32 + value: 128 +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.QueryText + commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.QueryText + id: QueryText + parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity + langs: + - csharp + - vb + name: QueryText + nameWithType: SessionLogEntryEntity.QueryText + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.QueryText + type: Property + source: + id: QueryText + path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryEntity.cs + startLine: 34 + assemblies: + - McpServer.Support.Mcp + namespace: McpServer.Support.Mcp.Storage.Entities + summary: 'TR-PLANNED-013: Full user query text.' + example: [] + syntax: + content: public string? QueryText { get; set; } + parameters: [] + return: + type: System.String + content.vb: Public Property QueryText As String + overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.QueryText* +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.QueryTitle + commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.QueryTitle + id: QueryTitle + parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity + langs: + - csharp + - vb + name: QueryTitle + nameWithType: SessionLogEntryEntity.QueryTitle + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.QueryTitle + type: Property + source: + id: QueryTitle + path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryEntity.cs + startLine: 37 + assemblies: + - McpServer.Support.Mcp + namespace: McpServer.Support.Mcp.Storage.Entities + summary: 'TR-PLANNED-013: Short title summarizing the query.' + example: [] + syntax: + content: >- + [MaxLength(1024)] + + public string? QueryTitle { get; set; } + parameters: [] + return: + type: System.String + content.vb: >- + + + Public Property QueryTitle As String + overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.QueryTitle* + attributes: + - type: System.ComponentModel.DataAnnotations.MaxLengthAttribute + ctor: System.ComponentModel.DataAnnotations.MaxLengthAttribute.#ctor(System.Int32) + arguments: + - type: System.Int32 + value: 1024 +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Response + commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Response + id: Response + parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity + langs: + - csharp + - vb + name: Response + nameWithType: SessionLogEntryEntity.Response + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Response + type: Property + source: + id: Response + path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryEntity.cs + startLine: 41 + assemblies: + - McpServer.Support.Mcp + namespace: McpServer.Support.Mcp.Storage.Entities + summary: 'TR-PLANNED-013: Agent response text.' + example: [] + syntax: + content: public string? Response { get; set; } + parameters: [] + return: + type: System.String + content.vb: Public Property Response As String + overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Response* +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Interpretation + commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Interpretation + id: Interpretation + parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity + langs: + - csharp + - vb + name: Interpretation + nameWithType: SessionLogEntryEntity.Interpretation + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Interpretation + type: Property + source: + id: Interpretation + path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryEntity.cs + startLine: 44 + assemblies: + - McpServer.Support.Mcp + namespace: McpServer.Support.Mcp.Storage.Entities + summary: 'TR-PLANNED-013: Agent interpretation of the request.' + example: [] + syntax: + content: public string? Interpretation { get; set; } + parameters: [] + return: + type: System.String + content.vb: Public Property Interpretation As String + overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Interpretation* +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Status + commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Status + id: Status + parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity + langs: + - csharp + - vb + name: Status + nameWithType: SessionLogEntryEntity.Status + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Status + type: Property + source: + id: Status + path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryEntity.cs + startLine: 47 + assemblies: + - McpServer.Support.Mcp + namespace: McpServer.Support.Mcp.Storage.Entities + summary: 'TR-PLANNED-013: Entry status (e.g. completed, in_progress).' + example: [] + syntax: + content: >- + [MaxLength(64)] + + public string? Status { get; set; } + parameters: [] + return: + type: System.String + content.vb: >- + + + Public Property Status As String + overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Status* + attributes: + - type: System.ComponentModel.DataAnnotations.MaxLengthAttribute + ctor: System.ComponentModel.DataAnnotations.MaxLengthAttribute.#ctor(System.Int32) + arguments: + - type: System.Int32 + value: 64 +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.TokenCount + commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.TokenCount + id: TokenCount + parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity + langs: + - csharp + - vb + name: TokenCount + nameWithType: SessionLogEntryEntity.TokenCount + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.TokenCount + type: Property + source: + id: TokenCount + path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryEntity.cs + startLine: 51 + assemblies: + - McpServer.Support.Mcp + namespace: McpServer.Support.Mcp.Storage.Entities + summary: 'TR-PLANNED-013: Token count for this entry.' + example: [] + syntax: + content: public int? TokenCount { get; set; } + parameters: [] + return: + type: System.Nullable{System.Int32} + content.vb: Public Property TokenCount As Integer? + overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.TokenCount* +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.FailureNote + commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.FailureNote + id: FailureNote + parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity + langs: + - csharp + - vb + name: FailureNote + nameWithType: SessionLogEntryEntity.FailureNote + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.FailureNote + type: Property + source: + id: FailureNote + path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryEntity.cs + startLine: 54 + assemblies: + - McpServer.Support.Mcp + namespace: McpServer.Support.Mcp.Storage.Entities + summary: 'TR-PLANNED-013: Failure note if the entry failed.' + example: [] + syntax: + content: public string? FailureNote { get; set; } + parameters: [] + return: + type: System.String + content.vb: Public Property FailureNote As String + overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.FailureNote* +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Score + commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Score + id: Score + parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity + langs: + - csharp + - vb + name: Score + nameWithType: SessionLogEntryEntity.Score + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Score + type: Property + source: + id: Score + path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryEntity.cs + startLine: 57 + assemblies: + - McpServer.Support.Mcp + namespace: McpServer.Support.Mcp.Storage.Entities + summary: 'TR-PLANNED-013: Success score for this entry.' + example: [] + syntax: + content: public double? Score { get; set; } + parameters: [] + return: + type: System.Nullable{System.Double} + content.vb: Public Property Score As Double? + overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Score* +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.IsPremium + commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.IsPremium + id: IsPremium + parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity + langs: + - csharp + - vb + name: IsPremium + nameWithType: SessionLogEntryEntity.IsPremium + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.IsPremium + type: Property + source: + id: IsPremium + path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryEntity.cs + startLine: 60 + assemblies: + - McpServer.Support.Mcp + namespace: McpServer.Support.Mcp.Storage.Entities + summary: 'TR-PLANNED-013: Whether this was a premium request.' + example: [] + syntax: + content: public bool? IsPremium { get; set; } + parameters: [] + return: + type: System.Nullable{System.Boolean} + content.vb: Public Property IsPremium As Boolean? + overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.IsPremium* +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.RawContextJson + commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.RawContextJson + id: RawContextJson + parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity + langs: + - csharp + - vb + name: RawContextJson + nameWithType: SessionLogEntryEntity.RawContextJson + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.RawContextJson + type: Property + source: + id: RawContextJson + path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryEntity.cs + startLine: 63 + assemblies: + - McpServer.Support.Mcp + namespace: McpServer.Support.Mcp.Storage.Entities + summary: 'TR-PLANNED-013: Raw context data serialized as JSON text.' + example: [] + syntax: + content: public string? RawContextJson { get; set; } + parameters: [] + return: + type: System.String + content.vb: Public Property RawContextJson As String + overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.RawContextJson* +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.OriginalEntryJson + commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.OriginalEntryJson + id: OriginalEntryJson + parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity + langs: + - csharp + - vb + name: OriginalEntryJson + nameWithType: SessionLogEntryEntity.OriginalEntryJson + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.OriginalEntryJson + type: Property + source: + id: OriginalEntryJson + path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryEntity.cs + startLine: 66 + assemblies: + - McpServer.Support.Mcp + namespace: McpServer.Support.Mcp.Storage.Entities + summary: 'TR-PLANNED-013: Original entry before normalization serialized as JSON text.' + example: [] + syntax: + content: public string? OriginalEntryJson { get; set; } + parameters: [] + return: + type: System.String + content.vb: Public Property OriginalEntryJson As String + overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.OriginalEntryJson* +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.SessionLog + commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.SessionLog + id: SessionLog + parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity + langs: + - csharp + - vb + name: SessionLog + nameWithType: SessionLogEntryEntity.SessionLog + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.SessionLog + type: Property + source: + id: SessionLog + path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryEntity.cs + startLine: 69 + assemblies: + - McpServer.Support.Mcp + namespace: McpServer.Support.Mcp.Storage.Entities + summary: 'TR-PLANNED-013: Navigation to parent session.' + example: [] + syntax: + content: public SessionLogEntity? SessionLog { get; set; } + parameters: [] + return: + type: McpServer.Support.Mcp.Storage.Entities.SessionLogEntity + content.vb: Public Property SessionLog As SessionLogEntity + overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.SessionLog* +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Actions + commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Actions + id: Actions + parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity + langs: + - csharp + - vb + name: Actions + nameWithType: SessionLogEntryEntity.Actions + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Actions + type: Property + source: + id: Actions + path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryEntity.cs + startLine: 72 + assemblies: + - McpServer.Support.Mcp + namespace: McpServer.Support.Mcp.Storage.Entities + summary: 'TR-PLANNED-013: Navigation to actions.' + example: [] + syntax: + content: public ICollection Actions { get; set; } + parameters: [] + return: + type: System.Collections.Generic.ICollection{McpServer.Support.Mcp.Storage.Entities.SessionLogActionEntity} + content.vb: Public Property Actions As ICollection(Of SessionLogActionEntity) + overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Actions* +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Tags + commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Tags + id: Tags + parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity + langs: + - csharp + - vb + name: Tags + nameWithType: SessionLogEntryEntity.Tags + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Tags + type: Property + source: + id: Tags + path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryEntity.cs + startLine: 76 + assemblies: + - McpServer.Support.Mcp + namespace: McpServer.Support.Mcp.Storage.Entities + summary: 'TR-PLANNED-013: Navigation to tags.' + example: [] + syntax: + content: public ICollection Tags { get; set; } + parameters: [] + return: + type: System.Collections.Generic.ICollection{McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity} + content.vb: Public Property Tags As ICollection(Of SessionLogEntryTagEntity) + overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Tags* +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ContextItems + commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ContextItems + id: ContextItems + parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity + langs: + - csharp + - vb + name: ContextItems + nameWithType: SessionLogEntryEntity.ContextItems + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ContextItems + type: Property + source: + id: ContextItems + path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryEntity.cs + startLine: 80 + assemblies: + - McpServer.Support.Mcp + namespace: McpServer.Support.Mcp.Storage.Entities + summary: 'TR-PLANNED-013: Navigation to context items.' + example: [] + syntax: + content: public ICollection ContextItems { get; set; } + parameters: [] + return: + type: System.Collections.Generic.ICollection{McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity} + content.vb: Public Property ContextItems As ICollection(Of SessionLogEntryContextEntity) + overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ContextItems* +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ProcessingDialog + commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ProcessingDialog + id: ProcessingDialog + parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity + langs: + - csharp + - vb + name: ProcessingDialog + nameWithType: SessionLogEntryEntity.ProcessingDialog + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ProcessingDialog + type: Property + source: + id: ProcessingDialog + path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryEntity.cs + startLine: 84 + assemblies: + - McpServer.Support.Mcp + namespace: McpServer.Support.Mcp.Storage.Entities + summary: 'TR-PLANNED-013: Navigation to processing dialog items. The AI model can independently append entries.' + example: [] + syntax: + content: public ICollection ProcessingDialog { get; set; } + parameters: [] + return: + type: System.Collections.Generic.ICollection{McpServer.Support.Mcp.Storage.Entities.SessionLogProcessingDialogEntity} + content.vb: Public Property ProcessingDialog As ICollection(Of SessionLogProcessingDialogEntity) + overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ProcessingDialog* +references: +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntity + commentId: T:McpServer.Support.Mcp.Storage.Entities.SessionLogEntity + parent: McpServer.Support.Mcp.Storage.Entities + href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntity.html + name: SessionLogEntity + nameWithType: SessionLogEntity + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntity +- uid: McpServer.Support.Mcp.Storage.Entities + commentId: N:McpServer.Support.Mcp.Storage.Entities + href: McpServer.html + name: McpServer.Support.Mcp.Storage.Entities + nameWithType: McpServer.Support.Mcp.Storage.Entities + fullName: McpServer.Support.Mcp.Storage.Entities + spec.csharp: + - uid: McpServer + name: McpServer + href: McpServer.html + - name: . + - uid: McpServer.Support + name: Support + href: McpServer.Support.html + - name: . + - uid: McpServer.Support.Mcp + name: Mcp + href: McpServer.Support.Mcp.html + - name: . + - uid: McpServer.Support.Mcp.Storage + name: Storage + href: McpServer.Support.Mcp.Storage.html + - name: . + - uid: McpServer.Support.Mcp.Storage.Entities + name: Entities + href: McpServer.Support.Mcp.Storage.Entities.html + spec.vb: + - uid: McpServer + name: McpServer + href: McpServer.html + - name: . + - uid: McpServer.Support + name: Support + href: McpServer.Support.html + - name: . + - uid: McpServer.Support.Mcp + name: Mcp + href: McpServer.Support.Mcp.html + - name: . + - uid: McpServer.Support.Mcp.Storage + name: Storage + href: McpServer.Support.Mcp.Storage.html + - name: . + - uid: McpServer.Support.Mcp.Storage.Entities + name: Entities + href: McpServer.Support.Mcp.Storage.Entities.html +- uid: System.Object + commentId: T:System.Object + parent: System + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object + name: object + nameWithType: object + fullName: object + nameWithType.vb: Object + fullName.vb: Object + name.vb: Object +- uid: System.Object.Equals(System.Object) + commentId: M:System.Object.Equals(System.Object) + parent: System.Object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object) + name: Equals(object) + nameWithType: object.Equals(object) + fullName: object.Equals(object) + nameWithType.vb: Object.Equals(Object) + fullName.vb: Object.Equals(Object) + name.vb: Equals(Object) + spec.csharp: + - uid: System.Object.Equals(System.Object) + name: Equals + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object) + - name: ( + - uid: System.Object + name: object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object + - name: ) + spec.vb: + - uid: System.Object.Equals(System.Object) + name: Equals + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object) + - name: ( + - uid: System.Object + name: Object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object + - name: ) +- uid: System.Object.Equals(System.Object,System.Object) + commentId: M:System.Object.Equals(System.Object,System.Object) + parent: System.Object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object) + name: Equals(object, object) + nameWithType: object.Equals(object, object) + fullName: object.Equals(object, object) + nameWithType.vb: Object.Equals(Object, Object) + fullName.vb: Object.Equals(Object, Object) + name.vb: Equals(Object, Object) + spec.csharp: + - uid: System.Object.Equals(System.Object,System.Object) + name: Equals + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object) + - name: ( + - uid: System.Object + name: object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object + - name: ',' + - name: " " + - uid: System.Object + name: object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object + - name: ) + spec.vb: + - uid: System.Object.Equals(System.Object,System.Object) + name: Equals + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object) + - name: ( + - uid: System.Object + name: Object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object + - name: ',' + - name: " " + - uid: System.Object + name: Object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object + - name: ) +- uid: System.Object.GetHashCode + commentId: M:System.Object.GetHashCode + parent: System.Object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.gethashcode + name: GetHashCode() + nameWithType: object.GetHashCode() + fullName: object.GetHashCode() + nameWithType.vb: Object.GetHashCode() + fullName.vb: Object.GetHashCode() + spec.csharp: + - uid: System.Object.GetHashCode + name: GetHashCode + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.gethashcode + - name: ( + - name: ) + spec.vb: + - uid: System.Object.GetHashCode + name: GetHashCode + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.gethashcode + - name: ( + - name: ) +- uid: System.Object.GetType + commentId: M:System.Object.GetType + parent: System.Object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.gettype + name: GetType() + nameWithType: object.GetType() + fullName: object.GetType() + nameWithType.vb: Object.GetType() + fullName.vb: Object.GetType() + spec.csharp: + - uid: System.Object.GetType + name: GetType + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.gettype + - name: ( + - name: ) + spec.vb: + - uid: System.Object.GetType + name: GetType + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.gettype + - name: ( + - name: ) +- uid: System.Object.ReferenceEquals(System.Object,System.Object) + commentId: M:System.Object.ReferenceEquals(System.Object,System.Object) + parent: System.Object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.referenceequals + name: ReferenceEquals(object, object) + nameWithType: object.ReferenceEquals(object, object) + fullName: object.ReferenceEquals(object, object) + nameWithType.vb: Object.ReferenceEquals(Object, Object) + fullName.vb: Object.ReferenceEquals(Object, Object) + name.vb: ReferenceEquals(Object, Object) + spec.csharp: + - uid: System.Object.ReferenceEquals(System.Object,System.Object) + name: ReferenceEquals + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.referenceequals + - name: ( + - uid: System.Object + name: object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object + - name: ',' + - name: " " + - uid: System.Object + name: object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object + - name: ) + spec.vb: + - uid: System.Object.ReferenceEquals(System.Object,System.Object) + name: ReferenceEquals + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.referenceequals + - name: ( + - uid: System.Object + name: Object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object + - name: ',' + - name: " " + - uid: System.Object + name: Object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object + - name: ) +- uid: System.Object.ToString + commentId: M:System.Object.ToString + parent: System.Object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.tostring + name: ToString() + nameWithType: object.ToString() + fullName: object.ToString() + nameWithType.vb: Object.ToString() + fullName.vb: Object.ToString() + spec.csharp: + - uid: System.Object.ToString + name: ToString + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.tostring + - name: ( + - name: ) + spec.vb: + - uid: System.Object.ToString + name: ToString + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.tostring + - name: ( + - name: ) +- uid: System + commentId: N:System + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system + name: System + nameWithType: System + fullName: System +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Id* + commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Id + href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryEntity_Id + name: Id + nameWithType: SessionLogEntryEntity.Id + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Id +- uid: System.Int64 + commentId: T:System.Int64 + parent: System + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.int64 + name: long + nameWithType: long + fullName: long + nameWithType.vb: Long + fullName.vb: Long + name.vb: Long +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.SessionLogId* + commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.SessionLogId + href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryEntity_SessionLogId + name: SessionLogId + nameWithType: SessionLogEntryEntity.SessionLogId + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.SessionLogId +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.RequestId* + commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.RequestId + href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryEntity_RequestId + name: RequestId + nameWithType: SessionLogEntryEntity.RequestId + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.RequestId +- uid: System.String + commentId: T:System.String + parent: System + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.string + name: string + nameWithType: string + fullName: string + nameWithType.vb: String + fullName.vb: String + name.vb: String +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Timestamp* + commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Timestamp + href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryEntity_Timestamp + name: Timestamp + nameWithType: SessionLogEntryEntity.Timestamp + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Timestamp +- uid: System.Nullable{System.DateTimeOffset} + commentId: T:System.Nullable{System.DateTimeOffset} + parent: System + definition: System.Nullable`1 + href: https://learn.microsoft.com/dotnet/api/system.datetimeoffset + name: DateTimeOffset? + nameWithType: DateTimeOffset? + fullName: System.DateTimeOffset? + spec.csharp: + - uid: System.DateTimeOffset + name: DateTimeOffset + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.datetimeoffset + - name: '?' + spec.vb: + - uid: System.DateTimeOffset + name: DateTimeOffset + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.datetimeoffset + - name: '?' +- uid: System.Nullable`1 + commentId: T:System.Nullable`1 + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.nullable-1 + name: Nullable + nameWithType: Nullable + fullName: System.Nullable + nameWithType.vb: Nullable(Of T) + fullName.vb: System.Nullable(Of T) + name.vb: Nullable(Of T) + spec.csharp: + - uid: System.Nullable`1 + name: Nullable + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.nullable-1 + - name: < + - name: T + - name: '>' + spec.vb: + - uid: System.Nullable`1 + name: Nullable + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.nullable-1 + - name: ( + - name: Of + - name: " " + - name: T + - name: ) +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Model* + commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Model + href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryEntity_Model + name: Model + nameWithType: SessionLogEntryEntity.Model + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Model +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ModelProvider* + commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ModelProvider + href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryEntity_ModelProvider + name: ModelProvider + nameWithType: SessionLogEntryEntity.ModelProvider + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ModelProvider +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.QueryText* + commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.QueryText + href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryEntity_QueryText + name: QueryText + nameWithType: SessionLogEntryEntity.QueryText + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.QueryText +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.QueryTitle* + commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.QueryTitle + href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryEntity_QueryTitle + name: QueryTitle + nameWithType: SessionLogEntryEntity.QueryTitle + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.QueryTitle +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Response* + commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Response + href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryEntity_Response + name: Response + nameWithType: SessionLogEntryEntity.Response + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Response +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Interpretation* + commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Interpretation + href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryEntity_Interpretation + name: Interpretation + nameWithType: SessionLogEntryEntity.Interpretation + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Interpretation +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Status* + commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Status + href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryEntity_Status + name: Status + nameWithType: SessionLogEntryEntity.Status + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Status +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.TokenCount* + commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.TokenCount + href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryEntity_TokenCount + name: TokenCount + nameWithType: SessionLogEntryEntity.TokenCount + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.TokenCount +- uid: System.Nullable{System.Int32} + commentId: T:System.Nullable{System.Int32} + parent: System + definition: System.Nullable`1 + href: https://learn.microsoft.com/dotnet/api/system.int32 + name: int? + nameWithType: int? + fullName: int? + nameWithType.vb: Integer? + fullName.vb: Integer? + name.vb: Integer? + spec.csharp: + - uid: System.Int32 + name: int + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.int32 + - name: '?' + spec.vb: + - uid: System.Int32 + name: Integer + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.int32 + - name: '?' +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.FailureNote* + commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.FailureNote + href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryEntity_FailureNote + name: FailureNote + nameWithType: SessionLogEntryEntity.FailureNote + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.FailureNote +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Score* + commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Score + href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryEntity_Score + name: Score + nameWithType: SessionLogEntryEntity.Score + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Score +- uid: System.Nullable{System.Double} + commentId: T:System.Nullable{System.Double} + parent: System + definition: System.Nullable`1 + href: https://learn.microsoft.com/dotnet/api/system.double + name: double? + nameWithType: double? + fullName: double? + nameWithType.vb: Double? + fullName.vb: Double? + name.vb: Double? + spec.csharp: + - uid: System.Double + name: double + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.double + - name: '?' + spec.vb: + - uid: System.Double + name: Double + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.double + - name: '?' +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.IsPremium* + commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.IsPremium + href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryEntity_IsPremium + name: IsPremium + nameWithType: SessionLogEntryEntity.IsPremium + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.IsPremium +- uid: System.Nullable{System.Boolean} + commentId: T:System.Nullable{System.Boolean} + parent: System + definition: System.Nullable`1 + href: https://learn.microsoft.com/dotnet/api/system.boolean + name: bool? + nameWithType: bool? + fullName: bool? + nameWithType.vb: Boolean? + fullName.vb: Boolean? + name.vb: Boolean? + spec.csharp: + - uid: System.Boolean + name: bool + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.boolean + - name: '?' + spec.vb: + - uid: System.Boolean + name: Boolean + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.boolean + - name: '?' +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.RawContextJson* + commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.RawContextJson + href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryEntity_RawContextJson + name: RawContextJson + nameWithType: SessionLogEntryEntity.RawContextJson + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.RawContextJson +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.OriginalEntryJson* + commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.OriginalEntryJson + href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryEntity_OriginalEntryJson + name: OriginalEntryJson + nameWithType: SessionLogEntryEntity.OriginalEntryJson + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.OriginalEntryJson +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.SessionLog* + commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.SessionLog + href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryEntity_SessionLog + name: SessionLog + nameWithType: SessionLogEntryEntity.SessionLog + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.SessionLog +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Actions* + commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Actions + href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryEntity_Actions + name: Actions + nameWithType: SessionLogEntryEntity.Actions + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Actions +- uid: System.Collections.Generic.ICollection{McpServer.Support.Mcp.Storage.Entities.SessionLogActionEntity} + commentId: T:System.Collections.Generic.ICollection{McpServer.Support.Mcp.Storage.Entities.SessionLogActionEntity} + parent: System.Collections.Generic + definition: System.Collections.Generic.ICollection`1 + href: https://learn.microsoft.com/dotnet/api/system.collections.generic.icollection-1 + name: ICollection + nameWithType: ICollection + fullName: System.Collections.Generic.ICollection + nameWithType.vb: ICollection(Of SessionLogActionEntity) + fullName.vb: System.Collections.Generic.ICollection(Of McpServer.Support.Mcp.Storage.Entities.SessionLogActionEntity) + name.vb: ICollection(Of SessionLogActionEntity) + spec.csharp: + - uid: System.Collections.Generic.ICollection`1 + name: ICollection + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.collections.generic.icollection-1 + - name: < + - uid: McpServer.Support.Mcp.Storage.Entities.SessionLogActionEntity + name: SessionLogActionEntity + href: McpServer.Support.Mcp.Storage.Entities.SessionLogActionEntity.html + - name: '>' + spec.vb: + - uid: System.Collections.Generic.ICollection`1 + name: ICollection + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.collections.generic.icollection-1 + - name: ( + - name: Of + - name: " " + - uid: McpServer.Support.Mcp.Storage.Entities.SessionLogActionEntity + name: SessionLogActionEntity + href: McpServer.Support.Mcp.Storage.Entities.SessionLogActionEntity.html + - name: ) +- uid: System.Collections.Generic.ICollection`1 + commentId: T:System.Collections.Generic.ICollection`1 + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.collections.generic.icollection-1 + name: ICollection + nameWithType: ICollection + fullName: System.Collections.Generic.ICollection + nameWithType.vb: ICollection(Of T) + fullName.vb: System.Collections.Generic.ICollection(Of T) + name.vb: ICollection(Of T) + spec.csharp: + - uid: System.Collections.Generic.ICollection`1 + name: ICollection + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.collections.generic.icollection-1 + - name: < + - name: T + - name: '>' + spec.vb: + - uid: System.Collections.Generic.ICollection`1 + name: ICollection + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.collections.generic.icollection-1 + - name: ( + - name: Of + - name: " " + - name: T + - name: ) +- uid: System.Collections.Generic + commentId: N:System.Collections.Generic + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system + name: System.Collections.Generic + nameWithType: System.Collections.Generic + fullName: System.Collections.Generic + spec.csharp: + - uid: System + name: System + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system + - name: . + - uid: System.Collections + name: Collections + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.collections + - name: . + - uid: System.Collections.Generic + name: Generic + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.collections.generic + spec.vb: + - uid: System + name: System + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system + - name: . + - uid: System.Collections + name: Collections + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.collections + - name: . + - uid: System.Collections.Generic + name: Generic + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.collections.generic +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Tags* + commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Tags + href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryEntity_Tags + name: Tags + nameWithType: SessionLogEntryEntity.Tags + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.Tags +- uid: System.Collections.Generic.ICollection{McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity} + commentId: T:System.Collections.Generic.ICollection{McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity} + parent: System.Collections.Generic + definition: System.Collections.Generic.ICollection`1 + href: https://learn.microsoft.com/dotnet/api/system.collections.generic.icollection-1 + name: ICollection + nameWithType: ICollection + fullName: System.Collections.Generic.ICollection + nameWithType.vb: ICollection(Of SessionLogEntryTagEntity) + fullName.vb: System.Collections.Generic.ICollection(Of McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity) + name.vb: ICollection(Of SessionLogEntryTagEntity) + spec.csharp: + - uid: System.Collections.Generic.ICollection`1 + name: ICollection + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.collections.generic.icollection-1 + - name: < + - uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity + name: SessionLogEntryTagEntity + href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.html + - name: '>' + spec.vb: + - uid: System.Collections.Generic.ICollection`1 + name: ICollection + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.collections.generic.icollection-1 + - name: ( + - name: Of + - name: " " + - uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity + name: SessionLogEntryTagEntity + href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.html + - name: ) +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ContextItems* + commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ContextItems + href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryEntity_ContextItems + name: ContextItems + nameWithType: SessionLogEntryEntity.ContextItems + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ContextItems +- uid: System.Collections.Generic.ICollection{McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity} + commentId: T:System.Collections.Generic.ICollection{McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity} + parent: System.Collections.Generic + definition: System.Collections.Generic.ICollection`1 + href: https://learn.microsoft.com/dotnet/api/system.collections.generic.icollection-1 + name: ICollection + nameWithType: ICollection + fullName: System.Collections.Generic.ICollection + nameWithType.vb: ICollection(Of SessionLogEntryContextEntity) + fullName.vb: System.Collections.Generic.ICollection(Of McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity) + name.vb: ICollection(Of SessionLogEntryContextEntity) + spec.csharp: + - uid: System.Collections.Generic.ICollection`1 + name: ICollection + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.collections.generic.icollection-1 + - name: < + - uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity + name: SessionLogEntryContextEntity + href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.html + - name: '>' + spec.vb: + - uid: System.Collections.Generic.ICollection`1 + name: ICollection + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.collections.generic.icollection-1 + - name: ( + - name: Of + - name: " " + - uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity + name: SessionLogEntryContextEntity + href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity.html + - name: ) +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ProcessingDialog* + commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ProcessingDialog + href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryEntity_ProcessingDialog + name: ProcessingDialog + nameWithType: SessionLogEntryEntity.ProcessingDialog + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.ProcessingDialog +- uid: System.Collections.Generic.ICollection{McpServer.Support.Mcp.Storage.Entities.SessionLogProcessingDialogEntity} + commentId: T:System.Collections.Generic.ICollection{McpServer.Support.Mcp.Storage.Entities.SessionLogProcessingDialogEntity} + parent: System.Collections.Generic + definition: System.Collections.Generic.ICollection`1 + href: https://learn.microsoft.com/dotnet/api/system.collections.generic.icollection-1 + name: ICollection + nameWithType: ICollection + fullName: System.Collections.Generic.ICollection + nameWithType.vb: ICollection(Of SessionLogProcessingDialogEntity) + fullName.vb: System.Collections.Generic.ICollection(Of McpServer.Support.Mcp.Storage.Entities.SessionLogProcessingDialogEntity) + name.vb: ICollection(Of SessionLogProcessingDialogEntity) + spec.csharp: + - uid: System.Collections.Generic.ICollection`1 + name: ICollection + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.collections.generic.icollection-1 + - name: < + - uid: McpServer.Support.Mcp.Storage.Entities.SessionLogProcessingDialogEntity + name: SessionLogProcessingDialogEntity + href: McpServer.Support.Mcp.Storage.Entities.SessionLogProcessingDialogEntity.html + - name: '>' + spec.vb: + - uid: System.Collections.Generic.ICollection`1 + name: ICollection + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.collections.generic.icollection-1 + - name: ( + - name: Of + - name: " " + - uid: McpServer.Support.Mcp.Storage.Entities.SessionLogProcessingDialogEntity + name: SessionLogProcessingDialogEntity + href: McpServer.Support.Mcp.Storage.Entities.SessionLogProcessingDialogEntity.html + - name: ) diff --git a/api/McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.yml b/api/McpServer.Support.Mcp.Storage.Entities.SessionLogTurnTagEntity.yml similarity index 97% rename from api/McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.yml rename to api/McpServer.Support.Mcp.Storage.Entities.SessionLogTurnTagEntity.yml index 33efb314..e8472d26 100644 --- a/api/McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.yml +++ b/api/McpServer.Support.Mcp.Storage.Entities.SessionLogTurnTagEntity.yml @@ -1,492 +1,492 @@ -### YamlMime:ManagedReference -items: -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity - commentId: T:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity - id: SessionLogEntryTagEntity - parent: McpServer.Support.Mcp.Storage.Entities - children: - - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.Id - - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.SessionLogEntry - - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.SessionLogEntryId - - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.Tag - langs: - - csharp - - vb - name: SessionLogEntryTagEntity - nameWithType: SessionLogEntryTagEntity - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity - type: Class - source: - id: SessionLogEntryTagEntity - path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryTagEntity.cs - startLine: 8 - assemblies: - - McpServer.Support.Mcp - namespace: McpServer.Support.Mcp.Storage.Entities - summary: >- - TR-PLANNED-013: 4NF tag entity. One row per tag on a session log entry. - - FR-SUPPORT-010: Eliminates multi-valued dependency on tags. - example: [] - syntax: - content: public sealed class SessionLogEntryTagEntity - content.vb: Public NotInheritable Class SessionLogEntryTagEntity - inheritance: - - System.Object - inheritedMembers: - - System.Object.Equals(System.Object) - - System.Object.Equals(System.Object,System.Object) - - System.Object.GetHashCode - - System.Object.GetType - - System.Object.ReferenceEquals(System.Object,System.Object) - - System.Object.ToString -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.Id - commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.Id - id: Id - parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity - langs: - - csharp - - vb - name: Id - nameWithType: SessionLogEntryTagEntity.Id - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.Id - type: Property - source: - id: Id - path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryTagEntity.cs - startLine: 11 - assemblies: - - McpServer.Support.Mcp - namespace: McpServer.Support.Mcp.Storage.Entities - summary: 'TR-PLANNED-013: Auto-generated primary key.' - example: [] - syntax: - content: >- - [Key] - - public long Id { get; set; } - parameters: [] - return: - type: System.Int64 - content.vb: >- - - - Public Property Id As Long - overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.Id* - attributes: - - type: System.ComponentModel.DataAnnotations.KeyAttribute - ctor: System.ComponentModel.DataAnnotations.KeyAttribute.#ctor - arguments: [] -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.SessionLogEntryId - commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.SessionLogEntryId - id: SessionLogEntryId - parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity - langs: - - csharp - - vb - name: SessionLogEntryId - nameWithType: SessionLogEntryTagEntity.SessionLogEntryId - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.SessionLogEntryId - type: Property - source: - id: SessionLogEntryId - path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryTagEntity.cs - startLine: 15 - assemblies: - - McpServer.Support.Mcp - namespace: McpServer.Support.Mcp.Storage.Entities - summary: 'TR-PLANNED-013: Foreign key to parent entry.' - example: [] - syntax: - content: public long SessionLogEntryId { get; set; } - parameters: [] - return: - type: System.Int64 - content.vb: Public Property SessionLogEntryId As Long - overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.SessionLogEntryId* -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.Tag - commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.Tag - id: Tag - parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity - langs: - - csharp - - vb - name: Tag - nameWithType: SessionLogEntryTagEntity.Tag - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.Tag - type: Property - source: - id: Tag - path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryTagEntity.cs - startLine: 18 - assemblies: - - McpServer.Support.Mcp - namespace: McpServer.Support.Mcp.Storage.Entities - summary: 'TR-PLANNED-013: Tag value.' - example: [] - syntax: - content: >- - [Required] - - [MaxLength(256)] - - public required string Tag { get; set; } - parameters: [] - return: - type: System.String - content.vb: >- - - - - - Public Property Tag As String - overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.Tag* - attributes: - - type: System.ComponentModel.DataAnnotations.RequiredAttribute - ctor: System.ComponentModel.DataAnnotations.RequiredAttribute.#ctor - arguments: [] - - type: System.ComponentModel.DataAnnotations.MaxLengthAttribute - ctor: System.ComponentModel.DataAnnotations.MaxLengthAttribute.#ctor(System.Int32) - arguments: - - type: System.Int32 - value: 256 -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.SessionLogEntry - commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.SessionLogEntry - id: SessionLogEntry - parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity - langs: - - csharp - - vb - name: SessionLogEntry - nameWithType: SessionLogEntryTagEntity.SessionLogEntry - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.SessionLogEntry - type: Property - source: - id: SessionLogEntry - path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryTagEntity.cs - startLine: 23 - assemblies: - - McpServer.Support.Mcp - namespace: McpServer.Support.Mcp.Storage.Entities - summary: 'TR-PLANNED-013: Navigation to parent entry.' - example: [] - syntax: - content: public SessionLogEntryEntity? SessionLogEntry { get; set; } - parameters: [] - return: - type: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity - content.vb: Public Property SessionLogEntry As SessionLogEntryEntity - overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.SessionLogEntry* -references: -- uid: McpServer.Support.Mcp.Storage.Entities - commentId: N:McpServer.Support.Mcp.Storage.Entities - href: McpServer.html - name: McpServer.Support.Mcp.Storage.Entities - nameWithType: McpServer.Support.Mcp.Storage.Entities - fullName: McpServer.Support.Mcp.Storage.Entities - spec.csharp: - - uid: McpServer - name: McpServer - href: McpServer.html - - name: . - - uid: McpServer.Support - name: Support - href: McpServer.Support.html - - name: . - - uid: McpServer.Support.Mcp - name: Mcp - href: McpServer.Support.Mcp.html - - name: . - - uid: McpServer.Support.Mcp.Storage - name: Storage - href: McpServer.Support.Mcp.Storage.html - - name: . - - uid: McpServer.Support.Mcp.Storage.Entities - name: Entities - href: McpServer.Support.Mcp.Storage.Entities.html - spec.vb: - - uid: McpServer - name: McpServer - href: McpServer.html - - name: . - - uid: McpServer.Support - name: Support - href: McpServer.Support.html - - name: . - - uid: McpServer.Support.Mcp - name: Mcp - href: McpServer.Support.Mcp.html - - name: . - - uid: McpServer.Support.Mcp.Storage - name: Storage - href: McpServer.Support.Mcp.Storage.html - - name: . - - uid: McpServer.Support.Mcp.Storage.Entities - name: Entities - href: McpServer.Support.Mcp.Storage.Entities.html -- uid: System.Object - commentId: T:System.Object - parent: System - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object - name: object - nameWithType: object - fullName: object - nameWithType.vb: Object - fullName.vb: Object - name.vb: Object -- uid: System.Object.Equals(System.Object) - commentId: M:System.Object.Equals(System.Object) - parent: System.Object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object) - name: Equals(object) - nameWithType: object.Equals(object) - fullName: object.Equals(object) - nameWithType.vb: Object.Equals(Object) - fullName.vb: Object.Equals(Object) - name.vb: Equals(Object) - spec.csharp: - - uid: System.Object.Equals(System.Object) - name: Equals - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object) - - name: ( - - uid: System.Object - name: object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object - - name: ) - spec.vb: - - uid: System.Object.Equals(System.Object) - name: Equals - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object) - - name: ( - - uid: System.Object - name: Object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object - - name: ) -- uid: System.Object.Equals(System.Object,System.Object) - commentId: M:System.Object.Equals(System.Object,System.Object) - parent: System.Object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object) - name: Equals(object, object) - nameWithType: object.Equals(object, object) - fullName: object.Equals(object, object) - nameWithType.vb: Object.Equals(Object, Object) - fullName.vb: Object.Equals(Object, Object) - name.vb: Equals(Object, Object) - spec.csharp: - - uid: System.Object.Equals(System.Object,System.Object) - name: Equals - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object) - - name: ( - - uid: System.Object - name: object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object - - name: ',' - - name: " " - - uid: System.Object - name: object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object - - name: ) - spec.vb: - - uid: System.Object.Equals(System.Object,System.Object) - name: Equals - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object) - - name: ( - - uid: System.Object - name: Object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object - - name: ',' - - name: " " - - uid: System.Object - name: Object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object - - name: ) -- uid: System.Object.GetHashCode - commentId: M:System.Object.GetHashCode - parent: System.Object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.gethashcode - name: GetHashCode() - nameWithType: object.GetHashCode() - fullName: object.GetHashCode() - nameWithType.vb: Object.GetHashCode() - fullName.vb: Object.GetHashCode() - spec.csharp: - - uid: System.Object.GetHashCode - name: GetHashCode - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.gethashcode - - name: ( - - name: ) - spec.vb: - - uid: System.Object.GetHashCode - name: GetHashCode - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.gethashcode - - name: ( - - name: ) -- uid: System.Object.GetType - commentId: M:System.Object.GetType - parent: System.Object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.gettype - name: GetType() - nameWithType: object.GetType() - fullName: object.GetType() - nameWithType.vb: Object.GetType() - fullName.vb: Object.GetType() - spec.csharp: - - uid: System.Object.GetType - name: GetType - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.gettype - - name: ( - - name: ) - spec.vb: - - uid: System.Object.GetType - name: GetType - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.gettype - - name: ( - - name: ) -- uid: System.Object.ReferenceEquals(System.Object,System.Object) - commentId: M:System.Object.ReferenceEquals(System.Object,System.Object) - parent: System.Object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.referenceequals - name: ReferenceEquals(object, object) - nameWithType: object.ReferenceEquals(object, object) - fullName: object.ReferenceEquals(object, object) - nameWithType.vb: Object.ReferenceEquals(Object, Object) - fullName.vb: Object.ReferenceEquals(Object, Object) - name.vb: ReferenceEquals(Object, Object) - spec.csharp: - - uid: System.Object.ReferenceEquals(System.Object,System.Object) - name: ReferenceEquals - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.referenceequals - - name: ( - - uid: System.Object - name: object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object - - name: ',' - - name: " " - - uid: System.Object - name: object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object - - name: ) - spec.vb: - - uid: System.Object.ReferenceEquals(System.Object,System.Object) - name: ReferenceEquals - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.referenceequals - - name: ( - - uid: System.Object - name: Object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object - - name: ',' - - name: " " - - uid: System.Object - name: Object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object - - name: ) -- uid: System.Object.ToString - commentId: M:System.Object.ToString - parent: System.Object - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.tostring - name: ToString() - nameWithType: object.ToString() - fullName: object.ToString() - nameWithType.vb: Object.ToString() - fullName.vb: Object.ToString() - spec.csharp: - - uid: System.Object.ToString - name: ToString - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.tostring - - name: ( - - name: ) - spec.vb: - - uid: System.Object.ToString - name: ToString - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.object.tostring - - name: ( - - name: ) -- uid: System - commentId: N:System - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system - name: System - nameWithType: System - fullName: System -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.Id* - commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.Id - href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryTagEntity_Id - name: Id - nameWithType: SessionLogEntryTagEntity.Id - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.Id -- uid: System.Int64 - commentId: T:System.Int64 - parent: System - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.int64 - name: long - nameWithType: long - fullName: long - nameWithType.vb: Long - fullName.vb: Long - name.vb: Long -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.SessionLogEntryId* - commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.SessionLogEntryId - href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryTagEntity_SessionLogEntryId - name: SessionLogEntryId - nameWithType: SessionLogEntryTagEntity.SessionLogEntryId - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.SessionLogEntryId -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.Tag* - commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.Tag - href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryTagEntity_Tag - name: Tag - nameWithType: SessionLogEntryTagEntity.Tag - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.Tag -- uid: System.String - commentId: T:System.String - parent: System - isExternal: true - href: https://learn.microsoft.com/dotnet/api/system.string - name: string - nameWithType: string - fullName: string - nameWithType.vb: String - fullName.vb: String - name.vb: String -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.SessionLogEntry* - commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.SessionLogEntry - href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryTagEntity_SessionLogEntry - name: SessionLogEntry - nameWithType: SessionLogEntryTagEntity.SessionLogEntry - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.SessionLogEntry -- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity - commentId: T:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity - parent: McpServer.Support.Mcp.Storage.Entities - href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html - name: SessionLogEntryEntity - nameWithType: SessionLogEntryEntity - fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity +### YamlMime:ManagedReference +items: +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity + commentId: T:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity + id: SessionLogEntryTagEntity + parent: McpServer.Support.Mcp.Storage.Entities + children: + - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.Id + - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.SessionLogEntry + - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.SessionLogEntryId + - McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.Tag + langs: + - csharp + - vb + name: SessionLogEntryTagEntity + nameWithType: SessionLogEntryTagEntity + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity + type: Class + source: + id: SessionLogEntryTagEntity + path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryTagEntity.cs + startLine: 8 + assemblies: + - McpServer.Support.Mcp + namespace: McpServer.Support.Mcp.Storage.Entities + summary: >- + TR-PLANNED-013: 4NF tag entity. One row per tag on a session log entry. + + FR-SUPPORT-010: Eliminates multi-valued dependency on tags. + example: [] + syntax: + content: public sealed class SessionLogEntryTagEntity + content.vb: Public NotInheritable Class SessionLogEntryTagEntity + inheritance: + - System.Object + inheritedMembers: + - System.Object.Equals(System.Object) + - System.Object.Equals(System.Object,System.Object) + - System.Object.GetHashCode + - System.Object.GetType + - System.Object.ReferenceEquals(System.Object,System.Object) + - System.Object.ToString +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.Id + commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.Id + id: Id + parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity + langs: + - csharp + - vb + name: Id + nameWithType: SessionLogEntryTagEntity.Id + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.Id + type: Property + source: + id: Id + path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryTagEntity.cs + startLine: 11 + assemblies: + - McpServer.Support.Mcp + namespace: McpServer.Support.Mcp.Storage.Entities + summary: 'TR-PLANNED-013: Auto-generated primary key.' + example: [] + syntax: + content: >- + [Key] + + public long Id { get; set; } + parameters: [] + return: + type: System.Int64 + content.vb: >- + + + Public Property Id As Long + overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.Id* + attributes: + - type: System.ComponentModel.DataAnnotations.KeyAttribute + ctor: System.ComponentModel.DataAnnotations.KeyAttribute.#ctor + arguments: [] +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.SessionLogEntryId + commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.SessionLogEntryId + id: SessionLogEntryId + parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity + langs: + - csharp + - vb + name: SessionLogEntryId + nameWithType: SessionLogEntryTagEntity.SessionLogEntryId + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.SessionLogEntryId + type: Property + source: + id: SessionLogEntryId + path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryTagEntity.cs + startLine: 15 + assemblies: + - McpServer.Support.Mcp + namespace: McpServer.Support.Mcp.Storage.Entities + summary: 'TR-PLANNED-013: Foreign key to parent entry.' + example: [] + syntax: + content: public long SessionLogEntryId { get; set; } + parameters: [] + return: + type: System.Int64 + content.vb: Public Property SessionLogEntryId As Long + overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.SessionLogEntryId* +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.Tag + commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.Tag + id: Tag + parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity + langs: + - csharp + - vb + name: Tag + nameWithType: SessionLogEntryTagEntity.Tag + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.Tag + type: Property + source: + id: Tag + path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryTagEntity.cs + startLine: 18 + assemblies: + - McpServer.Support.Mcp + namespace: McpServer.Support.Mcp.Storage.Entities + summary: 'TR-PLANNED-013: Tag value.' + example: [] + syntax: + content: >- + [Required] + + [MaxLength(256)] + + public required string Tag { get; set; } + parameters: [] + return: + type: System.String + content.vb: >- + + + + + Public Property Tag As String + overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.Tag* + attributes: + - type: System.ComponentModel.DataAnnotations.RequiredAttribute + ctor: System.ComponentModel.DataAnnotations.RequiredAttribute.#ctor + arguments: [] + - type: System.ComponentModel.DataAnnotations.MaxLengthAttribute + ctor: System.ComponentModel.DataAnnotations.MaxLengthAttribute.#ctor(System.Int32) + arguments: + - type: System.Int32 + value: 256 +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.SessionLogEntry + commentId: P:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.SessionLogEntry + id: SessionLogEntry + parent: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity + langs: + - csharp + - vb + name: SessionLogEntry + nameWithType: SessionLogEntryTagEntity.SessionLogEntry + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.SessionLogEntry + type: Property + source: + id: SessionLogEntry + path: E:\github\McpServer\src\McpServer.Support.Mcp\Storage\Entities\SessionLogEntryTagEntity.cs + startLine: 23 + assemblies: + - McpServer.Support.Mcp + namespace: McpServer.Support.Mcp.Storage.Entities + summary: 'TR-PLANNED-013: Navigation to parent entry.' + example: [] + syntax: + content: public SessionLogEntryEntity? SessionLogEntry { get; set; } + parameters: [] + return: + type: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity + content.vb: Public Property SessionLogEntry As SessionLogEntryEntity + overload: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.SessionLogEntry* +references: +- uid: McpServer.Support.Mcp.Storage.Entities + commentId: N:McpServer.Support.Mcp.Storage.Entities + href: McpServer.html + name: McpServer.Support.Mcp.Storage.Entities + nameWithType: McpServer.Support.Mcp.Storage.Entities + fullName: McpServer.Support.Mcp.Storage.Entities + spec.csharp: + - uid: McpServer + name: McpServer + href: McpServer.html + - name: . + - uid: McpServer.Support + name: Support + href: McpServer.Support.html + - name: . + - uid: McpServer.Support.Mcp + name: Mcp + href: McpServer.Support.Mcp.html + - name: . + - uid: McpServer.Support.Mcp.Storage + name: Storage + href: McpServer.Support.Mcp.Storage.html + - name: . + - uid: McpServer.Support.Mcp.Storage.Entities + name: Entities + href: McpServer.Support.Mcp.Storage.Entities.html + spec.vb: + - uid: McpServer + name: McpServer + href: McpServer.html + - name: . + - uid: McpServer.Support + name: Support + href: McpServer.Support.html + - name: . + - uid: McpServer.Support.Mcp + name: Mcp + href: McpServer.Support.Mcp.html + - name: . + - uid: McpServer.Support.Mcp.Storage + name: Storage + href: McpServer.Support.Mcp.Storage.html + - name: . + - uid: McpServer.Support.Mcp.Storage.Entities + name: Entities + href: McpServer.Support.Mcp.Storage.Entities.html +- uid: System.Object + commentId: T:System.Object + parent: System + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object + name: object + nameWithType: object + fullName: object + nameWithType.vb: Object + fullName.vb: Object + name.vb: Object +- uid: System.Object.Equals(System.Object) + commentId: M:System.Object.Equals(System.Object) + parent: System.Object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object) + name: Equals(object) + nameWithType: object.Equals(object) + fullName: object.Equals(object) + nameWithType.vb: Object.Equals(Object) + fullName.vb: Object.Equals(Object) + name.vb: Equals(Object) + spec.csharp: + - uid: System.Object.Equals(System.Object) + name: Equals + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object) + - name: ( + - uid: System.Object + name: object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object + - name: ) + spec.vb: + - uid: System.Object.Equals(System.Object) + name: Equals + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object) + - name: ( + - uid: System.Object + name: Object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object + - name: ) +- uid: System.Object.Equals(System.Object,System.Object) + commentId: M:System.Object.Equals(System.Object,System.Object) + parent: System.Object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object) + name: Equals(object, object) + nameWithType: object.Equals(object, object) + fullName: object.Equals(object, object) + nameWithType.vb: Object.Equals(Object, Object) + fullName.vb: Object.Equals(Object, Object) + name.vb: Equals(Object, Object) + spec.csharp: + - uid: System.Object.Equals(System.Object,System.Object) + name: Equals + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object) + - name: ( + - uid: System.Object + name: object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object + - name: ',' + - name: " " + - uid: System.Object + name: object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object + - name: ) + spec.vb: + - uid: System.Object.Equals(System.Object,System.Object) + name: Equals + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.equals#system-object-equals(system-object-system-object) + - name: ( + - uid: System.Object + name: Object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object + - name: ',' + - name: " " + - uid: System.Object + name: Object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object + - name: ) +- uid: System.Object.GetHashCode + commentId: M:System.Object.GetHashCode + parent: System.Object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.gethashcode + name: GetHashCode() + nameWithType: object.GetHashCode() + fullName: object.GetHashCode() + nameWithType.vb: Object.GetHashCode() + fullName.vb: Object.GetHashCode() + spec.csharp: + - uid: System.Object.GetHashCode + name: GetHashCode + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.gethashcode + - name: ( + - name: ) + spec.vb: + - uid: System.Object.GetHashCode + name: GetHashCode + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.gethashcode + - name: ( + - name: ) +- uid: System.Object.GetType + commentId: M:System.Object.GetType + parent: System.Object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.gettype + name: GetType() + nameWithType: object.GetType() + fullName: object.GetType() + nameWithType.vb: Object.GetType() + fullName.vb: Object.GetType() + spec.csharp: + - uid: System.Object.GetType + name: GetType + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.gettype + - name: ( + - name: ) + spec.vb: + - uid: System.Object.GetType + name: GetType + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.gettype + - name: ( + - name: ) +- uid: System.Object.ReferenceEquals(System.Object,System.Object) + commentId: M:System.Object.ReferenceEquals(System.Object,System.Object) + parent: System.Object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.referenceequals + name: ReferenceEquals(object, object) + nameWithType: object.ReferenceEquals(object, object) + fullName: object.ReferenceEquals(object, object) + nameWithType.vb: Object.ReferenceEquals(Object, Object) + fullName.vb: Object.ReferenceEquals(Object, Object) + name.vb: ReferenceEquals(Object, Object) + spec.csharp: + - uid: System.Object.ReferenceEquals(System.Object,System.Object) + name: ReferenceEquals + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.referenceequals + - name: ( + - uid: System.Object + name: object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object + - name: ',' + - name: " " + - uid: System.Object + name: object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object + - name: ) + spec.vb: + - uid: System.Object.ReferenceEquals(System.Object,System.Object) + name: ReferenceEquals + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.referenceequals + - name: ( + - uid: System.Object + name: Object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object + - name: ',' + - name: " " + - uid: System.Object + name: Object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object + - name: ) +- uid: System.Object.ToString + commentId: M:System.Object.ToString + parent: System.Object + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.tostring + name: ToString() + nameWithType: object.ToString() + fullName: object.ToString() + nameWithType.vb: Object.ToString() + fullName.vb: Object.ToString() + spec.csharp: + - uid: System.Object.ToString + name: ToString + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.tostring + - name: ( + - name: ) + spec.vb: + - uid: System.Object.ToString + name: ToString + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.object.tostring + - name: ( + - name: ) +- uid: System + commentId: N:System + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system + name: System + nameWithType: System + fullName: System +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.Id* + commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.Id + href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryTagEntity_Id + name: Id + nameWithType: SessionLogEntryTagEntity.Id + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.Id +- uid: System.Int64 + commentId: T:System.Int64 + parent: System + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.int64 + name: long + nameWithType: long + fullName: long + nameWithType.vb: Long + fullName.vb: Long + name.vb: Long +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.SessionLogEntryId* + commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.SessionLogEntryId + href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryTagEntity_SessionLogEntryId + name: SessionLogEntryId + nameWithType: SessionLogEntryTagEntity.SessionLogEntryId + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.SessionLogEntryId +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.Tag* + commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.Tag + href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryTagEntity_Tag + name: Tag + nameWithType: SessionLogEntryTagEntity.Tag + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.Tag +- uid: System.String + commentId: T:System.String + parent: System + isExternal: true + href: https://learn.microsoft.com/dotnet/api/system.string + name: string + nameWithType: string + fullName: string + nameWithType.vb: String + fullName.vb: String + name.vb: String +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.SessionLogEntry* + commentId: Overload:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.SessionLogEntry + href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.html#McpServer_Support_Mcp_Storage_Entities_SessionLogEntryTagEntity_SessionLogEntry + name: SessionLogEntry + nameWithType: SessionLogEntryTagEntity.SessionLogEntry + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity.SessionLogEntry +- uid: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity + commentId: T:McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity + parent: McpServer.Support.Mcp.Storage.Entities + href: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity.html + name: SessionLogEntryEntity + nameWithType: SessionLogEntryEntity + fullName: McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity diff --git a/build_errors.txt b/build_errors.txt new file mode 100644 index 00000000..816f6958 --- /dev/null +++ b/build_errors.txt @@ -0,0 +1,329 @@ +E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(15,12): error CS1591: Missing XML comment for publicly visible type or member 'GitHubEndpointTests.GitHubEndpointTests(GitHubEndpointFixture)' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(20,23): error CS1591: Missing XML comment for publicly visible type or member 'GitHubEndpointTests.ListIssues_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(30,23): error CS1591: Missing XML comment for publicly visible type or member 'GitHubEndpointTests.ListIssues_WithState_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(39,23): error CS1591: Missing XML comment for publicly visible type or member 'GitHubEndpointTests.GetIssue_ExistingNumber_Returns200Or404()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(50,23): error CS1591: Missing XML comment for publicly visible type or member 'GitHubEndpointTests.CreateIssue_MissingTitle_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(60,23): error CS1591: Missing XML comment for publicly visible type or member 'GitHubEndpointTests.UpdateIssue_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(69,23): error CS1591: Missing XML comment for publicly visible type or member 'GitHubEndpointTests.CommentOnIssue_MissingBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(79,23): error CS1591: Missing XML comment for publicly visible type or member 'GitHubEndpointTests.ListLabels_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(90,23): error CS1591: Missing XML comment for publicly visible type or member 'GitHubEndpointTests.ListPulls_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(100,23): error CS1591: Missing XML comment for publicly visible type or member 'GitHubEndpointTests.ListPulls_WithState_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(109,23): error CS1591: Missing XML comment for publicly visible type or member 'GitHubEndpointTests.CommentOnPull_MissingBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(119,23): error CS1591: Missing XML comment for publicly visible type or member 'GitHubEndpointTests.CloseIssue_NonExistent_ReturnsBadRequestOr200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(130,23): error CS1591: Missing XML comment for publicly visible type or member 'GitHubEndpointTests.ReopenIssue_NonExistent_ReturnsBadRequestOr200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(140,23): error CS1591: Missing XML comment for publicly visible type or member 'GitHubEndpointTests.SyncFromGitHub_Returns200Or400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(150,23): error CS1591: Missing XML comment for publicly visible type or member 'GitHubEndpointTests.SyncToGitHub_Returns200Or400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(160,23): error CS1591: Missing XML comment for publicly visible type or member 'GitHubEndpointTests.SyncSingleIssue_Returns200Or400Or404()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type or member 'GitHubEndpointCollection' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type or member 'GitHubEndpointFixture' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible type or member 'GitHubEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible type or member 'GitHubEndpointFixture.GhRoute' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible type or member 'GitHubEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible type or member 'GitHubEndpointFixture.GitHubEndpointFixture()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible type or member 'GitHubEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(13,12): error CS1591: Missing XML comment for publicly visible type or member 'BucketTests.BucketTests(ToolRegistryFixture)' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(18,23): error CS1591: Missing XML comment for publicly visible type or member 'BucketTests.ListBuckets_Returns200WithValidStructure()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(31,23): error CS1591: Missing XML comment for publicly visible type or member 'BucketTests.AddBucket_ValidRequest_Returns201()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(52,23): error CS1591: Missing XML comment for publicly visible type or member 'BucketTests.AddBucket_Duplicate_Returns409()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(73,23): error CS1591: Missing XML comment for publicly visible type or member 'BucketTests.RemoveBucket_Existing_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(87,23): error CS1591: Missing XML comment for publicly visible type or member 'BucketTests.RemoveBucket_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(96,23): error CS1591: Missing XML comment for publicly visible type or member 'BucketTests.BrowseBucket_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(103,23): error CS1591: Missing XML comment for publicly visible type or member 'BucketTests.BrowseBucket_Existing_ReturnsResult()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(126,23): error CS1591: Missing XML comment for publicly visible type or member 'BucketTests.InstallFromBucket_NonExistentBucket_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(136,23): error CS1591: Missing XML comment for publicly visible type or member 'BucketTests.SyncBucket_NonExistentBucket_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(144,23): error CS1591: Missing XML comment for publicly visible type or member 'BucketTests.SyncBucket_Existing_Returns200Or404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(13,12): error CS1591: Missing XML comment for publicly visible type or member 'ToolCrudTests.ToolCrudTests(ToolRegistryFixture)' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(18,23): error CS1591: Missing XML comment for publicly visible type or member 'ToolCrudTests.List_Returns200WithValidStructure()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(29,23): error CS1591: Missing XML comment for publicly visible type or member 'ToolCrudTests.List_ResponseIsJson()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(38,23): error CS1591: Missing XML comment for publicly visible type or member 'ToolCrudTests.Search_WithKeyword_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(47,23): error CS1591: Missing XML comment for publicly visible type or member 'ToolCrudTests.Search_NonMatchingKeyword_ReturnsEmpty()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(60,23): error CS1591: Missing XML comment for publicly visible type or member 'ToolCrudTests.Create_ValidTool_Returns201()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(92,23): error CS1591: Missing XML comment for publicly visible type or member 'ToolCrudTests.Create_DuplicateName_Returns409()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(113,23): error CS1591: Missing XML comment for publicly visible type or member 'ToolCrudTests.Get_ExistingTool_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(136,23): error CS1591: Missing XML comment for publicly visible type or member 'ToolCrudTests.Get_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(143,23): error CS1591: Missing XML comment for publicly visible type or member 'ToolCrudTests.Update_ChangeName_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(170,23): error CS1591: Missing XML comment for publicly visible type or member 'ToolCrudTests.Update_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(178,23): error CS1591: Missing XML comment for publicly visible type or member 'ToolCrudTests.Delete_ExistingTool_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(198,23): error CS1591: Missing XML comment for publicly visible type or member 'ToolCrudTests.Delete_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(207,23): error CS1591: Missing XML comment for publicly visible type or member 'ToolCrudTests.Search_ByTag_FindsCreatedTool()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible type or member 'CreateTodoTests.CreateTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(21,22): error CS1591: Missing XML comment for publicly visible type or member 'CreateTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(23,28): error CS1591: Missing XML comment for publicly visible type or member 'CreateTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(29,23): error CS1591: Missing XML comment for publicly visible type or member 'CreateTodoTests.Create_ValidRequest_Returns201()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(62,23): error CS1591: Missing XML comment for publicly visible type or member 'CreateTodoTests.Create_DuplicateId_Returns409()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(77,23): error CS1591: Missing XML comment for publicly visible type or member 'CreateTodoTests.Create_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(91,23): error CS1591: Missing XML comment for publicly visible type or member 'CreateTodoTests.Create_WithImplementationTasks_Returns201()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(14,12): error CS1591: Missing XML comment for publicly visible type or member 'DeleteTodoTests.DeleteTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(17,23): error CS1591: Missing XML comment for publicly visible type or member 'DeleteTodoTests.Delete_ExistingItem_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(40,23): error CS1591: Missing XML comment for publicly visible type or member 'DeleteTodoTests.Delete_NonExistentItem_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible type or member 'GetTodoTests.GetTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly visible type or member 'GetTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly visible type or member 'GetTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(15,12): error CS1591: Missing XML comment for publicly visible type or member 'RepoEndpointTests.RepoEndpointTests(RepoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly visible type or member 'GetTodoTests.Get_ValidId_Returns200WithItem()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(20,23): error CS1591: Missing XML comment for publicly visible type or member 'RepoEndpointTests.List_RootPath_Returns200WithEntries()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(51,23): error CS1591: Missing XML comment for publicly visible type or member 'GetTodoTests.Get_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(30,23): error CS1591: Missing XML comment for publicly visible type or member 'RepoEndpointTests.List_WithPath_Returns200()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(14,12): error CS1591: Missing XML comment for publicly visible type or member 'QueryTodoTests.QueryTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(42,23): error CS1591: Missing XML comment for publicly visible type or member 'RepoEndpointTests.ReadFile_MissingPath_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(17,23): error CS1591: Missing XML comment for publicly visible type or member 'QueryTodoTests.Query_NoFilters_Returns200WithValidStructure()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(51,23): error CS1591: Missing XML comment for publicly visible type or member 'RepoEndpointTests.ReadFile_ExistingFile_Returns200()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(31,23): error CS1591: Missing XML comment for publicly visible type or member 'QueryTodoTests.Query_ResponseIsJson()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(60,23): error CS1591: Missing XML comment for publicly visible type or member 'RepoEndpointTests.ReadFile_NonExistentFile_Returns200Or400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(40,23): error CS1591: Missing XML comment for publicly visible type or member 'QueryTodoTests.Query_ByPriority_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(71,23): error CS1591: Missing XML comment for publicly visible type or member 'RepoEndpointTests.WriteFile_MissingPath_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(55,23): error CS1591: Missing XML comment for publicly visible type or member 'QueryTodoTests.Query_ByDoneStatus_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(79,23): error CS1591: Missing XML comment for publicly visible type or member 'RepoEndpointTests.WriteFile_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(69,23): error CS1591: Missing XML comment for publicly visible type or member 'QueryTodoTests.Query_ByKeyword_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(86,23): error CS1591: Missing XML comment for publicly visible type or member 'RepoEndpointTests.WriteFile_ValidPath_Returns200Or400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(81,23): error CS1591: Missing XML comment for publicly visible type or member 'QueryTodoTests.Query_BySection_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type or member 'RepoEndpointCollection' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(95,23): error CS1591: Missing XML comment for publicly visible type or member 'QueryTodoTests.Query_ById_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type or member 'RepoEndpointFixture' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible type or member 'RepoEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible type or member 'RepoEndpointFixture.RepoRoute' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(114,23): error CS1591: Missing XML comment for publicly visible type or member 'QueryTodoTests.Query_NonMatchingKeyword_ReturnsEmptyList()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible type or member 'RepoEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible type or member 'RepoEndpointFixture.RepoEndpointFixture()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible type or member 'RequirementsTodoTests.RequirementsTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible type or member 'RepoEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly visible type or member 'RequirementsTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly visible type or member 'RequirementsTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly visible type or member 'RequirementsTodoTests.Requirements_RegisteredItem_ReturnsResult()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(60,23): error CS1591: Missing XML comment for publicly visible type or member 'RequirementsTodoTests.Requirements_NonExistentItem_Returns422()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible type or member 'UpdateTodoTests.UpdateTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly visible type or member 'UpdateTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly visible type or member 'UpdateTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly visible type or member 'UpdateTodoTests.Update_ChangeTitle_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(50,23): error CS1591: Missing XML comment for publicly visible type or member 'UpdateTodoTests.Update_ToggleDone_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(13,12): error CS1591: Missing XML comment for publicly visible type or member 'ToolRegistryErrorTests.ToolRegistryErrorTests(ToolRegistryFixture)' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(16,23): error CS1591: Missing XML comment for publicly visible type or member 'ToolRegistryErrorTests.Get_NonExistentTool_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(66,23): error CS1591: Missing XML comment for publicly visible type or member 'UpdateTodoTests.Update_ChangePriority_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(23,23): error CS1591: Missing XML comment for publicly visible type or member 'ToolRegistryErrorTests.Update_NonExistentTool_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(30,23): error CS1591: Missing XML comment for publicly visible type or member 'ToolRegistryErrorTests.Delete_NonExistentTool_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(82,23): error CS1591: Missing XML comment for publicly visible type or member 'UpdateTodoTests.Update_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(37,23): error CS1591: Missing XML comment for publicly visible type or member 'ToolRegistryErrorTests.RemoveBucket_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(93,23): error CS1591: Missing XML comment for publicly visible type or member 'UpdateTodoTests.Update_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(44,23): error CS1591: Missing XML comment for publicly visible type or member 'ToolRegistryErrorTests.BrowseBucket_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(18,12): error CS1591: Missing XML comment for publicly visible type or member 'TodoErrorTests.TodoErrorTests(TodoEndpointFixture, ITestOutputHelper)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(51,23): error CS1591: Missing XML comment for publicly visible type or member 'ToolRegistryErrorTests.SyncBucket_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(27,23): error CS1591: Missing XML comment for publicly visible type or member 'TodoErrorTests.Get_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(58,23): error CS1591: Missing XML comment for publicly visible type or member 'ToolRegistryErrorTests.InstallFromBucket_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(36,23): error CS1591: Missing XML comment for publicly visible type or member 'TodoErrorTests.Update_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(66,23): error CS1591: Missing XML comment for publicly visible type or member 'ToolRegistryErrorTests.Patch_NotSupported_Returns405()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(46,23): error CS1591: Missing XML comment for publicly visible type or member 'TodoErrorTests.Delete_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(77,23): error CS1591: Missing XML comment for publicly visible type or member 'ToolRegistryErrorTests.Get_InvalidIdFormat_Returns404Or400()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(57,23): error CS1591: Missing XML comment for publicly visible type or member 'TodoErrorTests.Create_Duplicate_Returns409()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(84,23): error CS1591: Missing XML comment for publicly visible type or member 'TodoErrorTests.Create_EmptyBody_ReturnsBadRequest()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(97,23): error CS1591: Missing XML comment for publicly visible type or member 'TodoErrorTests.Update_NullBody_Returns400OrUnsupportedMedia()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(87,23): error CS1591: Missing XML comment for publicly visible type or member 'ToolRegistryErrorTests.Create_DuplicateName_Returns409()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(114,23): error CS1591: Missing XML comment for publicly visible type or member 'TodoErrorTests.Patch_NotSupported_Returns405()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(128,23): error CS1591: Missing XML comment for publicly visible type or member 'TodoErrorTests.Query_InvalidPriority_Returns200EmptyOrAll()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(111,23): error CS1591: Missing XML comment for publicly visible type or member 'ToolRegistryErrorTests.AddBucket_Duplicate_Returns409()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(140,23): error CS1591: Missing XML comment for publicly visible type or member 'TodoErrorTests.Query_MultipleFilters_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(6,19): error CS1591: Missing XML comment for publicly visible type or member 'TodoFlatItem.Id' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(7,19): error CS1591: Missing XML comment for publicly visible type or member 'TodoFlatItem.Title' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(8,19): error CS1591: Missing XML comment for publicly visible type or member 'TodoFlatItem.Section' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(130,23): error CS1591: Missing XML comment for publicly visible type or member 'ToolRegistryErrorTests.Search_WithWorkspace_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(9,19): error CS1591: Missing XML comment for publicly visible type or member 'TodoFlatItem.Priority' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(138,23): error CS1591: Missing XML comment for publicly visible type or member 'ToolRegistryErrorTests.List_WithWorkspace_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(10,17): error CS1591: Missing XML comment for publicly visible type or member 'TodoFlatItem.Done' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(3,21): error CS1591: Missing XML comment for publicly visible type or member 'ToolDto' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(11,20): error CS1591: Missing XML comment for publicly visible type or member 'TodoFlatItem.Estimate' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(12,20): error CS1591: Missing XML comment for publicly visible type or member 'TodoFlatItem.Note' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(5,16): error CS1591: Missing XML comment for publicly visible type or member 'ToolDto.Id' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(13,26): error CS1591: Missing XML comment for publicly visible type or member 'TodoFlatItem.Description' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(14,26): error CS1591: Missing XML comment for publicly visible type or member 'TodoFlatItem.TechnicalDetails' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(6,19): error CS1591: Missing XML comment for publicly visible type or member 'ToolDto.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(15,32): error CS1591: Missing XML comment for publicly visible type or member 'TodoFlatItem.ImplementationTasks' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(7,19): error CS1591: Missing XML comment for publicly visible type or member 'ToolDto.Description' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(16,20): error CS1591: Missing XML comment for publicly visible type or member 'TodoFlatItem.CompletedDate' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(17,20): error CS1591: Missing XML comment for publicly visible type or member 'TodoFlatItem.DoneSummary' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(8,25): error CS1591: Missing XML comment for publicly visible type or member 'ToolDto.Tags' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(18,20): error CS1591: Missing XML comment for publicly visible type or member 'TodoFlatItem.Remaining' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(9,20): error CS1591: Missing XML comment for publicly visible type or member 'ToolDto.ParameterSchema' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(19,20): error CS1591: Missing XML comment for publicly visible type or member 'TodoFlatItem.PriorityNote' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(10,20): error CS1591: Missing XML comment for publicly visible type or member 'ToolDto.CommandTemplate' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(20,20): error CS1591: Missing XML comment for publicly visible type or member 'TodoFlatItem.Reference' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(11,20): error CS1591: Missing XML comment for publicly visible type or member 'ToolDto.WorkspacePath' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(21,26): error CS1591: Missing XML comment for publicly visible type or member 'TodoFlatItem.DependsOn' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(12,27): error CS1591: Missing XML comment for publicly visible type or member 'ToolDto.DateTimeCreated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(13,27): error CS1591: Missing XML comment for publicly visible type or member 'ToolDto.DateTimeModified' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(22,26): error CS1591: Missing XML comment for publicly visible type or member 'TodoFlatItem.FunctionalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(23,26): error CS1591: Missing XML comment for publicly visible type or member 'TodoFlatItem.TechnicalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(16,21): error CS1591: Missing XML comment for publicly visible type or member 'ToolSearchResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(18,26): error CS1591: Missing XML comment for publicly visible type or member 'ToolSearchResult.Tools' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(29,19): error CS1591: Missing XML comment for publicly visible type or member 'TodoFlatTask.Task' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(19,16): error CS1591: Missing XML comment for publicly visible type or member 'ToolSearchResult.TotalCount' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(22,21): error CS1591: Missing XML comment for publicly visible type or member 'ToolMutationResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(30,17): error CS1591: Missing XML comment for publicly visible type or member 'TodoFlatTask.Done' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(24,17): error CS1591: Missing XML comment for publicly visible type or member 'ToolMutationResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(36,31): error CS1591: Missing XML comment for publicly visible type or member 'TodoQueryResult.Items' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(25,20): error CS1591: Missing XML comment for publicly visible type or member 'ToolMutationResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(37,16): error CS1591: Missing XML comment for publicly visible type or member 'TodoQueryResult.TotalCount' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(26,21): error CS1591: Missing XML comment for publicly visible type or member 'ToolMutationResult.Tool' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(43,17): error CS1591: Missing XML comment for publicly visible type or member 'TodoMutationResult.Success' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(29,21): error CS1591: Missing XML comment for publicly visible type or member 'BucketDto' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(44,20): error CS1591: Missing XML comment for publicly visible type or member 'TodoMutationResult.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(31,16): error CS1591: Missing XML comment for publicly visible type or member 'BucketDto.Id' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(45,26): error CS1591: Missing XML comment for publicly visible type or member 'TodoMutationResult.Item' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(32,19): error CS1591: Missing XML comment for publicly visible type or member 'BucketDto.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(51,17): error CS1591: Missing XML comment for publicly visible type or member 'RequirementsAnalysisResult.Success' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(33,19): error CS1591: Missing XML comment for publicly visible type or member 'BucketDto.Owner' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(52,26): error CS1591: Missing XML comment for publicly visible type or member 'RequirementsAnalysisResult.FunctionalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(34,19): error CS1591: Missing XML comment for publicly visible type or member 'BucketDto.Repo' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(35,19): error CS1591: Missing XML comment for publicly visible type or member 'BucketDto.Branch' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(53,26): error CS1591: Missing XML comment for publicly visible type or member 'RequirementsAnalysisResult.TechnicalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(36,19): error CS1591: Missing XML comment for publicly visible type or member 'BucketDto.ManifestPath' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(54,20): error CS1591: Missing XML comment for publicly visible type or member 'RequirementsAnalysisResult.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(37,27): error CS1591: Missing XML comment for publicly visible type or member 'BucketDto.DateTimeCreated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(55,20): error CS1591: Missing XML comment for publicly visible type or member 'RequirementsAnalysisResult.CopilotResponse' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(38,28): error CS1591: Missing XML comment for publicly visible type or member 'BucketDto.DateTimeLastSynced' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(61,20): error CS1591: Missing XML comment for publicly visible type or member 'ErrorResponse.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(41,21): error CS1591: Missing XML comment for publicly visible type or member 'BucketListResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\SequenceTests\TodoLifecycleSequenceTests.cs(18,12): error CS1591: Missing XML comment for publicly visible type or member 'TodoLifecycleSequenceTests.TodoLifecycleSequenceTests(TodoEndpointFixture, ITestOutputHelper)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(43,28): error CS1591: Missing XML comment for publicly visible type or member 'BucketListResult.Buckets' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\SequenceTests\TodoLifecycleSequenceTests.cs(25,23): error CS1591: Missing XML comment for publicly visible type or member 'TodoLifecycleSequenceTests.FullLifecycle_CreateThroughDelete()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(44,16): error CS1591: Missing XML comment for publicly visible type or member 'BucketListResult.TotalCount' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\TodoEndpointFixture.cs(20,12): error CS1591: Missing XML comment for publicly visible type or member 'TodoEndpointFixture.TodoEndpointFixture()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(47,21): error CS1591: Missing XML comment for publicly visible type or member 'BucketMutationResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.Todo.Validation\TodoEndpointFixture.cs(33,17): error CS1591: Missing XML comment for publicly visible type or member 'TodoEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(49,17): error CS1591: Missing XML comment for publicly visible type or member 'BucketMutationResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(50,20): error CS1591: Missing XML comment for publicly visible type or member 'BucketMutationResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(51,23): error CS1591: Missing XML comment for publicly visible type or member 'BucketMutationResult.Bucket' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(54,21): error CS1591: Missing XML comment for publicly visible type or member 'ToolManifest' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(56,19): error CS1591: Missing XML comment for publicly visible type or member 'ToolManifest.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(57,19): error CS1591: Missing XML comment for publicly visible type or member 'ToolManifest.Description' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(58,25): error CS1591: Missing XML comment for publicly visible type or member 'ToolManifest.Tags' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(59,20): error CS1591: Missing XML comment for publicly visible type or member 'ToolManifest.ParameterSchema' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(60,20): error CS1591: Missing XML comment for publicly visible type or member 'ToolManifest.CommandTemplate' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(61,19): error CS1591: Missing XML comment for publicly visible type or member 'ToolManifest.ManifestFile' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(64,21): error CS1591: Missing XML comment for publicly visible type or member 'BucketBrowseResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(66,17): error CS1591: Missing XML comment for publicly visible type or member 'BucketBrowseResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(67,20): error CS1591: Missing XML comment for publicly visible type or member 'BucketBrowseResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(10,21): error CS1591: Missing XML comment for publicly visible type or member 'AppendDialogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(68,32): error CS1591: Missing XML comment for publicly visible type or member 'BucketBrowseResult.Tools' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(15,12): error CS1591: Missing XML comment for publicly visible type or member 'AppendDialogTests.AppendDialogTests(SessionLogEndpointFixture)' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(71,21): error CS1591: Missing XML comment for publicly visible type or member 'BucketSyncResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(18,23): error CS1591: Missing XML comment for publicly visible type or member 'AppendDialogTests.AppendDialog_ToExistingEntry_Returns200WithCount()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(73,17): error CS1591: Missing XML comment for publicly visible type or member 'BucketSyncResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(70,23): error CS1591: Missing XML comment for publicly visible type or member 'AppendDialogTests.AppendDialog_MultipleAppends_AccumulatesCount()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(74,20): error CS1591: Missing XML comment for publicly visible type or member 'BucketSyncResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(75,16): error CS1591: Missing XML comment for publicly visible type or member 'BucketSyncResult.Updated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(115,23): error CS1591: Missing XML comment for publicly visible type or member 'AppendDialogTests.AppendDialog_NonExistentSession_Returns404()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(76,16): error CS1591: Missing XML comment for publicly visible type or member 'BucketSyncResult.Added' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(10,21): error CS1591: Missing XML comment for publicly visible type or member 'QuerySessionLogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(77,16): error CS1591: Missing XML comment for publicly visible type or member 'BucketSyncResult.Unchanged' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(15,12): error CS1591: Missing XML comment for publicly visible type or member 'QuerySessionLogTests.QuerySessionLogTests(SessionLogEndpointFixture)' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(18,23): error CS1591: Missing XML comment for publicly visible type or member 'QuerySessionLogTests.Query_NoFilters_Returns200WithResults()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(15,12): error CS1591: Missing XML comment for publicly visible type or member 'ToolLifecycleSequenceTests.ToolLifecycleSequenceTests(ToolRegistryFixture, ITestOutputHelper)' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(30,23): error CS1591: Missing XML comment for publicly visible type or member 'QuerySessionLogTests.Query_FilterByAgent_Returns200Filtered()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(57,23): error CS1591: Missing XML comment for publicly visible type or member 'QuerySessionLogTests.Query_FilterByModel_Returns200Filtered()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(18,23): error CS1591: Missing XML comment for publicly visible type or member 'ToolLifecycleSequenceTests.FullToolLifecycle_CreateThroughDelete()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(82,23): error CS1591: Missing XML comment for publicly visible type or member 'QuerySessionLogTests.Query_FilterByDateRange_Returns200()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(109,23): error CS1591: Missing XML comment for publicly visible type or member 'ToolLifecycleSequenceTests.FullBucketLifecycle_AddThroughRemove()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(95,23): error CS1591: Missing XML comment for publicly visible type or member 'QuerySessionLogTests.Query_WithPagination_Returns200()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(8,25): error CS1591: Missing XML comment for publicly visible type or member 'ToolRegistryFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(107,23): error CS1591: Missing XML comment for publicly visible type or member 'QuerySessionLogTests.Query_NonMatchingAgent_ReturnsEmptyResults()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(9,25): error CS1591: Missing XML comment for publicly visible type or member 'ToolRegistryFixture.ToolRoute' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(119,23): error CS1591: Missing XML comment for publicly visible type or member 'QuerySessionLogTests.Query_FilterByText_Returns200()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible type or member 'ToolRegistryFixture.BucketRoute' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(10,21): error CS1591: Missing XML comment for publicly visible type or member 'SubmitSessionLogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible type or member 'ToolRegistryFixture.Client' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(15,12): error CS1591: Missing XML comment for publicly visible type or member 'SubmitSessionLogTests.SubmitSessionLogTests(SessionLogEndpointFixture)' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible type or member 'ToolRegistryFixture.ToolRegistryFixture()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(18,23): error CS1591: Missing XML comment for publicly visible type or member 'SubmitSessionLogTests.Submit_MinimalSessionLog_Returns201()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(27,17): error CS1591: Missing XML comment for publicly visible type or member 'ToolRegistryFixture.Dispose()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(31,21): error CS1591: Missing XML comment for publicly visible type or member 'ToolRegistryCollection' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(44,23): error CS1591: Missing XML comment for publicly visible type or member 'SubmitSessionLogTests.Submit_FullSessionLogWithEntries_Returns201()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(94,23): error CS1591: Missing XML comment for publicly visible type or member 'SubmitSessionLogTests.Submit_UpsertSameSession_Returns201WithUpdatedData()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(135,23): error CS1591: Missing XML comment for publicly visible type or member 'SubmitSessionLogTests.Submit_WithProcessingDialog_Returns201()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(11,21): error CS1591: Missing XML comment for publicly visible type or member 'SessionLogErrorTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(16,12): error CS1591: Missing XML comment for publicly visible type or member 'SessionLogErrorTests.SessionLogErrorTests(SessionLogEndpointFixture)' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(19,23): error CS1591: Missing XML comment for publicly visible type or member 'SessionLogErrorTests.Submit_MissingSourceType_Returns400()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(37,23): error CS1591: Missing XML comment for publicly visible type or member 'SessionLogErrorTests.Submit_MissingSessionId_Returns400()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(55,23): error CS1591: Missing XML comment for publicly visible type or member 'SessionLogErrorTests.Submit_EmptySourceType_Returns400()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(70,23): error CS1591: Missing XML comment for publicly visible type or member 'SessionLogErrorTests.Submit_EmptySessionId_Returns400()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(85,23): error CS1591: Missing XML comment for publicly visible type or member 'SessionLogErrorTests.AppendDialog_EmptyItemsList_Returns400()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(94,23): error CS1591: Missing XML comment for publicly visible type or member 'SessionLogErrorTests.Submit_InvalidJsonBody_Returns400()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(5,21): error CS1591: Missing XML comment for publicly visible type or member 'SubmitResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(7,41): error CS1591: Missing XML comment for publicly visible type or member 'SubmitResult.Id' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(8,53): error CS1591: Missing XML comment for publicly visible type or member 'SubmitResult.SourceType' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(9,52): error CS1591: Missing XML comment for publicly visible type or member 'SubmitResult.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(12,21): error CS1591: Missing XML comment for publicly visible type or member 'ErrorResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(14,48): error CS1591: Missing XML comment for publicly visible type or member 'ErrorResult.Error' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(17,21): error CS1591: Missing XML comment for publicly visible type or member 'QueryResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(19,49): error CS1591: Missing XML comment for publicly visible type or member 'QueryResult.TotalCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(20,44): error CS1591: Missing XML comment for publicly visible type or member 'QueryResult.Limit' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(21,45): error CS1591: Missing XML comment for publicly visible type or member 'QueryResult.Offset' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(22,62): error CS1591: Missing XML comment for publicly visible type or member 'QueryResult.Items' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(25,21): error CS1591: Missing XML comment for publicly visible type or member 'SessionSummary' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(27,41): error CS1591: Missing XML comment for publicly visible type or member 'SessionSummary.Id' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(28,53): error CS1591: Missing XML comment for publicly visible type or member 'SessionSummary.SourceType' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(29,52): error CS1591: Missing XML comment for publicly visible type or member 'SessionSummary.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(30,48): error CS1591: Missing XML comment for publicly visible type or member 'SessionSummary.Title' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(31,48): error CS1591: Missing XML comment for publicly visible type or member 'SessionSummary.Model' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(32,49): error CS1591: Missing XML comment for publicly visible type or member 'SessionSummary.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(33,49): error CS1591: Missing XML comment for publicly visible type or member 'SessionSummary.EntryCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(34,50): error CS1591: Missing XML comment for publicly visible type or member 'SessionSummary.Started' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(35,54): error CS1591: Missing XML comment for publicly visible type or member 'SessionSummary.LastUpdated' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(36,58): error CS1591: Missing XML comment for publicly visible type or member 'SessionSummary.Entries' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(39,21): error CS1591: Missing XML comment for publicly visible type or member 'EntryDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(41,52): error CS1591: Missing XML comment for publicly visible type or member 'EntryDto.RequestId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(42,52): error CS1591: Missing XML comment for publicly visible type or member 'EntryDto.QueryText' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(43,53): error CS1591: Missing XML comment for publicly visible type or member 'EntryDto.QueryTitle' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(44,51): error CS1591: Missing XML comment for publicly visible type or member 'EntryDto.Response' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(45,49): error CS1591: Missing XML comment for publicly visible type or member 'EntryDto.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(46,53): error CS1591: Missing XML comment for publicly visible type or member 'EntryDto.Tags' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(47,59): error CS1591: Missing XML comment for publicly visible type or member 'EntryDto.Actions' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(48,72): error CS1591: Missing XML comment for publicly visible type or member 'EntryDto.ProcessingDialog' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(51,21): error CS1591: Missing XML comment for publicly visible type or member 'ActionDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(53,44): error CS1591: Missing XML comment for publicly visible type or member 'ActionDto.Order' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(54,54): error CS1591: Missing XML comment for publicly visible type or member 'ActionDto.Description' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(55,47): error CS1591: Missing XML comment for publicly visible type or member 'ActionDto.Type' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(56,49): error CS1591: Missing XML comment for publicly visible type or member 'ActionDto.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(57,51): error CS1591: Missing XML comment for publicly visible type or member 'ActionDto.FilePath' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(60,21): error CS1591: Missing XML comment for publicly visible type or member 'DialogItemDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(62,52): error CS1591: Missing XML comment for publicly visible type or member 'DialogItemDto.Timestamp' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(63,47): error CS1591: Missing XML comment for publicly visible type or member 'DialogItemDto.Role' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(64,50): error CS1591: Missing XML comment for publicly visible type or member 'DialogItemDto.Content' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(65,51): error CS1591: Missing XML comment for publicly visible type or member 'DialogItemDto.Category' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(68,21): error CS1591: Missing XML comment for publicly visible type or member 'DialogAppendResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(70,48): error CS1591: Missing XML comment for publicly visible type or member 'DialogAppendResult.Agent' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(71,52): error CS1591: Missing XML comment for publicly visible type or member 'DialogAppendResult.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(72,52): error CS1591: Missing XML comment for publicly visible type or member 'DialogAppendResult.RequestId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(73,55): error CS1591: Missing XML comment for publicly visible type or member 'DialogAppendResult.TotalDialogCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(10,21): error CS1591: Missing XML comment for publicly visible type or member 'SessionLogLifecycleTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(15,12): error CS1591: Missing XML comment for publicly visible type or member 'SessionLogLifecycleTests.SessionLogLifecycleTests(SessionLogEndpointFixture)' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(18,23): error CS1591: Missing XML comment for publicly visible type or member 'SessionLogLifecycleTests.FullLifecycle_Submit_Query_AppendDialog_Requery()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible type or member 'SessionLogEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible type or member 'SessionLogEndpointFixture.SessionLogRoute' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(13,23): error CS1591: Missing XML comment for publicly visible type or member 'SessionLogEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(14,20): error CS1591: Missing XML comment for publicly visible type or member 'SessionLogEndpointFixture.ApiKey' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(16,12): error CS1591: Missing XML comment for publicly visible type or member 'SessionLogEndpointFixture.SessionLogEndpointFixture()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(30,17): error CS1591: Missing XML comment for publicly visible type or member 'SessionLogEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(34,21): error CS1591: Missing XML comment for publicly visible type or member 'SessionLogEndpointCollection' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(9,21): error CS1591: Missing XML comment for publicly visible type or member 'ContextEndpointTests' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(14,12): error CS1591: Missing XML comment for publicly visible type or member 'ContextEndpointTests.ContextEndpointTests(ContextEndpointFixture)' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(19,23): error CS1591: Missing XML comment for publicly visible type or member 'ContextEndpointTests.Sources_Returns200WithSourcesArray()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(31,23): error CS1591: Missing XML comment for publicly visible type or member 'ContextEndpointTests.Search_EmptyQuery_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(42,23): error CS1591: Missing XML comment for publicly visible type or member 'ContextEndpointTests.Search_WithQuery_Returns200WithResults()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(54,23): error CS1591: Missing XML comment for publicly visible type or member 'ContextEndpointTests.Search_WithSourceTypeFilter_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(62,23): error CS1591: Missing XML comment for publicly visible type or member 'ContextEndpointTests.Search_LimitClamped_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(72,23): error CS1591: Missing XML comment for publicly visible type or member 'ContextEndpointTests.Pack_EmptyQuery_Returns200WithPack()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(84,23): error CS1591: Missing XML comment for publicly visible type or member 'ContextEndpointTests.Pack_WithQueryId_Returns200WithSameQueryId()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(95,23): error CS1591: Missing XML comment for publicly visible type or member 'ContextEndpointTests.Pack_WithQuery_ReturnsFilteredChunks()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(105,23): error CS1591: Missing XML comment for publicly visible type or member 'ContextEndpointTests.RebuildIndex_Returns200Or500()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type or member 'ContextEndpointCollection' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type or member 'ContextEndpointFixture' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible type or member 'ContextEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible type or member 'ContextEndpointFixture.ContextRoute' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible type or member 'ContextEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible type or member 'ContextEndpointFixture.ContextEndpointFixture()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible type or member 'ContextEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] + +Build FAILED. + 0 Warning(s) + 323 Error(s) + +Time Elapsed 00:00:06.31 diff --git a/build_errors_clean.txt b/build_errors_clean.txt new file mode 100644 index 00000000..3fbe96aa --- /dev/null +++ b/build_errors_clean.txt @@ -0,0 +1,3 @@ + +build_errors.txt:327: 323 Error(s) + diff --git a/clean_docs.ps1 b/clean_docs.ps1 new file mode 100644 index 00000000..e69de29b diff --git a/cs_errors.txt b/cs_errors.txt new file mode 100644 index 00000000..7b93b6c9 --- /dev/null +++ b/cs_errors.txt @@ -0,0 +1,13964 @@ + +build_results.log:36071: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.CreateTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36078: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(21,22): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36083: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(23,28): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36090: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(29,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_ValidRequest_Returns201()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36096: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(62,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_DuplicateId_Returns409()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36103: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(77,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36110: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(91,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_WithImplementationTasks_Returns201()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36119: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.DeleteTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36125: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(17,23): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.Delete_ExistingItem_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36128: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(40,23): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.Delete_NonExistentItem_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36140: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible type  +or member 'GetTodoTests.GetTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36146: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly visible type  +or member 'GetTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36152: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly visible type  +or member 'GetTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36158: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly visible type  +or member 'GetTodoTests.Get_ValidId_Returns200WithItem()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36164: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(51,23): error CS1591: Missing XML comment for publicly visible type  +or member 'GetTodoTests.Get_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36223: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.QueryTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36226: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(17,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_NoFilters_Returns200WithValidStructure()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36230: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(31,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ResponseIsJson()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36234: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(40,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByPriority_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36239: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(55,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByDoneStatus_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36243: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(69,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByKeyword_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36244: 8:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.RepoEndpointTests(RepoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:36245: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(81,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_BySection_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36246: 8:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(20,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.List_RootPath_Returns200WithEntries()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:36247: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(95,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ById_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36248: 8:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(30,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.List_WithPath_Returns200()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:36264: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(114,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_NonMatchingKeyword_ReturnsEmptyList()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36265: 8:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(42,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.ReadFile_MissingPath_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:36271: 8:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(51,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.ReadFile_ExistingFile_Returns200()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:36272: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.RequirementsTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36274: 8:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(60,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.ReadFile_NonExistentFile_Returns200Or400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:36280: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36283: 8:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(71,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.WriteFile_MissingPath_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:36287: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36298: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.Requirements_RegisteredItem_ReturnsResult()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36305: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.Requirements_NonExistentItem_Returns422()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36310: 8:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(79,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.WriteFile_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:36315: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.UpdateTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36316: 8:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(86,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.WriteFile_ValidPath_Returns200Or400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:36318: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36319: 8:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointCollection' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:36321: 8:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:36322: 8:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:36326: 8:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.RepoRoute' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:36327: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36330: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ChangeTitle_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36331: 8:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:36332: 8:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.RepoEndpointFixture()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:36339: 8:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:36340: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(50,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ToggleDone_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36353: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(66,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ChangePriority_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36361: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(82,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36365: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(93,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36370: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(18,12): error CS1591: Missing XML comment for publicly visible type  +or member 'TodoErrorTests.TodoErrorTests(TodoEndpointFixture, ITestOutputHelper)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36377: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(27,23): error CS1591: Missing XML comment for publicly visible type  +or member 'TodoErrorTests.Get_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36383: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(36,23): error CS1591: Missing XML comment for publicly visible type  +or member 'TodoErrorTests.Update_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36392: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(46,23): error CS1591: Missing XML comment for publicly visible type  +or member 'TodoErrorTests.Delete_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36398: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(57,23): error CS1591: Missing XML comment for publicly visible type  +or member 'TodoErrorTests.Create_Duplicate_Returns409()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36404: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(84,23): error CS1591: Missing XML comment for publicly visible type  +or member 'TodoErrorTests.Create_EmptyBody_ReturnsBadRequest()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36412: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(97,23): error CS1591: Missing XML comment for publicly visible type  +or member 'TodoErrorTests.Update_NullBody_Returns400OrUnsupportedMedia()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36426: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(114,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Patch_NotSupported_Returns405()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36432: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(128,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Query_InvalidPriority_Returns200EmptyOrAll()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36443: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(140,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Query_MultipleFilters_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36453: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(6,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Id' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36460: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(7,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Title' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36471: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(8,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Section' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36479: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(9,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Priority' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36487: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(10,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Done' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36496: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(11,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Estimate' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36504: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(12,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Note' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36525: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(13,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Description' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36533: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(14,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.TechnicalDetails' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36537: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(15,32): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.ImplementationTasks' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36555: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(16,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.CompletedDate' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36568: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(17,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.DoneSummary' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36574: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(18,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Remaining' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36582: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(19,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.PriorityNote' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36587: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(20,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Reference' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36591: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(21,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.DependsOn' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36595: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(22,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.FunctionalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36604: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(23,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.TechnicalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36619: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(29,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatTask.Task' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36624: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(30,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatTask.Done' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36627: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(36,31): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoQueryResult.Items' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36631: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(37,16): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoQueryResult.TotalCount' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36636: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(43,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Success' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36640: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(44,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36644: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(45,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Item' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36648: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(51,17): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.Success' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36655: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(52,26): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.FunctionalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36660: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(53,26): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.TechnicalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36668: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(54,20): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36672: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(55,20): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.CopilotResponse' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36681: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(61,20): error CS1591: Missing XML comment for publicly visible type or  +member 'ErrorResponse.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36718: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\SequenceTests\TodoLifecycleSequenceTests.cs(18,12): error CS1591: Missing XML comment for  +publicly visible type or member 'TodoLifecycleSequenceTests.TodoLifecycleSequenceTests(TodoEndpointFixture, ITestOutputHelper)'  +[E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36731: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\SequenceTests\TodoLifecycleSequenceTests.cs(25,23): error CS1591: Missing XML comment for  +publicly visible type or member 'TodoLifecycleSequenceTests.FullLifecycle_CreateThroughDelete()'  +[E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36734: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\TodoEndpointFixture.cs(20,12): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoEndpointFixture.TodoEndpointFixture()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:36746: 9:6>E:\github\McpServer\tests\McpServer.Todo.Validation\TodoEndpointFixture.cs(33,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:37882: 7:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.GitHubEndpointTests(GitHubEndpointFixture)' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:37889: 7:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(20,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListIssues_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:37893: 7:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(30,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListIssues_WithState_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:37897: 7:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(39,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.GetIssue_ExistingNumber_Returns200Or404()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:37903: 7:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(50,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CreateIssue_MissingTitle_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:37913: 7:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.UpdateIssue_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:37919: 7:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(69,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CommentOnIssue_MissingBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:37920: 7:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(79,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListLabels_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:37921: 7:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(90,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListPulls_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:37925: 7:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(100,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListPulls_WithState_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:37927: 7:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(109,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CommentOnPull_MissingBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:37929: 7:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(119,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CloseIssue_NonExistent_ReturnsBadRequestOr200()'  +[E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:37933: 7:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(130,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ReopenIssue_NonExistent_ReturnsBadRequestOr200()'  +[E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:37937: 7:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(140,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncFromGitHub_Returns200Or400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:37942: 7:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(150,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncToGitHub_Returns200Or400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:37946: 7:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(160,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncSingleIssue_Returns200Or400Or404()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:37950: 7:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type or  +member 'GitHubEndpointCollection' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:37954: 7:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type or  +member 'GitHubEndpointFixture' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:37965: 7:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:37981: 7:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.GhRoute' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:37988: 7:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:37995: 7:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.GitHubEndpointFixture()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:38007: 7:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:41587: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(10,21): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:41602: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:41625: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialog_ToExistingEntry_Returns200WithCount()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:41636: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(70,23): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialog_MultipleAppends_AccumulatesCount()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:41649: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(115,23): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialog_NonExistentSession_Returns404()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:41662: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(10,21): error CS1591: Missing XML comment for publicly  +visible type or member 'QuerySessionLogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:41671: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'QuerySessionLogTests.QuerySessionLogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:41686: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'QuerySessionLogTests.Query_NoFilters_Returns200WithResults()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:41700: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(30,23): error CS1591: Missing XML comment for publicly  +visible type or member 'QuerySessionLogTests.Query_FilterByAgent_Returns200Filtered()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:41714: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(57,23): error CS1591: Missing XML comment for publicly  +visible type or member 'QuerySessionLogTests.Query_FilterByModel_Returns200Filtered()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:41732: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(82,23): error CS1591: Missing XML comment for publicly  +visible type or member 'QuerySessionLogTests.Query_FilterByDateRange_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:41742: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(95,23): error CS1591: Missing XML comment for publicly  +visible type or member 'QuerySessionLogTests.Query_WithPagination_Returns200()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:41755: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(107,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_NonMatchingAgent_ReturnsEmptyResults()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:41764: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(119,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByText_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:41778: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:41787: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.SubmitSessionLogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:41793: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_MinimalSessionLog_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:41811: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(44,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_FullSessionLogWithEntries_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:41822: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(94,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_UpsertSameSession_Returns201WithUpdatedData()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:41856: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(135,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_WithProcessingDialog_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:41862: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(11,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:41871: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(16,12): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.SessionLogErrorTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:41885: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(19,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.Submit_MissingSourceType_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:41897: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(37,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.Submit_MissingSessionId_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:41911: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(55,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.Submit_EmptySourceType_Returns400()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:41928: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(70,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.Submit_EmptySessionId_Returns400()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:41946: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(85,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.AppendDialog_EmptyItemsList_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:41959: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(94,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.Submit_InvalidJsonBody_Returns400()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:41966: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(5,21): error CS1591: Missing XML comment for publicly visible  +type or member 'SubmitResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:41974: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(7,41): error CS1591: Missing XML comment for publicly visible  +type or member 'SubmitResult.Id' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:41989: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(8,53): error CS1591: Missing XML comment for publicly visible  +type or member 'SubmitResult.SourceType' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:42004: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(9,52): error CS1591: Missing XML comment for publicly visible  +type or member 'SubmitResult.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:42014: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(12,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ErrorResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:42071: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(14,48): error CS1591: Missing XML comment for publicly visible  +type or member 'ErrorResult.Error' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:42242: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(17,21): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:42345: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(19,49): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryResult.TotalCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:42534: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(20,44): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryResult.Limit' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:42605: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(21,45): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryResult.Offset' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:42627: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(22,62): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryResult.Items' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:42635: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(25,21): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:42647: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(27,41): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Id' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:42667: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(28,53): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.SourceType' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:42693: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(29,52): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:42704: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(30,48): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Title' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:42721: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(31,48): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Model' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:42734: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(32,49): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:42746: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(33,49): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.EntryCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:42777: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(34,50): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Started' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:42803: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(35,54): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.LastUpdated' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:42818: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(36,58): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Entries' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:42831: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(39,21): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:42841: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(41,52): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.RequestId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:42857: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(42,52): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.QueryText' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:42875: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(43,53): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.QueryTitle' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:42884: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(44,51): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.Response' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:42901: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(45,49): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:42912: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(46,53): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.Tags' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:42926: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(47,59): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.Actions' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:42945: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(48,72): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.ProcessingDialog' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:42957: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(51,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:42965: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(53,44): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto.Order' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:42984: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(54,54): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto.Description' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:43004: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(55,47): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto.Type' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:43018: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(56,49): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:43037: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(57,51): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto.FilePath' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:43058: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(60,21): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogItemDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:43074: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(62,52): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogItemDto.Timestamp' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:43092: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(63,47): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogItemDto.Role' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:43109: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(64,50): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogItemDto.Content' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:43123: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(65,51): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogItemDto.Category' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:43140: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(68,21): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogAppendResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:43155: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(70,48): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogAppendResult.Agent' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:43169: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(71,52): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogAppendResult.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:43184: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(72,52): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogAppendResult.RequestId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:43200: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(73,55): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogAppendResult.TotalDialogCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:43215: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:43232: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests.SessionLogLifecycleTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:43247: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests.FullLifecycle_Submit_Query_AppendDialog_Requery()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:43261: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:43281: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.SessionLogRoute' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:43298: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(13,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:43318: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(14,20): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.ApiKey' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:43325: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(16,12): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.SessionLogEndpointFixture()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:43342: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(30,17): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:43362: 10:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(34,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointCollection' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:55876: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(13,12): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BucketTests(ToolRegistryFixture)' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:55896: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.ListBuckets_Returns200WithValidStructure()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:55923: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(31,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.AddBucket_ValidRequest_Returns201()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:55938: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(52,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.AddBucket_Duplicate_Returns409()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:55952: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(73,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.RemoveBucket_Existing_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:55968: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(87,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.RemoveBucket_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:55988: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(96,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BrowseBucket_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:55999: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(103,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BrowseBucket_Existing_ReturnsResult()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:56012: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(126,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.InstallFromBucket_NonExistentBucket_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:56025: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(136,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.SyncBucket_NonExistentBucket_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:56038: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(144,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.SyncBucket_Existing_Returns200Or404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:56053: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(13,12): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.ToolCrudTests(ToolRegistryFixture)' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:56078: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.List_Returns200WithValidStructure()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:56093: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(29,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.List_ResponseIsJson()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:56108: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(38,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_WithKeyword_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:56126: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(47,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_NonMatchingKeyword_ReturnsEmpty()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:56145: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Create_ValidTool_Returns201()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:56166: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(92,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Create_DuplicateName_Returns409()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:56184: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(113,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Get_ExistingTool_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:56207: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(136,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Get_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:56223: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(143,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Update_ChangeName_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:56240: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(170,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Update_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:56257: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(178,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Delete_ExistingTool_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:56272: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(198,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Delete_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:56291: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(207,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_ByTag_FindsCreatedTool()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:56326: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(13,12): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.ToolRegistryErrorTests(ToolRegistryFixture)'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:56342: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(16,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Get_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:56367: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(23,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Update_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:56400: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(30,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Delete_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:56416: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(37,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.RemoveBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:56431: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(44,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.BrowseBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:56452: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(51,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.SyncBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:56463: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(58,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.InstallFromBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:56480: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(66,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Patch_NotSupported_Returns405()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:56491: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(77,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Get_InvalidIdFormat_Returns404Or400()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:56506: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(87,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Create_DuplicateName_Returns409()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:56522: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(111,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.AddBucket_Duplicate_Returns409()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:56543: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(130,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Search_WithWorkspace_Returns200()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:56561: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(138,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.List_WithWorkspace_Returns200()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:56578: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(3,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:56597: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(5,16): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Id' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:56607: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(6,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:56632: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(7,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Description' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:56647: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(8,25): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Tags' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:56664: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(9,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.ParameterSchema' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:56903: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(10,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.CommandTemplate' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:56924: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(11,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.WorkspacePath' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:56936: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(12,27): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.DateTimeCreated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:56947: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(13,27): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.DateTimeModified' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:56971: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(16,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:56990: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(18,26): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult.Tools' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57012: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(19,16): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult.TotalCount' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57024: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(22,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57038: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(24,17): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57051: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(25,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57079: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(26,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Tool' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57092: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(29,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57113: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(31,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Id' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57136: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(32,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57155: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(33,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Owner' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57174: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(34,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Repo' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57202: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(35,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Branch' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57217: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(36,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.ManifestPath' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57240: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(37,27): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.DateTimeCreated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57259: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(38,28): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.DateTimeLastSynced' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57270: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(41,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57285: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(43,28): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult.Buckets' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57313: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(44,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult.TotalCount' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57332: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(47,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57335: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(49,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57345: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(50,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57354: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(51,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Bucket' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57365: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(54,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57378: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(56,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57401: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(57,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Description' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57425: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(58,25): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Tags' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57450: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(59,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.ParameterSchema' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57465: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(60,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.CommandTemplate' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57482: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(61,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.ManifestFile' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57501: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(64,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57510: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(66,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57527: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(67,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57549: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(68,32): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Tools' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57560: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(71,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57575: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(73,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57592: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(74,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57601: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(75,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Updated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57618: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(76,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Added' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57635: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(77,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Unchanged' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57676: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(15,12): error CS1591: Missing XML comment  +for publicly visible type or member 'ToolLifecycleSequenceTests.ToolLifecycleSequenceTests(ToolRegistryFixture, ITestOutputHelper)'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57693: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(18,23): error CS1591: Missing XML comment  +for publicly visible type or member 'ToolLifecycleSequenceTests.FullToolLifecycle_CreateThroughDelete()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57706: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(109,23): error CS1591: Missing XML comment  +for publicly visible type or member 'ToolLifecycleSequenceTests.FullBucketLifecycle_AddThroughRemove()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57719: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(8,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57730: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(9,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.ToolRoute' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57754: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.BucketRoute' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57768: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.Client' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57783: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.ToolRegistryFixture()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57793: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(27,17): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.Dispose()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:57815: 12:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(31,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryCollection' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:68338: 22:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(9,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:68341: 22:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(14,12): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.ContextEndpointTests(ContextEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:68342: 22:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(19,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Sources_Returns200WithSourcesArray()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:68345: 22:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(31,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_EmptyQuery_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:68350: 22:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(42,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_WithQuery_Returns200WithResults()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:68351: 22:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(54,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_WithSourceTypeFilter_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:68352: 22:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(62,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_LimitClamped_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:68353: 22:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(72,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_EmptyQuery_Returns200WithPack()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:68356: 22:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(84,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_WithQueryId_Returns200WithSameQueryId()'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:68357: 22:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(95,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_WithQuery_ReturnsFilteredChunks()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:68358: 22:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(105,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.RebuildIndex_Returns200Or500()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:68359: 22:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type  +or member 'ContextEndpointCollection' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:68360: 22:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type  +or member 'ContextEndpointFixture' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:68361: 22:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible type  +or member 'ContextEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:68362: 22:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible type  +or member 'ContextEndpointFixture.ContextRoute' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:68363: 22:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible type  +or member 'ContextEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:68364: 22:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible type  +or member 'ContextEndpointFixture.ContextEndpointFixture()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:68365: 22:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible type  +or member 'ContextEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:110890: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.CreateTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110891: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(21,22): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110892: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(23,28): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110893: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(29,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_ValidRequest_Returns201()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110894: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(62,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_DuplicateId_Returns409()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110895: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(77,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110896: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(91,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_WithImplementationTasks_Returns201()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110897: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.DeleteTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110898: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(17,23): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.Delete_ExistingItem_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110899: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(40,23): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.Delete_NonExistentItem_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110900: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.GetTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110901: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110902: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110903: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.Get_ValidId_Returns200WithItem()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110904: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(51,23): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.Get_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110905: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.QueryTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110906: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(17,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_NoFilters_Returns200WithValidStructure()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110907: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(31,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ResponseIsJson()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110908: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(40,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByPriority_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110909: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(55,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByDoneStatus_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110910: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(69,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByKeyword_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110911: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(81,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_BySection_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110912: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(95,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ById_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110913: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(114,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_NonMatchingKeyword_ReturnsEmptyList()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110914: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.RequirementsTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110915: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110916: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110917: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.Requirements_RegisteredItem_ReturnsResult()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110918: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.Requirements_NonExistentItem_Returns422()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110919: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.UpdateTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110920: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110921: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110922: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ChangeTitle_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110923: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(50,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ToggleDone_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110924: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(66,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ChangePriority_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110925: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(82,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110926: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(93,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110927: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(18,12): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.TodoErrorTests(TodoEndpointFixture, ITestOutputHelper)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110928: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(27,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Get_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110929: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(36,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Update_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110930: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(46,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Delete_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110931: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(57,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Create_Duplicate_Returns409()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110932: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(84,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Create_EmptyBody_ReturnsBadRequest()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110933: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(97,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Update_NullBody_Returns400OrUnsupportedMedia()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110934: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(114,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Patch_NotSupported_Returns405()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110935: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(128,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Query_InvalidPriority_Returns200EmptyOrAll()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110936: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(140,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Query_MultipleFilters_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110937: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(6,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Id' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110938: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(7,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Title' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110939: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(8,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Section' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110940: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(9,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Priority' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110941: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(10,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Done' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110942: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(11,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Estimate' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110943: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(12,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Note' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110944: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(13,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Description' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110945: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(14,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.TechnicalDetails' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110946: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(15,32): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.ImplementationTasks' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110947: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(16,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.CompletedDate' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110948: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(17,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.DoneSummary' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110949: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(18,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Remaining' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110950: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(19,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.PriorityNote' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110951: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(20,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Reference' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110952: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(21,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.DependsOn' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110953: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(22,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.FunctionalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110954: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(23,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.TechnicalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110955: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(29,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatTask.Task' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110956: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(30,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatTask.Done' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110957: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(36,31): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoQueryResult.Items' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110958: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(37,16): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoQueryResult.TotalCount' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110959: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(43,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Success' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110960: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(44,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110961: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(45,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Item' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110962: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(51,17): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.Success' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110963: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(52,26): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.FunctionalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110964: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(53,26): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.TechnicalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110965: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(54,20): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110966: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(55,20): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.CopilotResponse' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110967: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(61,20): error CS1591: Missing XML comment for publicly visible type or  +member 'ErrorResponse.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110968: E:\github\McpServer\tests\McpServer.Todo.Validation\SequenceTests\TodoLifecycleSequenceTests.cs(18,12): error CS1591: Missing XML comment for  +publicly visible type or member 'TodoLifecycleSequenceTests.TodoLifecycleSequenceTests(TodoEndpointFixture, ITestOutputHelper)'  +[E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110969: E:\github\McpServer\tests\McpServer.Todo.Validation\SequenceTests\TodoLifecycleSequenceTests.cs(25,23): error CS1591: Missing XML comment for  +publicly visible type or member 'TodoLifecycleSequenceTests.FullLifecycle_CreateThroughDelete()'  +[E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110970: E:\github\McpServer\tests\McpServer.Todo.Validation\TodoEndpointFixture.cs(20,12): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoEndpointFixture.TodoEndpointFixture()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110971: E:\github\McpServer\tests\McpServer.Todo.Validation\TodoEndpointFixture.cs(33,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:110976: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.RepoEndpointTests(RepoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:110977: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(20,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.List_RootPath_Returns200WithEntries()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:110978: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(30,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.List_WithPath_Returns200()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:110979: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(42,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.ReadFile_MissingPath_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:110980: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(51,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.ReadFile_ExistingFile_Returns200()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:110981: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.ReadFile_NonExistentFile_Returns200Or400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:110982: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(71,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.WriteFile_MissingPath_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:110983: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(79,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.WriteFile_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:110984: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(86,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.WriteFile_ValidPath_Returns200Or400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:110985: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointCollection' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:110986: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:110987: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:110988: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.RepoRoute' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:110989: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:110990: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.RepoEndpointFixture()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:110991: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:110996: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.GitHubEndpointTests(GitHubEndpointFixture)' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:110997: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(20,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListIssues_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:110998: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(30,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListIssues_WithState_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:110999: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(39,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.GetIssue_ExistingNumber_Returns200Or404()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:111000: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(50,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CreateIssue_MissingTitle_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:111001: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.UpdateIssue_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:111002: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(69,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CommentOnIssue_MissingBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:111003: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(79,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListLabels_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:111004: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(90,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListPulls_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:111005: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(100,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListPulls_WithState_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:111006: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(109,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CommentOnPull_MissingBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:111007: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(119,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CloseIssue_NonExistent_ReturnsBadRequestOr200()'  +[E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:111008: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(130,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ReopenIssue_NonExistent_ReturnsBadRequestOr200()'  +[E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:111009: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(140,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncFromGitHub_Returns200Or400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:111010: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(150,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncToGitHub_Returns200Or400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:111011: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(160,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncSingleIssue_Returns200Or400Or404()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:111012: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointCollection' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:111013: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:111014: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:111015: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.GhRoute' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:111016: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:111017: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.GitHubEndpointFixture()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:111018: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:111023: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(10,21): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111024: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111025: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialog_ToExistingEntry_Returns200WithCount()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111026: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(70,23): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialog_MultipleAppends_AccumulatesCount()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111027: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(115,23): error CS1591: Missing XML comment for  +publicly visible type or member 'AppendDialogTests.AppendDialog_NonExistentSession_Returns404()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111028: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111029: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.QuerySessionLogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111030: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_NoFilters_Returns200WithResults()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111031: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(30,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByAgent_Returns200Filtered()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111032: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(57,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByModel_Returns200Filtered()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111033: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(82,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByDateRange_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111034: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(95,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_WithPagination_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111035: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(107,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_NonMatchingAgent_ReturnsEmptyResults()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111036: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(119,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByText_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111037: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111038: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.SubmitSessionLogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111039: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_MinimalSessionLog_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111040: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(44,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_FullSessionLogWithEntries_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111041: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(94,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_UpsertSameSession_Returns201WithUpdatedData()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111042: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(135,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_WithProcessingDialog_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111043: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(11,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111044: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(16,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.SessionLogErrorTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111045: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(19,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_MissingSourceType_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111046: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(37,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_MissingSessionId_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111047: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(55,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_EmptySourceType_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111048: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(70,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_EmptySessionId_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111049: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(85,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.AppendDialog_EmptyItemsList_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111050: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(94,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_InvalidJsonBody_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111051: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(5,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SubmitResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111052: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(7,41): error CS1591: Missing XML comment for publicly  +visible type or member 'SubmitResult.Id' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111053: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(8,53): error CS1591: Missing XML comment for publicly  +visible type or member 'SubmitResult.SourceType' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111054: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(9,52): error CS1591: Missing XML comment for publicly  +visible type or member 'SubmitResult.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111055: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(12,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ErrorResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111056: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(14,48): error CS1591: Missing XML comment for publicly  +visible type or member 'ErrorResult.Error' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111057: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(17,21): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111058: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(19,49): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult.TotalCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111059: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(20,44): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult.Limit' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111060: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(21,45): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult.Offset' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111061: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(22,62): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult.Items' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111062: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(25,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111063: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(27,41): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Id' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111064: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(28,53): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.SourceType' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111065: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(29,52): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111066: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(30,48): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Title' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111067: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(31,48): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Model' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111068: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(32,49): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111069: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(33,49): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.EntryCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111070: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(34,50): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Started' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111071: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(35,54): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.LastUpdated' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111072: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(36,58): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Entries' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111073: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(39,21): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111074: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(41,52): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.RequestId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111075: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(42,52): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.QueryText' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111076: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(43,53): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.QueryTitle' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111077: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(44,51): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.Response' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111078: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(45,49): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111079: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(46,53): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.Tags' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111080: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(47,59): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.Actions' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111081: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(48,72): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.ProcessingDialog' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111082: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(51,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111083: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(53,44): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.Order' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111084: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(54,54): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.Description' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111085: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(55,47): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.Type' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111086: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(56,49): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111087: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(57,51): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.FilePath' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111088: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(60,21): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111089: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(62,52): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto.Timestamp' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111090: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(63,47): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto.Role' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111091: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(64,50): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto.Content' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111092: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(65,51): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto.Category' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111093: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(68,21): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111094: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(70,48): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult.Agent' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111095: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(71,52): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111096: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(72,52): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult.RequestId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111097: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(73,55): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult.TotalDialogCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111098: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111099: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests.SessionLogLifecycleTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111100: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests.FullLifecycle_Submit_Query_AppendDialog_Requery()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111101: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111102: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.SessionLogRoute' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111103: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(13,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111104: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(14,20): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.ApiKey' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111105: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(16,12): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.SessionLogEndpointFixture()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111106: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(30,17): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111107: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(34,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointCollection' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:111112: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(13,12): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BucketTests(ToolRegistryFixture)' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111113: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.ListBuckets_Returns200WithValidStructure()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111114: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(31,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.AddBucket_ValidRequest_Returns201()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111115: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(52,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.AddBucket_Duplicate_Returns409()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111116: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(73,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.RemoveBucket_Existing_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111117: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(87,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.RemoveBucket_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111118: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(96,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BrowseBucket_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111119: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(103,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BrowseBucket_Existing_ReturnsResult()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111120: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(126,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.InstallFromBucket_NonExistentBucket_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111121: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(136,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.SyncBucket_NonExistentBucket_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111122: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(144,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.SyncBucket_Existing_Returns200Or404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111123: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(13,12): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.ToolCrudTests(ToolRegistryFixture)' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111124: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.List_Returns200WithValidStructure()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111125: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(29,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.List_ResponseIsJson()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111126: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(38,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_WithKeyword_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111127: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(47,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_NonMatchingKeyword_ReturnsEmpty()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111128: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Create_ValidTool_Returns201()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111129: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(92,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Create_DuplicateName_Returns409()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111130: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(113,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Get_ExistingTool_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111131: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(136,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Get_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111132: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(143,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Update_ChangeName_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111133: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(170,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Update_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111134: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(178,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Delete_ExistingTool_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111135: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(198,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Delete_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111136: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(207,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_ByTag_FindsCreatedTool()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111137: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(13,12): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.ToolRegistryErrorTests(ToolRegistryFixture)'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111138: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(16,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Get_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111139: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(23,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Update_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111140: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(30,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Delete_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111141: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(37,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.RemoveBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111142: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(44,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.BrowseBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111143: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(51,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.SyncBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111144: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(58,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.InstallFromBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111145: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(66,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Patch_NotSupported_Returns405()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111146: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(77,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Get_InvalidIdFormat_Returns404Or400()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111147: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(87,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Create_DuplicateName_Returns409()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111148: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(111,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.AddBucket_Duplicate_Returns409()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111149: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(130,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Search_WithWorkspace_Returns200()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111150: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(138,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.List_WithWorkspace_Returns200()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111151: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(3,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111152: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(5,16): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Id' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111153: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(6,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111154: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(7,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Description' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111155: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(8,25): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Tags' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111156: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(9,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.ParameterSchema' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111157: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(10,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.CommandTemplate' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111158: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(11,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.WorkspacePath' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111159: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(12,27): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.DateTimeCreated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111160: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(13,27): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.DateTimeModified' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111161: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(16,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111162: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(18,26): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult.Tools' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111163: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(19,16): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult.TotalCount' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111164: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(22,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111165: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(24,17): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111166: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(25,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111167: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(26,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Tool' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111168: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(29,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111169: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(31,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Id' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111170: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(32,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111171: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(33,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Owner' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111172: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(34,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Repo' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111173: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(35,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Branch' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111174: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(36,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.ManifestPath' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111175: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(37,27): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.DateTimeCreated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111176: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(38,28): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.DateTimeLastSynced' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111177: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(41,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111178: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(43,28): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult.Buckets' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111179: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(44,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult.TotalCount' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111180: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(47,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111181: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(49,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111182: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(50,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111183: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(51,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Bucket' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111184: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(54,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111185: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(56,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111186: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(57,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Description' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111187: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(58,25): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Tags' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111188: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(59,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.ParameterSchema' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111189: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(60,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.CommandTemplate' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111190: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(61,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.ManifestFile' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111191: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(64,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111192: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(66,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111193: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(67,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111194: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(68,32): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Tools' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111195: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(71,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111196: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(73,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111197: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(74,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111198: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(75,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Updated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111199: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(76,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Added' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111200: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(77,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Unchanged' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111201: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(15,12): error CS1591: Missing XML comment  +for publicly visible type or member 'ToolLifecycleSequenceTests.ToolLifecycleSequenceTests(ToolRegistryFixture, ITestOutputHelper)'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111202: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(18,23): error CS1591: Missing XML comment  +for publicly visible type or member 'ToolLifecycleSequenceTests.FullToolLifecycle_CreateThroughDelete()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111203: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(109,23): error CS1591: Missing XML  +comment for publicly visible type or member 'ToolLifecycleSequenceTests.FullBucketLifecycle_AddThroughRemove()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111204: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(8,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111205: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(9,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.ToolRoute' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111206: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.BucketRoute' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111207: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.Client' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111208: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.ToolRegistryFixture()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111209: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(27,17): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.Dispose()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111210: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(31,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryCollection' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:111215: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(9,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:111216: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(14,12): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.ContextEndpointTests(ContextEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:111217: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(19,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Sources_Returns200WithSourcesArray()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:111218: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(31,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_EmptyQuery_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:111219: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(42,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_WithQuery_Returns200WithResults()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:111220: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(54,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_WithSourceTypeFilter_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:111221: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(62,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_LimitClamped_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:111222: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(72,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_EmptyQuery_Returns200WithPack()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:111223: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(84,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_WithQueryId_Returns200WithSameQueryId()'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:111224: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(95,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_WithQuery_ReturnsFilteredChunks()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:111225: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(105,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ContextEndpointTests.RebuildIndex_Returns200Or500()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:111226: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointCollection' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:111227: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:111228: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:111229: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.ContextRoute' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:111230: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:111231: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.ContextEndpointFixture()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:111232: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:169170: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.RepoEndpointTests(RepoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:169186: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(20,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.List_RootPath_Returns200WithEntries()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:169201: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(30,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.List_WithPath_Returns200()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:169220: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(42,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.ReadFile_MissingPath_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:169239: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(51,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.ReadFile_ExistingFile_Returns200()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:169253: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(60,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.ReadFile_NonExistentFile_Returns200Or400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:169287: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(71,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.WriteFile_MissingPath_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:169314: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(79,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.WriteFile_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:169340: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(86,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.WriteFile_ValidPath_Returns200Or400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:169362: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointCollection' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:169378: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:169389: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:169405: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.RepoRoute' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:169415: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:169439: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.RepoEndpointFixture()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:169457: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:171318: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.GitHubEndpointTests(GitHubEndpointFixture)' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:171328: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(20,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListIssues_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:171341: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(30,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListIssues_WithState_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:171346: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(39,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.GetIssue_ExistingNumber_Returns200Or404()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:171356: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(50,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CreateIssue_MissingTitle_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:171361: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.UpdateIssue_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:171367: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(69,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CommentOnIssue_MissingBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:171376: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(79,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListLabels_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:171384: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(90,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListPulls_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:171394: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(100,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListPulls_WithState_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:171400: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(109,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CommentOnPull_MissingBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:171409: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(119,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CloseIssue_NonExistent_ReturnsBadRequestOr200()'  +[E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:171418: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(130,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ReopenIssue_NonExistent_ReturnsBadRequestOr200()'  +[E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:171436: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(140,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncFromGitHub_Returns200Or400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:171446: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(150,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncToGitHub_Returns200Or400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:171458: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(160,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncSingleIssue_Returns200Or400Or404()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:171466: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointCollection' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:171475: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:171510: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:171516: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.GhRoute' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:171519: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:171526: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.GitHubEndpointFixture()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:171539: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:173342: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.CreateTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:173354: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(21,22): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:173364: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(23,28): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:173379: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(29,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_ValidRequest_Returns201()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:173391: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(62,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_DuplicateId_Returns409()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:173404: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(77,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:173424: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(91,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_WithImplementationTasks_Returns201()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:173442: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.DeleteTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:173457: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(17,23): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.Delete_ExistingItem_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:173487: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(40,23): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.Delete_NonExistentItem_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:173495: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible type  +or member 'GetTodoTests.GetTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:173519: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly visible type  +or member 'GetTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:173535: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly visible type  +or member 'GetTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:173555: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly visible type  +or member 'GetTodoTests.Get_ValidId_Returns200WithItem()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:173566: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(51,23): error CS1591: Missing XML comment for publicly visible type  +or member 'GetTodoTests.Get_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:173576: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.QueryTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:173589: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(17,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_NoFilters_Returns200WithValidStructure()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:173607: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(31,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ResponseIsJson()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:173631: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(40,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByPriority_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:173658: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(55,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByDoneStatus_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:173673: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(69,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByKeyword_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:173691: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(81,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_BySection_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:173703: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(95,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ById_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:173710: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(114,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_NonMatchingKeyword_ReturnsEmptyList()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:173717: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.RequirementsTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:173727: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:173738: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:173751: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.Requirements_RegisteredItem_ReturnsResult()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:173772: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.Requirements_NonExistentItem_Returns422()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:173790: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.UpdateTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:173803: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:173816: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:173843: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ChangeTitle_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:173851: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(50,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ToggleDone_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:173863: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(66,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ChangePriority_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:173879: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(82,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:173888: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(93,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:173895: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(18,12): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.TodoErrorTests(TodoEndpointFixture, ITestOutputHelper)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:173904: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(27,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Get_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:173917: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(36,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Update_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:173928: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(46,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Delete_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:173937: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(57,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Create_Duplicate_Returns409()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:173944: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(84,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Create_EmptyBody_ReturnsBadRequest()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:173955: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(97,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Update_NullBody_Returns400OrUnsupportedMedia()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:173971: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(114,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Patch_NotSupported_Returns405()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:173987: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(128,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Query_InvalidPriority_Returns200EmptyOrAll()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:174005: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(140,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Query_MultipleFilters_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:174019: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(6,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Id' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:174035: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(7,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Title' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:174048: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(13,12): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BucketTests(ToolRegistryFixture)' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174049: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(8,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Section' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:174058: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(9,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Priority' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:174059: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.ListBuckets_Returns200WithValidStructure()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174068: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(10,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Done' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:174079: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(11,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Estimate' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:174080: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(31,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.AddBucket_ValidRequest_Returns201()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174087: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(52,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.AddBucket_Duplicate_Returns409()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174090: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(12,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Note' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:174097: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(73,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.RemoveBucket_Existing_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174106: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(13,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Description' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:174113: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(87,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.RemoveBucket_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174132: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(96,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BrowseBucket_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174137: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(14,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.TechnicalDetails' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:174141: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(103,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BrowseBucket_Existing_ReturnsResult()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174151: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(126,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.InstallFromBucket_NonExistentBucket_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174163: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(15,32): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.ImplementationTasks' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:174166: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(136,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.SyncBucket_NonExistentBucket_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174398: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(144,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.SyncBucket_Existing_Returns200Or404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174412: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(16,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.CompletedDate' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:174426: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(13,12): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.ToolCrudTests(ToolRegistryFixture)' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174427: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(17,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.DoneSummary' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:174444: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(18,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Remaining' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:174446: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.List_Returns200WithValidStructure()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174453: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(29,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.List_ResponseIsJson()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174454: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(19,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.PriorityNote' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:174470: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(20,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Reference' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:174471: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(38,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_WithKeyword_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174483: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(47,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_NonMatchingKeyword_ReturnsEmpty()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174485: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(21,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.DependsOn' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:174492: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Create_ValidTool_Returns201()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174499: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(22,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.FunctionalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:174504: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(92,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Create_DuplicateName_Returns409()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174516: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(23,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.TechnicalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:174527: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(29,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatTask.Task' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:174528: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(113,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Get_ExistingTool_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174539: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(30,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatTask.Done' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:174545: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(136,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Get_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174550: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(36,31): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoQueryResult.Items' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:174556: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(143,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Update_ChangeName_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174559: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(37,16): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoQueryResult.TotalCount' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:174570: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(43,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Success' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:174571: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(170,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Update_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174583: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(44,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:174590: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(178,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Delete_ExistingTool_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174595: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(45,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Item' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:174602: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(198,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Delete_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174606: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(51,17): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.Success' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:174620: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(52,26): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.FunctionalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:174623: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(207,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_ByTag_FindsCreatedTool()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174639: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(53,26): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.TechnicalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:174644: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(13,12): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.ToolRegistryErrorTests(ToolRegistryFixture)'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174657: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(16,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Get_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174658: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(54,20): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:174665: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(23,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Update_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174671: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(55,20): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.CopilotResponse' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:174672: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(30,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Delete_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174678: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(61,20): error CS1591: Missing XML comment for publicly visible type or  +member 'ErrorResponse.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:174684: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(37,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.RemoveBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174698: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\SequenceTests\TodoLifecycleSequenceTests.cs(18,12): error CS1591: Missing XML comment for  +publicly visible type or member 'TodoLifecycleSequenceTests.TodoLifecycleSequenceTests(TodoEndpointFixture, ITestOutputHelper)'  +[E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:174699: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(44,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.BrowseBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174702: 5:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(9,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:174705: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\SequenceTests\TodoLifecycleSequenceTests.cs(25,23): error CS1591: Missing XML comment for  +publicly visible type or member 'TodoLifecycleSequenceTests.FullLifecycle_CreateThroughDelete()'  +[E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:174711: 5:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(14,12): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.ContextEndpointTests(ContextEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:174718: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(51,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.SyncBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174721: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\TodoEndpointFixture.cs(20,12): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoEndpointFixture.TodoEndpointFixture()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:174727: 5:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(19,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Sources_Returns200WithSourcesArray()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:174728: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\TodoEndpointFixture.cs(33,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:174729: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(58,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.InstallFromBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174734: 5:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(31,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_EmptyQuery_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:174740: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(66,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Patch_NotSupported_Returns405()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174747: 5:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(42,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_WithQuery_Returns200WithResults()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:174752: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(77,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Get_InvalidIdFormat_Returns404Or400()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174757: 5:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(54,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_WithSourceTypeFilter_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:174761: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(87,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Create_DuplicateName_Returns409()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174770: 5:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(62,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_LimitClamped_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:174773: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(111,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.AddBucket_Duplicate_Returns409()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174779: 5:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(72,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_EmptyQuery_Returns200WithPack()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:174783: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(130,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Search_WithWorkspace_Returns200()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174792: 5:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(84,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_WithQueryId_Returns200WithSameQueryId()'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:174801: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(138,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.List_WithWorkspace_Returns200()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174811: 5:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(95,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_WithQuery_ReturnsFilteredChunks()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:174815: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(3,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174823: 5:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(105,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.RebuildIndex_Returns200Or500()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:174837: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(5,16): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Id' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174841: 5:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type  +or member 'ContextEndpointCollection' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:174850: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(6,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174853: 5:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type  +or member 'ContextEndpointFixture' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:174856: 5:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:174865: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(7,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Description' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174870: 5:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.ContextRoute' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:174877: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(8,25): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Tags' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174888: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(9,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.ParameterSchema' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174897: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(10,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.CommandTemplate' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174898: 5:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:174908: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(11,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.WorkspacePath' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174921: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(12,27): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.DateTimeCreated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174928: 5:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.ContextEndpointFixture()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:174931: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(13,27): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.DateTimeModified' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174937: 5:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:174945: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(16,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174967: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(18,26): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult.Tools' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174979: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(19,16): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult.TotalCount' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:174991: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(22,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:175003: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(24,17): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:175020: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(25,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:175029: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(26,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Tool' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:175044: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(29,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:175057: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(31,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Id' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:175068: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(32,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:175086: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(33,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Owner' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:175103: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(34,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Repo' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:175124: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(35,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Branch' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:175137: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(36,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.ManifestPath' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:175151: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(37,27): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.DateTimeCreated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:175165: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(38,28): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.DateTimeLastSynced' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:175173: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(41,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:175188: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(43,28): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult.Buckets' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:175205: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(44,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult.TotalCount' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:175214: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(47,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:175228: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(49,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:175242: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(50,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:175253: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(51,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Bucket' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:175267: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(54,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:175282: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(56,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:175290: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(57,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Description' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:175308: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(58,25): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Tags' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:175329: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(59,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.ParameterSchema' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:175342: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(60,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.CommandTemplate' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:175350: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(61,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.ManifestFile' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:175360: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(64,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:175371: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(66,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:175382: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(67,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:175393: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(68,32): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Tools' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:175407: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(71,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:175414: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(73,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:175433: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(74,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:175442: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(75,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Updated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:175452: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(76,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Added' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:175462: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(77,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Unchanged' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:175478: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(15,12): error CS1591: Missing XML comment  +for publicly visible type or member 'ToolLifecycleSequenceTests.ToolLifecycleSequenceTests(ToolRegistryFixture, ITestOutputHelper)'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:175493: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(18,23): error CS1591: Missing XML comment  +for publicly visible type or member 'ToolLifecycleSequenceTests.FullToolLifecycle_CreateThroughDelete()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:175506: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(109,23): error CS1591: Missing XML comment  +for publicly visible type or member 'ToolLifecycleSequenceTests.FullBucketLifecycle_AddThroughRemove()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:175526: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(8,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:175535: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(9,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.ToolRoute' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:175558: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.BucketRoute' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:175567: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.Client' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:175584: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.ToolRegistryFixture()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:175593: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(27,17): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.Dispose()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:175601: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(31,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryCollection' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:175888: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(10,21): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:175899: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:175911: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialog_ToExistingEntry_Returns200WithCount()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:175922: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(70,23): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialog_MultipleAppends_AccumulatesCount()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:175930: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(115,23): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialog_NonExistentSession_Returns404()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:175941: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:175954: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.QuerySessionLogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:175965: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_NoFilters_Returns200WithResults()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:175972: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(30,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByAgent_Returns200Filtered()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:175979: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(57,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByModel_Returns200Filtered()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:175988: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(82,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByDateRange_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:175995: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(95,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_WithPagination_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176004: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(107,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_NonMatchingAgent_ReturnsEmptyResults()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176018: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(119,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByText_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176023: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176033: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.SubmitSessionLogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176044: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_MinimalSessionLog_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176050: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(44,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_FullSessionLogWithEntries_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176063: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(94,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_UpsertSameSession_Returns201WithUpdatedData()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176072: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(135,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_WithProcessingDialog_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176082: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(11,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176094: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(16,12): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.SessionLogErrorTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176104: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(19,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.Submit_MissingSourceType_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176114: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(37,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.Submit_MissingSessionId_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176126: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(55,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.Submit_EmptySourceType_Returns400()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176136: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(70,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.Submit_EmptySessionId_Returns400()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176146: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(85,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.AppendDialog_EmptyItemsList_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176155: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(94,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.Submit_InvalidJsonBody_Returns400()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176165: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(5,21): error CS1591: Missing XML comment for publicly visible  +type or member 'SubmitResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176174: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(7,41): error CS1591: Missing XML comment for publicly visible  +type or member 'SubmitResult.Id' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176182: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(8,53): error CS1591: Missing XML comment for publicly visible  +type or member 'SubmitResult.SourceType' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176204: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(9,52): error CS1591: Missing XML comment for publicly visible  +type or member 'SubmitResult.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176210: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(12,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ErrorResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176222: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(14,48): error CS1591: Missing XML comment for publicly visible  +type or member 'ErrorResult.Error' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176230: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(17,21): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176240: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(19,49): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryResult.TotalCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176253: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(20,44): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryResult.Limit' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176264: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(21,45): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryResult.Offset' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176275: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(22,62): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryResult.Items' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176288: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(25,21): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176296: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(27,41): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Id' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176309: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(28,53): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.SourceType' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176320: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(29,52): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176333: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(30,48): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Title' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176343: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(31,48): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Model' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176351: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(32,49): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176357: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(33,49): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.EntryCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176367: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(34,50): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Started' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176377: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(35,54): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.LastUpdated' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176386: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(36,58): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Entries' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176395: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(39,21): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176405: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(41,52): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.RequestId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176411: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(42,52): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.QueryText' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176427: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(43,53): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.QueryTitle' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176465: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(44,51): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.Response' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176478: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(45,49): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176487: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(46,53): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.Tags' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176493: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(47,59): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.Actions' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176515: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(48,72): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.ProcessingDialog' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176523: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(51,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176531: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(53,44): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto.Order' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176538: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(54,54): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto.Description' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176545: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(55,47): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto.Type' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176565: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(56,49): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176574: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(57,51): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto.FilePath' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176579: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(60,21): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogItemDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176589: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(62,52): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogItemDto.Timestamp' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176599: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(63,47): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogItemDto.Role' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176610: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(64,50): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogItemDto.Content' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176623: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(65,51): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogItemDto.Category' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176631: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(68,21): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogAppendResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176642: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(70,48): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogAppendResult.Agent' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176656: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(71,52): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogAppendResult.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176662: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(72,52): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogAppendResult.RequestId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176673: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(73,55): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogAppendResult.TotalDialogCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176683: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176689: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests.SessionLogLifecycleTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176700: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests.FullLifecycle_Submit_Query_AppendDialog_Requery()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176715: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176725: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.SessionLogRoute' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176736: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(13,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176744: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(14,20): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.ApiKey' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176752: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(16,12): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.SessionLogEndpointFixture()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176765: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(30,17): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:176772: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(34,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointCollection' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:224814: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.RepoEndpointTests(RepoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:224815: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(20,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.List_RootPath_Returns200WithEntries()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:224816: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(30,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.List_WithPath_Returns200()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:224817: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(42,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.ReadFile_MissingPath_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:224818: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(51,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.ReadFile_ExistingFile_Returns200()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:224819: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.ReadFile_NonExistentFile_Returns200Or400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:224820: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(71,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.WriteFile_MissingPath_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:224821: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(79,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.WriteFile_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:224822: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(86,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.WriteFile_ValidPath_Returns200Or400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:224823: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointCollection' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:224824: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:224825: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:224826: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.RepoRoute' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:224827: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:224828: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.RepoEndpointFixture()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:224829: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:224834: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.GitHubEndpointTests(GitHubEndpointFixture)' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:224835: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(20,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListIssues_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:224836: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(30,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListIssues_WithState_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:224837: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(39,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.GetIssue_ExistingNumber_Returns200Or404()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:224838: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(50,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CreateIssue_MissingTitle_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:224839: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.UpdateIssue_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:224840: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(69,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CommentOnIssue_MissingBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:224841: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(79,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListLabels_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:224842: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(90,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListPulls_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:224843: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(100,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListPulls_WithState_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:224844: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(109,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CommentOnPull_MissingBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:224845: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(119,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CloseIssue_NonExistent_ReturnsBadRequestOr200()'  +[E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:224846: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(130,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ReopenIssue_NonExistent_ReturnsBadRequestOr200()'  +[E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:224847: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(140,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncFromGitHub_Returns200Or400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:224848: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(150,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncToGitHub_Returns200Or400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:224849: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(160,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncSingleIssue_Returns200Or400Or404()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:224850: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointCollection' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:224851: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:224852: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:224853: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.GhRoute' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:224854: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:224855: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.GitHubEndpointFixture()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:224856: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:224861: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.CreateTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224862: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(21,22): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224863: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(23,28): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224864: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(29,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_ValidRequest_Returns201()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224865: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(62,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_DuplicateId_Returns409()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224866: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(77,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224867: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(91,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_WithImplementationTasks_Returns201()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224868: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.DeleteTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224869: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(17,23): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.Delete_ExistingItem_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224870: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(40,23): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.Delete_NonExistentItem_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224871: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.GetTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224872: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224873: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224874: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.Get_ValidId_Returns200WithItem()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224875: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(51,23): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.Get_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224876: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.QueryTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224877: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(17,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_NoFilters_Returns200WithValidStructure()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224878: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(31,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ResponseIsJson()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224879: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(40,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByPriority_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224880: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(55,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByDoneStatus_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224881: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(69,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByKeyword_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224882: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(81,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_BySection_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224883: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(95,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ById_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224884: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(114,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_NonMatchingKeyword_ReturnsEmptyList()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224885: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.RequirementsTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224886: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224887: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224888: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.Requirements_RegisteredItem_ReturnsResult()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224889: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.Requirements_NonExistentItem_Returns422()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224890: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.UpdateTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224891: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224892: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224893: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ChangeTitle_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224894: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(50,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ToggleDone_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224895: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(66,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ChangePriority_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224896: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(82,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224897: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(93,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224898: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(18,12): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.TodoErrorTests(TodoEndpointFixture, ITestOutputHelper)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224899: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(27,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Get_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224900: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(36,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Update_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224901: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(46,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Delete_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224902: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(57,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Create_Duplicate_Returns409()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224903: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(84,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Create_EmptyBody_ReturnsBadRequest()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224904: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(97,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Update_NullBody_Returns400OrUnsupportedMedia()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224905: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(114,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Patch_NotSupported_Returns405()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224906: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(128,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Query_InvalidPriority_Returns200EmptyOrAll()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224907: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(140,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Query_MultipleFilters_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224908: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(6,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Id' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224909: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(7,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Title' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224910: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(8,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Section' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224911: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(9,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Priority' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224912: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(10,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Done' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224913: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(11,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Estimate' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224914: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(12,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Note' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224915: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(13,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Description' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224916: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(14,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.TechnicalDetails' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224917: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(15,32): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.ImplementationTasks' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224918: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(16,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.CompletedDate' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224919: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(17,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.DoneSummary' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224920: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(18,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Remaining' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224921: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(19,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.PriorityNote' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224922: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(20,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Reference' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224923: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(21,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.DependsOn' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224924: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(22,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.FunctionalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224925: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(23,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.TechnicalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224926: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(29,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatTask.Task' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224927: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(30,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatTask.Done' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224928: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(36,31): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoQueryResult.Items' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224929: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(37,16): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoQueryResult.TotalCount' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224930: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(43,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Success' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224931: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(44,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224932: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(45,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Item' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224933: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(51,17): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.Success' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224934: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(52,26): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.FunctionalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224935: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(53,26): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.TechnicalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224936: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(54,20): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224937: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(55,20): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.CopilotResponse' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224938: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(61,20): error CS1591: Missing XML comment for publicly visible type or  +member 'ErrorResponse.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224939: E:\github\McpServer\tests\McpServer.Todo.Validation\SequenceTests\TodoLifecycleSequenceTests.cs(18,12): error CS1591: Missing XML comment for  +publicly visible type or member 'TodoLifecycleSequenceTests.TodoLifecycleSequenceTests(TodoEndpointFixture, ITestOutputHelper)'  +[E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224940: E:\github\McpServer\tests\McpServer.Todo.Validation\SequenceTests\TodoLifecycleSequenceTests.cs(25,23): error CS1591: Missing XML comment for  +publicly visible type or member 'TodoLifecycleSequenceTests.FullLifecycle_CreateThroughDelete()'  +[E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224941: E:\github\McpServer\tests\McpServer.Todo.Validation\TodoEndpointFixture.cs(20,12): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoEndpointFixture.TodoEndpointFixture()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224942: E:\github\McpServer\tests\McpServer.Todo.Validation\TodoEndpointFixture.cs(33,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:224947: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(13,12): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BucketTests(ToolRegistryFixture)' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224948: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.ListBuckets_Returns200WithValidStructure()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224949: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(31,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.AddBucket_ValidRequest_Returns201()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224950: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(52,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.AddBucket_Duplicate_Returns409()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224951: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(73,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.RemoveBucket_Existing_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224952: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(87,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.RemoveBucket_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224953: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(96,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BrowseBucket_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224954: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(103,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BrowseBucket_Existing_ReturnsResult()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224955: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(126,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.InstallFromBucket_NonExistentBucket_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224956: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(136,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.SyncBucket_NonExistentBucket_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224957: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(144,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.SyncBucket_Existing_Returns200Or404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224958: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(13,12): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.ToolCrudTests(ToolRegistryFixture)' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224959: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.List_Returns200WithValidStructure()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224960: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(29,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.List_ResponseIsJson()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224961: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(38,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_WithKeyword_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224962: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(47,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_NonMatchingKeyword_ReturnsEmpty()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224963: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Create_ValidTool_Returns201()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224964: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(92,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Create_DuplicateName_Returns409()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224965: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(113,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Get_ExistingTool_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224966: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(136,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Get_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224967: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(143,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Update_ChangeName_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224968: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(170,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Update_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224969: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(178,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Delete_ExistingTool_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224970: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(198,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Delete_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224971: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(207,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_ByTag_FindsCreatedTool()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224972: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(13,12): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.ToolRegistryErrorTests(ToolRegistryFixture)'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224973: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(16,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Get_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224974: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(23,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Update_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224975: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(30,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Delete_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224976: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(37,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.RemoveBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224977: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(44,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.BrowseBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224978: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(51,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.SyncBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224979: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(58,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.InstallFromBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224980: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(66,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Patch_NotSupported_Returns405()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224981: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(77,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Get_InvalidIdFormat_Returns404Or400()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224982: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(87,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Create_DuplicateName_Returns409()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224983: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(111,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.AddBucket_Duplicate_Returns409()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224984: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(130,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Search_WithWorkspace_Returns200()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224985: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(138,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.List_WithWorkspace_Returns200()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224986: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(3,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224987: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(5,16): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Id' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224988: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(6,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224989: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(7,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Description' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224990: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(8,25): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Tags' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224991: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(9,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.ParameterSchema' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224992: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(10,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.CommandTemplate' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224993: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(11,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.WorkspacePath' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224994: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(12,27): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.DateTimeCreated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224995: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(13,27): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.DateTimeModified' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224996: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(16,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224997: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(18,26): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult.Tools' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224998: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(19,16): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult.TotalCount' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:224999: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(22,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:225000: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(24,17): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:225001: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(25,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:225002: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(26,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Tool' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:225003: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(29,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:225004: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(31,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Id' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:225005: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(32,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:225006: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(33,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Owner' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:225007: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(34,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Repo' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:225008: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(35,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Branch' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:225009: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(36,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.ManifestPath' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:225010: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(37,27): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.DateTimeCreated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:225011: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(38,28): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.DateTimeLastSynced' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:225012: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(41,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:225013: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(43,28): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult.Buckets' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:225014: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(44,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult.TotalCount' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:225015: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(47,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:225016: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(49,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:225017: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(50,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:225018: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(51,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Bucket' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:225019: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(54,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:225020: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(56,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:225021: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(57,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Description' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:225022: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(58,25): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Tags' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:225023: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(59,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.ParameterSchema' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:225024: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(60,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.CommandTemplate' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:225025: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(61,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.ManifestFile' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:225026: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(64,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:225027: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(66,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:225028: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(67,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:225029: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(68,32): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Tools' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:225030: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(71,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:225031: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(73,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:225032: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(74,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:225033: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(75,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Updated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:225034: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(76,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Added' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:225035: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(77,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Unchanged' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:225036: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(15,12): error CS1591: Missing XML comment  +for publicly visible type or member 'ToolLifecycleSequenceTests.ToolLifecycleSequenceTests(ToolRegistryFixture, ITestOutputHelper)'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:225037: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(18,23): error CS1591: Missing XML comment  +for publicly visible type or member 'ToolLifecycleSequenceTests.FullToolLifecycle_CreateThroughDelete()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:225038: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(109,23): error CS1591: Missing XML  +comment for publicly visible type or member 'ToolLifecycleSequenceTests.FullBucketLifecycle_AddThroughRemove()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:225039: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(8,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:225040: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(9,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.ToolRoute' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:225041: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.BucketRoute' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:225042: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.Client' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:225043: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.ToolRegistryFixture()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:225044: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(27,17): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.Dispose()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:225045: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(31,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryCollection' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:225050: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(9,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:225051: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(14,12): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.ContextEndpointTests(ContextEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:225052: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(19,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Sources_Returns200WithSourcesArray()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:225053: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(31,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_EmptyQuery_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:225054: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(42,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_WithQuery_Returns200WithResults()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:225055: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(54,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_WithSourceTypeFilter_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:225056: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(62,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_LimitClamped_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:225057: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(72,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_EmptyQuery_Returns200WithPack()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:225058: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(84,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_WithQueryId_Returns200WithSameQueryId()'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:225059: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(95,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_WithQuery_ReturnsFilteredChunks()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:225060: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(105,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ContextEndpointTests.RebuildIndex_Returns200Or500()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:225061: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointCollection' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:225062: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:225063: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:225064: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.ContextRoute' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:225065: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:225066: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.ContextEndpointFixture()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:225067: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:225072: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(10,21): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225073: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225074: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialog_ToExistingEntry_Returns200WithCount()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225075: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(70,23): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialog_MultipleAppends_AccumulatesCount()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225076: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(115,23): error CS1591: Missing XML comment for  +publicly visible type or member 'AppendDialogTests.AppendDialog_NonExistentSession_Returns404()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225077: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225078: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.QuerySessionLogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225079: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_NoFilters_Returns200WithResults()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225080: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(30,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByAgent_Returns200Filtered()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225081: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(57,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByModel_Returns200Filtered()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225082: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(82,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByDateRange_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225083: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(95,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_WithPagination_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225084: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(107,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_NonMatchingAgent_ReturnsEmptyResults()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225085: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(119,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByText_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225086: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225087: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.SubmitSessionLogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225088: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_MinimalSessionLog_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225089: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(44,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_FullSessionLogWithEntries_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225090: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(94,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_UpsertSameSession_Returns201WithUpdatedData()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225091: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(135,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_WithProcessingDialog_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225092: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(11,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225093: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(16,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.SessionLogErrorTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225094: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(19,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_MissingSourceType_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225095: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(37,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_MissingSessionId_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225096: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(55,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_EmptySourceType_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225097: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(70,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_EmptySessionId_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225098: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(85,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.AppendDialog_EmptyItemsList_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225099: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(94,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_InvalidJsonBody_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225100: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(5,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SubmitResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225101: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(7,41): error CS1591: Missing XML comment for publicly  +visible type or member 'SubmitResult.Id' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225102: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(8,53): error CS1591: Missing XML comment for publicly  +visible type or member 'SubmitResult.SourceType' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225103: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(9,52): error CS1591: Missing XML comment for publicly  +visible type or member 'SubmitResult.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225104: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(12,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ErrorResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225105: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(14,48): error CS1591: Missing XML comment for publicly  +visible type or member 'ErrorResult.Error' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225106: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(17,21): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225107: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(19,49): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult.TotalCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225108: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(20,44): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult.Limit' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225109: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(21,45): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult.Offset' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225110: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(22,62): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult.Items' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225111: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(25,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225112: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(27,41): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Id' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225113: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(28,53): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.SourceType' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225114: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(29,52): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225115: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(30,48): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Title' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225116: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(31,48): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Model' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225117: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(32,49): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225118: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(33,49): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.EntryCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225119: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(34,50): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Started' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225120: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(35,54): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.LastUpdated' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225121: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(36,58): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Entries' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225122: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(39,21): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225123: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(41,52): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.RequestId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225124: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(42,52): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.QueryText' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225125: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(43,53): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.QueryTitle' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225126: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(44,51): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.Response' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225127: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(45,49): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225128: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(46,53): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.Tags' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225129: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(47,59): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.Actions' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225130: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(48,72): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.ProcessingDialog' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225131: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(51,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225132: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(53,44): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.Order' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225133: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(54,54): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.Description' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225134: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(55,47): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.Type' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225135: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(56,49): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225136: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(57,51): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.FilePath' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225137: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(60,21): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225138: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(62,52): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto.Timestamp' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225139: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(63,47): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto.Role' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225140: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(64,50): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto.Content' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225141: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(65,51): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto.Category' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225142: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(68,21): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225143: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(70,48): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult.Agent' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225144: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(71,52): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225145: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(72,52): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult.RequestId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225146: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(73,55): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult.TotalDialogCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225147: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225148: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests.SessionLogLifecycleTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225149: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests.FullLifecycle_Submit_Query_AppendDialog_Requery()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225150: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225151: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.SessionLogRoute' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225152: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(13,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225153: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(14,20): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.ApiKey' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225154: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(16,12): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.SessionLogEndpointFixture()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225155: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(30,17): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:225156: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(34,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointCollection' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:283745: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.GitHubEndpointTests(GitHubEndpointFixture)' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:283760: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(20,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListIssues_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:283782: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(30,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListIssues_WithState_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:283800: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(39,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.GetIssue_ExistingNumber_Returns200Or404()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:283821: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(50,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CreateIssue_MissingTitle_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:283834: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.UpdateIssue_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:283853: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(69,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CommentOnIssue_MissingBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:283871: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(79,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListLabels_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:283905: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(90,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListPulls_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:283918: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(100,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListPulls_WithState_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:283932: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(109,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CommentOnPull_MissingBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:283947: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(119,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CloseIssue_NonExistent_ReturnsBadRequestOr200()'  +[E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:283964: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(130,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ReopenIssue_NonExistent_ReturnsBadRequestOr200()'  +[E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:283987: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(140,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncFromGitHub_Returns200Or400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:284004: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(150,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncToGitHub_Returns200Or400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:284019: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(160,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncSingleIssue_Returns200Or400Or404()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:284025: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointCollection' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:284035: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:284052: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:284070: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.GhRoute' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:284089: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:284107: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.GitHubEndpointFixture()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:284115: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:284455: 20:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.RepoEndpointTests(RepoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:284465: 20:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(20,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.List_RootPath_Returns200WithEntries()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:284486: 20:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(30,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.List_WithPath_Returns200()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:284523: 20:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(42,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.ReadFile_MissingPath_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:284531: 20:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(51,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.ReadFile_ExistingFile_Returns200()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:284542: 20:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(60,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.ReadFile_NonExistentFile_Returns200Or400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:284551: 20:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(71,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.WriteFile_MissingPath_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:284569: 20:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(79,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.WriteFile_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:284580: 20:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(86,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.WriteFile_ValidPath_Returns200Or400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:284714: 20:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointCollection' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:284728: 20:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:284751: 20:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:284786: 20:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.RepoRoute' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:284802: 20:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:284820: 20:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.RepoEndpointFixture()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:284829: 20:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:284958: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.CreateTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:284979: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(21,22): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285009: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(23,28): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285027: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(29,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_ValidRequest_Returns201()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285040: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(62,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_DuplicateId_Returns409()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285050: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(77,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285070: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(91,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_WithImplementationTasks_Returns201()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285088: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.DeleteTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285102: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(17,23): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.Delete_ExistingItem_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285120: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(40,23): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.Delete_NonExistentItem_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285131: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible type  +or member 'GetTodoTests.GetTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285143: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly visible type  +or member 'GetTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285157: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly visible type  +or member 'GetTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285169: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly visible type  +or member 'GetTodoTests.Get_ValidId_Returns200WithItem()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285191: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(51,23): error CS1591: Missing XML comment for publicly visible type  +or member 'GetTodoTests.Get_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285204: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.QueryTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285213: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(17,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_NoFilters_Returns200WithValidStructure()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285226: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(31,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ResponseIsJson()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285243: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(40,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByPriority_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285250: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(55,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByDoneStatus_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285262: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(69,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByKeyword_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285278: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(81,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_BySection_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285294: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(95,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ById_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285303: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(114,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_NonMatchingKeyword_ReturnsEmptyList()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285331: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.RequirementsTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285362: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285376: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285390: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.Requirements_RegisteredItem_ReturnsResult()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285397: 6:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(9,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:285401: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.Requirements_NonExistentItem_Returns422()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285406: 6:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(14,12): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.ContextEndpointTests(ContextEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:285415: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.UpdateTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285422: 6:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(19,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Sources_Returns200WithSourcesArray()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:285430: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285437: 6:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(31,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_EmptyQuery_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:285451: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285467: 6:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(42,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_WithQuery_Returns200WithResults()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:285472: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ChangeTitle_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285475: 6:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(54,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_WithSourceTypeFilter_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:285502: 6:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(62,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_LimitClamped_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:285507: 6:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(72,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_EmptyQuery_Returns200WithPack()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:285511: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(50,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ToggleDone_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285520: 6:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(84,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_WithQueryId_Returns200WithSameQueryId()'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:285521: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(66,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ChangePriority_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285532: 6:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(95,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_WithQuery_ReturnsFilteredChunks()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:285539: 6:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(105,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.RebuildIndex_Returns200Or500()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:285541: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(82,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285543: 6:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type  +or member 'ContextEndpointCollection' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:285551: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(93,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285556: 6:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type  +or member 'ContextEndpointFixture' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:285563: 6:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:285566: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(18,12): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.TodoErrorTests(TodoEndpointFixture, ITestOutputHelper)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285573: 6:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.ContextRoute' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:285575: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(27,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Get_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285584: 6:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:285590: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(36,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Update_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285596: 6:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.ContextEndpointFixture()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:285599: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(46,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Delete_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285602: 6:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:285606: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(57,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Create_Duplicate_Returns409()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285613: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(84,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Create_EmptyBody_ReturnsBadRequest()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285629: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(97,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Update_NullBody_Returns400OrUnsupportedMedia()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285636: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(114,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Patch_NotSupported_Returns405()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285644: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(128,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Query_InvalidPriority_Returns200EmptyOrAll()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285664: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(140,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Query_MultipleFilters_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285676: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(6,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Id' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285687: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(7,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Title' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285697: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(8,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Section' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285714: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(9,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Priority' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285726: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(10,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Done' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285740: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(11,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Estimate' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285747: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(12,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Note' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285979: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(13,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Description' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:285980: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(10,21): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:285990: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:285999: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialog_ToExistingEntry_Returns200WithCount()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286009: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(14,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.TechnicalDetails' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:286010: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(70,23): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialog_MultipleAppends_AccumulatesCount()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286021: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(15,32): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.ImplementationTasks' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:286029: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(115,23): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialog_NonExistentSession_Returns404()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286254: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(16,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.CompletedDate' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:286272: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286273: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(17,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.DoneSummary' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:286287: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.QuerySessionLogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286289: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(18,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Remaining' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:286295: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_NoFilters_Returns200WithResults()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286305: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(19,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.PriorityNote' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:286306: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(30,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByAgent_Returns200Filtered()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286316: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(20,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Reference' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:286317: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(57,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByModel_Returns200Filtered()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286331: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(21,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.DependsOn' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:286335: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(82,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByDateRange_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286337: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(22,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.FunctionalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:286341: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(95,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_WithPagination_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286347: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(23,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.TechnicalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:286353: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(107,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_NonMatchingAgent_ReturnsEmptyResults()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286355: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(29,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatTask.Task' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:286359: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(119,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByText_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286363: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(30,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatTask.Done' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:286371: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286374: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(36,31): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoQueryResult.Items' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:286383: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.SubmitSessionLogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286389: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(37,16): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoQueryResult.TotalCount' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:286390: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_MinimalSessionLog_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286396: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(44,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_FullSessionLogWithEntries_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286397: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(43,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Success' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:286411: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(94,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_UpsertSameSession_Returns201WithUpdatedData()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286417: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(44,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:286420: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(135,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_WithProcessingDialog_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286426: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(45,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Item' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:286431: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(11,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286435: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(51,17): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.Success' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:286440: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(16,12): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.SessionLogErrorTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286443: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(52,26): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.FunctionalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:286455: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(19,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.Submit_MissingSourceType_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286456: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(53,26): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.TechnicalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:286466: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(54,20): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:286469: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(37,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.Submit_MissingSessionId_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286477: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(55,20): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.CopilotResponse' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:286482: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(55,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.Submit_EmptySourceType_Returns400()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286484: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(61,20): error CS1591: Missing XML comment for publicly visible type or  +member 'ErrorResponse.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:286489: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(70,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.Submit_EmptySessionId_Returns400()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286491: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\SequenceTests\TodoLifecycleSequenceTests.cs(18,12): error CS1591: Missing XML comment for  +publicly visible type or member 'TodoLifecycleSequenceTests.TodoLifecycleSequenceTests(TodoEndpointFixture, ITestOutputHelper)'  +[E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:286496: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(85,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.AppendDialog_EmptyItemsList_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286497: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\SequenceTests\TodoLifecycleSequenceTests.cs(25,23): error CS1591: Missing XML comment for  +publicly visible type or member 'TodoLifecycleSequenceTests.FullLifecycle_CreateThroughDelete()'  +[E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:286504: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(94,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.Submit_InvalidJsonBody_Returns400()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286505: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\TodoEndpointFixture.cs(20,12): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoEndpointFixture.TodoEndpointFixture()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:286512: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\TodoEndpointFixture.cs(33,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:286518: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(5,21): error CS1591: Missing XML comment for publicly visible  +type or member 'SubmitResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286520: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(7,41): error CS1591: Missing XML comment for publicly visible  +type or member 'SubmitResult.Id' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286529: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(8,53): error CS1591: Missing XML comment for publicly visible  +type or member 'SubmitResult.SourceType' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286533: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(9,52): error CS1591: Missing XML comment for publicly visible  +type or member 'SubmitResult.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286545: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(12,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ErrorResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286568: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(14,48): error CS1591: Missing XML comment for publicly visible  +type or member 'ErrorResult.Error' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286581: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(17,21): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286588: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(19,49): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryResult.TotalCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286599: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(20,44): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryResult.Limit' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286608: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(21,45): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryResult.Offset' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286616: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(22,62): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryResult.Items' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286623: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(25,21): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286637: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(27,41): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Id' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286647: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(28,53): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.SourceType' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286662: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(29,52): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286668: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(30,48): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Title' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286677: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(31,48): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Model' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286686: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(32,49): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286699: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(33,49): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.EntryCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286708: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(34,50): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Started' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286719: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(35,54): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.LastUpdated' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286728: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(36,58): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Entries' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286737: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(39,21): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286751: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(41,52): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.RequestId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286756: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(42,52): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.QueryText' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286766: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(43,53): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.QueryTitle' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286772: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(44,51): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.Response' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286778: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(45,49): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286788: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(46,53): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.Tags' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286793: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(47,59): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.Actions' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286806: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(48,72): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.ProcessingDialog' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286815: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(51,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286823: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(53,44): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto.Order' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286833: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(54,54): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto.Description' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286838: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(55,47): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto.Type' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286847: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(56,49): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286855: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(57,51): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto.FilePath' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286865: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(60,21): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogItemDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286879: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(62,52): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogItemDto.Timestamp' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286889: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(63,47): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogItemDto.Role' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286895: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(64,50): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogItemDto.Content' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286908: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(65,51): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogItemDto.Category' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286921: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(68,21): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogAppendResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286936: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(70,48): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogAppendResult.Agent' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286947: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(71,52): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogAppendResult.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286954: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(72,52): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogAppendResult.RequestId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286965: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(73,55): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogAppendResult.TotalDialogCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286969: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:286983: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests.SessionLogLifecycleTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:287003: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests.FullLifecycle_Submit_Query_AppendDialog_Requery()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:287009: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:287019: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.SessionLogRoute' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:287025: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(13,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:287040: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(14,20): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.ApiKey' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:287049: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(16,12): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.SessionLogEndpointFixture()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:287065: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(30,17): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:287075: 17:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(34,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointCollection' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:287695: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(13,12): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BucketTests(ToolRegistryFixture)' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:287702: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.ListBuckets_Returns200WithValidStructure()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:287710: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(31,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.AddBucket_ValidRequest_Returns201()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:287719: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(52,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.AddBucket_Duplicate_Returns409()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:287722: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(73,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.RemoveBucket_Existing_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:287726: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(87,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.RemoveBucket_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:287735: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(96,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BrowseBucket_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:287739: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(103,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BrowseBucket_Existing_ReturnsResult()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:287743: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(126,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.InstallFromBucket_NonExistentBucket_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:287746: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(136,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.SyncBucket_NonExistentBucket_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:287752: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(144,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.SyncBucket_Existing_Returns200Or404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:287760: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(13,12): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.ToolCrudTests(ToolRegistryFixture)' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:287764: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.List_Returns200WithValidStructure()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:287768: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(29,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.List_ResponseIsJson()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:287771: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(38,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_WithKeyword_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:287778: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(47,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_NonMatchingKeyword_ReturnsEmpty()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:287789: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Create_ValidTool_Returns201()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:287798: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(92,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Create_DuplicateName_Returns409()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:287807: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(113,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Get_ExistingTool_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:287816: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(136,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Get_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:287826: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(143,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Update_ChangeName_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:287832: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(170,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Update_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:287838: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(178,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Delete_ExistingTool_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:287841: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(198,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Delete_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:287846: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(207,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_ByTag_FindsCreatedTool()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:287851: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(13,12): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.ToolRegistryErrorTests(ToolRegistryFixture)'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:287859: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(16,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Get_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:287863: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(23,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Update_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:287868: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(30,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Delete_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:287875: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(37,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.RemoveBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:287886: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(44,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.BrowseBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:287894: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(51,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.SyncBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:287901: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(58,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.InstallFromBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:287905: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(66,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Patch_NotSupported_Returns405()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:287909: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(77,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Get_InvalidIdFormat_Returns404Or400()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:287914: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(87,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Create_DuplicateName_Returns409()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:287917: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(111,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.AddBucket_Duplicate_Returns409()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:287923: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(130,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Search_WithWorkspace_Returns200()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:287929: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(138,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.List_WithWorkspace_Returns200()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:287932: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(3,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:287940: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(5,16): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Id' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:287950: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(6,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:287962: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(7,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Description' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:287972: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(8,25): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Tags' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:287981: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(9,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.ParameterSchema' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:287992: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(10,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.CommandTemplate' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:287999: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(11,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.WorkspacePath' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288006: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(12,27): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.DateTimeCreated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288015: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(13,27): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.DateTimeModified' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288019: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(16,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288028: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(18,26): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult.Tools' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288038: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(19,16): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult.TotalCount' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288042: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(22,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288045: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(24,17): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288051: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(25,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288060: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(26,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Tool' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288067: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(29,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288074: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(31,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Id' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288081: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(32,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288090: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(33,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Owner' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288100: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(34,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Repo' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288108: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(35,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Branch' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288117: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(36,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.ManifestPath' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288130: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(37,27): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.DateTimeCreated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288139: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(38,28): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.DateTimeLastSynced' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288151: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(41,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288159: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(43,28): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult.Buckets' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288165: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(44,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult.TotalCount' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288173: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(47,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288176: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(49,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288188: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(50,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288195: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(51,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Bucket' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288206: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(54,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288216: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(56,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288224: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(57,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Description' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288234: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(58,25): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Tags' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288242: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(59,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.ParameterSchema' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288255: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(60,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.CommandTemplate' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288262: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(61,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.ManifestFile' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288272: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(64,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288278: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(66,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288284: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(67,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288306: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(68,32): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Tools' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288317: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(71,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288325: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(73,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288332: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(74,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288340: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(75,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Updated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288345: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(76,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Added' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288359: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(77,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Unchanged' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288368: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(15,12): error CS1591: Missing XML comment  +for publicly visible type or member 'ToolLifecycleSequenceTests.ToolLifecycleSequenceTests(ToolRegistryFixture, ITestOutputHelper)'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288373: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(18,23): error CS1591: Missing XML comment  +for publicly visible type or member 'ToolLifecycleSequenceTests.FullToolLifecycle_CreateThroughDelete()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288380: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(109,23): error CS1591: Missing XML comment  +for publicly visible type or member 'ToolLifecycleSequenceTests.FullBucketLifecycle_AddThroughRemove()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288386: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(8,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288395: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(9,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.ToolRoute' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288400: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.BucketRoute' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288405: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.Client' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288412: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.ToolRegistryFixture()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288420: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(27,17): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.Dispose()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:288426: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(31,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryCollection' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336575: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.GitHubEndpointTests(GitHubEndpointFixture)' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:336576: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(20,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListIssues_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:336577: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(30,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListIssues_WithState_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:336578: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(39,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.GetIssue_ExistingNumber_Returns200Or404()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:336579: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(50,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CreateIssue_MissingTitle_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:336580: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.UpdateIssue_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:336581: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(69,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CommentOnIssue_MissingBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:336582: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(79,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListLabels_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:336583: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(90,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListPulls_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:336584: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(100,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListPulls_WithState_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:336585: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(109,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CommentOnPull_MissingBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:336586: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(119,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CloseIssue_NonExistent_ReturnsBadRequestOr200()'  +[E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:336587: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(130,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ReopenIssue_NonExistent_ReturnsBadRequestOr200()'  +[E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:336588: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(140,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncFromGitHub_Returns200Or400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:336589: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(150,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncToGitHub_Returns200Or400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:336590: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(160,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncSingleIssue_Returns200Or400Or404()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:336591: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointCollection' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:336592: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:336593: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:336594: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.GhRoute' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:336595: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:336596: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.GitHubEndpointFixture()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:336597: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:336602: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.RepoEndpointTests(RepoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:336603: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(20,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.List_RootPath_Returns200WithEntries()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:336604: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(30,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.List_WithPath_Returns200()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:336605: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(42,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.ReadFile_MissingPath_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:336606: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(51,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.ReadFile_ExistingFile_Returns200()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:336607: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.ReadFile_NonExistentFile_Returns200Or400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:336608: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(71,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.WriteFile_MissingPath_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:336609: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(79,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.WriteFile_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:336610: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(86,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.WriteFile_ValidPath_Returns200Or400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:336611: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointCollection' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:336612: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:336613: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:336614: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.RepoRoute' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:336615: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:336616: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.RepoEndpointFixture()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:336617: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:336622: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.CreateTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336623: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(21,22): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336624: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(23,28): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336625: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(29,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_ValidRequest_Returns201()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336626: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(62,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_DuplicateId_Returns409()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336627: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(77,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336628: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(91,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_WithImplementationTasks_Returns201()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336629: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.DeleteTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336630: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(17,23): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.Delete_ExistingItem_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336631: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(40,23): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.Delete_NonExistentItem_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336632: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.GetTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336633: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336634: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336635: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.Get_ValidId_Returns200WithItem()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336636: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(51,23): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.Get_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336637: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.QueryTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336638: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(17,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_NoFilters_Returns200WithValidStructure()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336639: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(31,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ResponseIsJson()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336640: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(40,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByPriority_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336641: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(55,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByDoneStatus_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336642: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(69,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByKeyword_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336643: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(81,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_BySection_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336644: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(95,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ById_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336645: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(114,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_NonMatchingKeyword_ReturnsEmptyList()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336646: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.RequirementsTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336647: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336648: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336649: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.Requirements_RegisteredItem_ReturnsResult()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336650: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.Requirements_NonExistentItem_Returns422()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336651: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.UpdateTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336652: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336653: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336654: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ChangeTitle_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336655: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(50,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ToggleDone_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336656: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(66,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ChangePriority_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336657: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(82,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336658: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(93,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336659: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(18,12): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.TodoErrorTests(TodoEndpointFixture, ITestOutputHelper)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336660: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(27,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Get_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336661: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(36,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Update_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336662: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(46,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Delete_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336663: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(57,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Create_Duplicate_Returns409()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336664: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(84,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Create_EmptyBody_ReturnsBadRequest()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336665: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(97,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Update_NullBody_Returns400OrUnsupportedMedia()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336666: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(114,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Patch_NotSupported_Returns405()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336667: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(128,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Query_InvalidPriority_Returns200EmptyOrAll()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336668: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(140,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Query_MultipleFilters_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336669: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(6,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Id' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336670: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(7,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Title' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336671: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(8,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Section' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336672: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(9,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Priority' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336673: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(10,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Done' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336674: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(11,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Estimate' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336675: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(12,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Note' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336676: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(13,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Description' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336677: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(14,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.TechnicalDetails' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336678: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(15,32): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.ImplementationTasks' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336679: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(16,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.CompletedDate' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336680: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(17,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.DoneSummary' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336681: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(18,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Remaining' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336682: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(19,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.PriorityNote' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336683: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(20,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Reference' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336684: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(21,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.DependsOn' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336685: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(22,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.FunctionalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336686: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(23,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.TechnicalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336687: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(29,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatTask.Task' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336688: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(30,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatTask.Done' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336689: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(36,31): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoQueryResult.Items' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336690: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(37,16): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoQueryResult.TotalCount' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336691: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(43,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Success' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336692: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(44,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336693: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(45,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Item' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336694: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(51,17): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.Success' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336695: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(52,26): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.FunctionalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336696: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(53,26): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.TechnicalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336697: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(54,20): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336698: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(55,20): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.CopilotResponse' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336699: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(61,20): error CS1591: Missing XML comment for publicly visible type or  +member 'ErrorResponse.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336700: E:\github\McpServer\tests\McpServer.Todo.Validation\SequenceTests\TodoLifecycleSequenceTests.cs(18,12): error CS1591: Missing XML comment for  +publicly visible type or member 'TodoLifecycleSequenceTests.TodoLifecycleSequenceTests(TodoEndpointFixture, ITestOutputHelper)'  +[E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336701: E:\github\McpServer\tests\McpServer.Todo.Validation\SequenceTests\TodoLifecycleSequenceTests.cs(25,23): error CS1591: Missing XML comment for  +publicly visible type or member 'TodoLifecycleSequenceTests.FullLifecycle_CreateThroughDelete()'  +[E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336702: E:\github\McpServer\tests\McpServer.Todo.Validation\TodoEndpointFixture.cs(20,12): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoEndpointFixture.TodoEndpointFixture()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336703: E:\github\McpServer\tests\McpServer.Todo.Validation\TodoEndpointFixture.cs(33,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:336708: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(9,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:336709: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(14,12): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.ContextEndpointTests(ContextEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:336710: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(19,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Sources_Returns200WithSourcesArray()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:336711: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(31,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_EmptyQuery_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:336712: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(42,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_WithQuery_Returns200WithResults()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:336713: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(54,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_WithSourceTypeFilter_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:336714: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(62,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_LimitClamped_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:336715: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(72,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_EmptyQuery_Returns200WithPack()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:336716: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(84,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_WithQueryId_Returns200WithSameQueryId()'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:336717: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(95,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_WithQuery_ReturnsFilteredChunks()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:336718: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(105,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ContextEndpointTests.RebuildIndex_Returns200Or500()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:336719: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointCollection' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:336720: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:336721: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:336722: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.ContextRoute' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:336723: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:336724: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.ContextEndpointFixture()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:336725: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:336730: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(10,21): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336731: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336732: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialog_ToExistingEntry_Returns200WithCount()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336733: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(70,23): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialog_MultipleAppends_AccumulatesCount()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336734: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(115,23): error CS1591: Missing XML comment for  +publicly visible type or member 'AppendDialogTests.AppendDialog_NonExistentSession_Returns404()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336735: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336736: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.QuerySessionLogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336737: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_NoFilters_Returns200WithResults()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336738: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(30,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByAgent_Returns200Filtered()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336739: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(57,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByModel_Returns200Filtered()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336740: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(82,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByDateRange_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336741: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(95,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_WithPagination_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336742: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(107,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_NonMatchingAgent_ReturnsEmptyResults()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336743: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(119,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByText_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336744: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336745: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.SubmitSessionLogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336746: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_MinimalSessionLog_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336747: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(44,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_FullSessionLogWithEntries_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336748: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(94,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_UpsertSameSession_Returns201WithUpdatedData()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336749: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(135,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_WithProcessingDialog_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336750: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(11,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336751: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(16,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.SessionLogErrorTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336752: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(19,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_MissingSourceType_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336753: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(37,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_MissingSessionId_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336754: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(55,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_EmptySourceType_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336755: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(70,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_EmptySessionId_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336756: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(85,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.AppendDialog_EmptyItemsList_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336757: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(94,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_InvalidJsonBody_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336758: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(5,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SubmitResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336759: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(7,41): error CS1591: Missing XML comment for publicly  +visible type or member 'SubmitResult.Id' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336760: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(8,53): error CS1591: Missing XML comment for publicly  +visible type or member 'SubmitResult.SourceType' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336761: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(9,52): error CS1591: Missing XML comment for publicly  +visible type or member 'SubmitResult.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336762: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(12,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ErrorResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336763: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(14,48): error CS1591: Missing XML comment for publicly  +visible type or member 'ErrorResult.Error' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336764: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(17,21): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336765: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(19,49): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult.TotalCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336766: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(20,44): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult.Limit' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336767: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(21,45): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult.Offset' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336768: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(22,62): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult.Items' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336769: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(25,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336770: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(27,41): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Id' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336771: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(28,53): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.SourceType' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336772: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(29,52): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336773: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(30,48): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Title' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336774: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(31,48): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Model' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336775: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(32,49): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336776: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(33,49): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.EntryCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336777: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(34,50): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Started' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336778: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(35,54): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.LastUpdated' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336779: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(36,58): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Entries' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336780: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(39,21): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336781: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(41,52): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.RequestId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336782: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(42,52): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.QueryText' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336783: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(43,53): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.QueryTitle' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336784: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(44,51): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.Response' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336785: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(45,49): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336786: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(46,53): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.Tags' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336787: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(47,59): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.Actions' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336788: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(48,72): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.ProcessingDialog' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336789: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(51,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336790: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(53,44): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.Order' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336791: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(54,54): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.Description' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336792: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(55,47): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.Type' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336793: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(56,49): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336794: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(57,51): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.FilePath' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336795: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(60,21): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336796: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(62,52): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto.Timestamp' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336797: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(63,47): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto.Role' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336798: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(64,50): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto.Content' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336799: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(65,51): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto.Category' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336800: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(68,21): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336801: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(70,48): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult.Agent' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336802: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(71,52): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336803: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(72,52): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult.RequestId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336804: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(73,55): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult.TotalDialogCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336805: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336806: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests.SessionLogLifecycleTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336807: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests.FullLifecycle_Submit_Query_AppendDialog_Requery()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336808: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336809: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.SessionLogRoute' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336810: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(13,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336811: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(14,20): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.ApiKey' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336812: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(16,12): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.SessionLogEndpointFixture()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336813: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(30,17): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336814: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(34,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointCollection' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:336819: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(13,12): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BucketTests(ToolRegistryFixture)' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336820: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.ListBuckets_Returns200WithValidStructure()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336821: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(31,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.AddBucket_ValidRequest_Returns201()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336822: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(52,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.AddBucket_Duplicate_Returns409()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336823: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(73,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.RemoveBucket_Existing_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336824: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(87,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.RemoveBucket_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336825: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(96,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BrowseBucket_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336826: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(103,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BrowseBucket_Existing_ReturnsResult()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336827: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(126,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.InstallFromBucket_NonExistentBucket_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336828: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(136,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.SyncBucket_NonExistentBucket_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336829: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(144,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.SyncBucket_Existing_Returns200Or404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336830: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(13,12): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.ToolCrudTests(ToolRegistryFixture)' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336831: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.List_Returns200WithValidStructure()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336832: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(29,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.List_ResponseIsJson()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336833: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(38,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_WithKeyword_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336834: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(47,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_NonMatchingKeyword_ReturnsEmpty()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336835: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Create_ValidTool_Returns201()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336836: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(92,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Create_DuplicateName_Returns409()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336837: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(113,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Get_ExistingTool_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336838: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(136,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Get_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336839: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(143,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Update_ChangeName_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336840: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(170,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Update_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336841: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(178,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Delete_ExistingTool_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336842: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(198,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Delete_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336843: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(207,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_ByTag_FindsCreatedTool()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336844: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(13,12): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.ToolRegistryErrorTests(ToolRegistryFixture)'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336845: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(16,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Get_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336846: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(23,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Update_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336847: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(30,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Delete_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336848: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(37,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.RemoveBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336849: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(44,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.BrowseBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336850: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(51,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.SyncBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336851: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(58,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.InstallFromBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336852: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(66,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Patch_NotSupported_Returns405()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336853: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(77,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Get_InvalidIdFormat_Returns404Or400()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336854: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(87,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Create_DuplicateName_Returns409()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336855: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(111,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.AddBucket_Duplicate_Returns409()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336856: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(130,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Search_WithWorkspace_Returns200()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336857: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(138,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.List_WithWorkspace_Returns200()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336858: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(3,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336859: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(5,16): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Id' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336860: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(6,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336861: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(7,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Description' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336862: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(8,25): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Tags' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336863: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(9,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.ParameterSchema' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336864: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(10,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.CommandTemplate' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336865: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(11,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.WorkspacePath' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336866: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(12,27): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.DateTimeCreated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336867: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(13,27): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.DateTimeModified' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336868: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(16,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336869: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(18,26): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult.Tools' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336870: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(19,16): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult.TotalCount' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336871: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(22,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336872: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(24,17): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336873: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(25,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336874: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(26,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Tool' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336875: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(29,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336876: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(31,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Id' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336877: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(32,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336878: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(33,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Owner' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336879: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(34,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Repo' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336880: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(35,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Branch' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336881: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(36,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.ManifestPath' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336882: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(37,27): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.DateTimeCreated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336883: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(38,28): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.DateTimeLastSynced' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336884: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(41,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336885: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(43,28): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult.Buckets' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336886: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(44,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult.TotalCount' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336887: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(47,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336888: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(49,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336889: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(50,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336890: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(51,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Bucket' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336891: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(54,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336892: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(56,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336893: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(57,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Description' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336894: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(58,25): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Tags' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336895: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(59,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.ParameterSchema' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336896: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(60,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.CommandTemplate' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336897: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(61,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.ManifestFile' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336898: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(64,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336899: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(66,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336900: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(67,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336901: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(68,32): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Tools' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336902: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(71,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336903: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(73,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336904: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(74,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336905: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(75,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Updated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336906: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(76,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Added' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336907: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(77,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Unchanged' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336908: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(15,12): error CS1591: Missing XML comment  +for publicly visible type or member 'ToolLifecycleSequenceTests.ToolLifecycleSequenceTests(ToolRegistryFixture, ITestOutputHelper)'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336909: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(18,23): error CS1591: Missing XML comment  +for publicly visible type or member 'ToolLifecycleSequenceTests.FullToolLifecycle_CreateThroughDelete()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336910: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(109,23): error CS1591: Missing XML  +comment for publicly visible type or member 'ToolLifecycleSequenceTests.FullBucketLifecycle_AddThroughRemove()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336911: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(8,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336912: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(9,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.ToolRoute' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336913: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.BucketRoute' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336914: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.Client' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336915: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.ToolRegistryFixture()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336916: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(27,17): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.Dispose()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:336917: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(31,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryCollection' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:394835: 9:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(9,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:394848: 9:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(14,12): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.ContextEndpointTests(ContextEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:394863: 9:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(19,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Sources_Returns200WithSourcesArray()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:394875: 9:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(31,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_EmptyQuery_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:394901: 9:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(42,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_WithQuery_Returns200WithResults()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:394932: 9:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(54,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_WithSourceTypeFilter_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:394950: 9:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(62,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_LimitClamped_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:394998: 9:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(72,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_EmptyQuery_Returns200WithPack()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:395023: 9:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(84,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_WithQueryId_Returns200WithSameQueryId()'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:395036: 9:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(95,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_WithQuery_ReturnsFilteredChunks()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:395061: 9:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(105,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.RebuildIndex_Returns200Or500()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:395084: 9:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type  +or member 'ContextEndpointCollection' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:395099: 9:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type  +or member 'ContextEndpointFixture' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:395112: 9:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:395122: 9:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.ContextRoute' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:395142: 9:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:395197: 9:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.ContextEndpointFixture()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:395221: 9:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:395353: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.CreateTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:395361: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(21,22): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:395372: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(23,28): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:395393: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(29,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_ValidRequest_Returns201()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:395414: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(62,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_DuplicateId_Returns409()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:395434: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(77,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:395450: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(91,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_WithImplementationTasks_Returns201()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:395469: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.DeleteTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:395484: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(17,23): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.Delete_ExistingItem_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:395508: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(40,23): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.Delete_NonExistentItem_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:395527: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible type  +or member 'GetTodoTests.GetTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:395561: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly visible type  +or member 'GetTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:395578: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly visible type  +or member 'GetTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:395588: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly visible type  +or member 'GetTodoTests.Get_ValidId_Returns200WithItem()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:395603: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(51,23): error CS1591: Missing XML comment for publicly visible type  +or member 'GetTodoTests.Get_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:395618: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.QueryTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:395627: 18:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.GitHubEndpointTests(GitHubEndpointFixture)' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:395633: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(17,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_NoFilters_Returns200WithValidStructure()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:395634: 18:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(20,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListIssues_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:395644: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(31,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ResponseIsJson()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:395647: 18:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(30,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListIssues_WithState_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:395652: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(40,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByPriority_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:395653: 18:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(39,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.GetIssue_ExistingNumber_Returns200Or404()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:395657: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(55,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByDoneStatus_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:395661: 18:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(50,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CreateIssue_MissingTitle_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:395668: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(69,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByKeyword_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:395674: 18:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.UpdateIssue_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:395683: 18:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(69,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CommentOnIssue_MissingBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:395686: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(81,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_BySection_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:395701: 18:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(79,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListLabels_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:395706: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(95,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ById_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:395711: 18:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(90,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListPulls_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:395717: 18:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(100,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListPulls_WithState_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:395723: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(114,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_NonMatchingKeyword_ReturnsEmptyList()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:395737: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.RequirementsTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:395739: 18:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(109,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CommentOnPull_MissingBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:395744: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:395745: 18:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(119,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CloseIssue_NonExistent_ReturnsBadRequestOr200()'  +[E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:395749: 18:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(130,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ReopenIssue_NonExistent_ReturnsBadRequestOr200()'  +[E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:395750: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:395757: 18:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(140,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncFromGitHub_Returns200Or400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:395766: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.Requirements_RegisteredItem_ReturnsResult()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:395769: 18:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(150,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncToGitHub_Returns200Or400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:395778: 18:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(160,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncSingleIssue_Returns200Or400Or404()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:395781: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.Requirements_NonExistentItem_Returns422()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:395787: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.UpdateTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:395798: 18:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointCollection' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:395801: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:395810: 18:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:395817: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:395818: 18:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:395823: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ChangeTitle_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:395828: 18:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.GhRoute' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:395836: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(50,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ToggleDone_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:395843: 18:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:395847: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(66,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ChangePriority_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:395856: 18:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.GitHubEndpointFixture()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:395861: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(82,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:395871: 18:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:395874: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(93,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:395888: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(18,12): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.TodoErrorTests(TodoEndpointFixture, ITestOutputHelper)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:395900: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(27,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Get_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:395914: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(36,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Update_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:395921: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(46,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Delete_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:395936: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(57,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Create_Duplicate_Returns409()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:395966: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(84,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Create_EmptyBody_ReturnsBadRequest()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:395982: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(97,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Update_NullBody_Returns400OrUnsupportedMedia()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:395988: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(114,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Patch_NotSupported_Returns405()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:395994: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(128,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Query_InvalidPriority_Returns200EmptyOrAll()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:396008: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(140,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Query_MultipleFilters_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:396016: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(6,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Id' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:396027: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(7,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Title' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:396039: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(8,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Section' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:396047: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(9,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Priority' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:396063: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(10,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Done' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:396083: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(11,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Estimate' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:396104: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(12,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Note' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:396119: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(13,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Description' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:396131: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(14,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.TechnicalDetails' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:396142: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(15,32): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.ImplementationTasks' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:396153: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(16,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.CompletedDate' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:396169: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(17,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.DoneSummary' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:396187: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(18,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Remaining' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:396188: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(13,12): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BucketTests(ToolRegistryFixture)' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396198: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.ListBuckets_Returns200WithValidStructure()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396205: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(19,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.PriorityNote' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:396215: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(31,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.AddBucket_ValidRequest_Returns201()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396219: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(20,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Reference' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:396225: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(52,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.AddBucket_Duplicate_Returns409()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396229: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(21,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.DependsOn' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:396235: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(73,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.RemoveBucket_Existing_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396243: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(22,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.FunctionalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:396246: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(87,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.RemoveBucket_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396254: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(23,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.TechnicalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:396261: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(96,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BrowseBucket_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396264: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(29,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatTask.Task' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:396277: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(103,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BrowseBucket_Existing_ReturnsResult()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396281: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(30,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatTask.Done' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:396288: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(36,31): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoQueryResult.Items' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:396291: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(126,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.InstallFromBucket_NonExistentBucket_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396298: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(136,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.SyncBucket_NonExistentBucket_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396299: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(37,16): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoQueryResult.TotalCount' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:396310: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(144,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.SyncBucket_Existing_Returns200Or404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396313: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(43,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Success' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:396322: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(13,12): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.ToolCrudTests(ToolRegistryFixture)' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396337: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.List_Returns200WithValidStructure()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396338: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(44,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:396345: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(45,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Item' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:396346: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(29,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.List_ResponseIsJson()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396357: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(38,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_WithKeyword_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396367: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(47,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_NonMatchingKeyword_ReturnsEmpty()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396377: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Create_ValidTool_Returns201()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396388: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(92,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Create_DuplicateName_Returns409()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396398: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(51,17): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.Success' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:396405: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(113,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Get_ExistingTool_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396411: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(52,26): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.FunctionalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:396418: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(53,26): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.TechnicalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:396419: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(136,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Get_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396425: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(54,20): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:396430: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(143,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Update_ChangeName_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396436: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(55,20): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.CopilotResponse' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:396442: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(61,20): error CS1591: Missing XML comment for publicly visible type or  +member 'ErrorResponse.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:396458: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\SequenceTests\TodoLifecycleSequenceTests.cs(18,12): error CS1591: Missing XML comment for  +publicly visible type or member 'TodoLifecycleSequenceTests.TodoLifecycleSequenceTests(TodoEndpointFixture, ITestOutputHelper)'  +[E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:396467: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\SequenceTests\TodoLifecycleSequenceTests.cs(25,23): error CS1591: Missing XML comment for  +publicly visible type or member 'TodoLifecycleSequenceTests.FullLifecycle_CreateThroughDelete()'  +[E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:396471: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(170,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Update_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396479: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\TodoEndpointFixture.cs(20,12): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoEndpointFixture.TodoEndpointFixture()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:396504: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\TodoEndpointFixture.cs(33,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:396519: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(178,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Delete_ExistingTool_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396528: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(198,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Delete_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396544: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(207,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_ByTag_FindsCreatedTool()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396555: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(13,12): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.ToolRegistryErrorTests(ToolRegistryFixture)'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396573: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(16,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Get_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396582: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(23,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Update_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396601: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(30,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Delete_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396610: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(37,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.RemoveBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396627: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(44,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.BrowseBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396641: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(51,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.SyncBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396651: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(58,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.InstallFromBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396667: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(66,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Patch_NotSupported_Returns405()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396680: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(77,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Get_InvalidIdFormat_Returns404Or400()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396693: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(87,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Create_DuplicateName_Returns409()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396705: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(111,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.AddBucket_Duplicate_Returns409()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396716: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(130,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Search_WithWorkspace_Returns200()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396734: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(138,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.List_WithWorkspace_Returns200()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396741: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(3,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396753: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(5,16): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Id' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396768: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(6,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396776: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(7,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Description' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396793: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(8,25): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Tags' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396801: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(9,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.ParameterSchema' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396811: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(10,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.CommandTemplate' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396820: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(11,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.WorkspacePath' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396828: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(12,27): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.DateTimeCreated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396839: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(13,27): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.DateTimeModified' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396862: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(16,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:396935: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(18,26): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult.Tools' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:397005: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(19,16): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult.TotalCount' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:397117: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(22,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:397149: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(24,17): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:397570: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(25,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:397640: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(26,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Tool' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:397657: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(29,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:397671: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(31,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Id' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:397682: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(32,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:397696: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(33,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Owner' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:397714: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(34,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Repo' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:397728: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(35,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Branch' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:397746: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(36,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.ManifestPath' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:397754: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(37,27): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.DateTimeCreated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:397761: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(38,28): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.DateTimeLastSynced' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:397782: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(41,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:397851: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(43,28): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult.Buckets' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:397870: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(44,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult.TotalCount' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:397878: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(47,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:397896: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(49,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:397907: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(50,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:397918: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(51,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Bucket' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:397931: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(54,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:397942: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(56,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:397953: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(57,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Description' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:397975: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(58,25): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Tags' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:397987: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(59,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.ParameterSchema' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:397992: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(60,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.CommandTemplate' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:398002: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(61,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.ManifestFile' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:398023: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(64,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:398040: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(66,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:398048: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(67,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:398055: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(68,32): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Tools' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:398084: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(71,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:398090: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(10,21): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398096: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(73,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:398103: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398109: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(74,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:398114: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialog_ToExistingEntry_Returns200WithCount()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398120: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(75,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Updated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:398126: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(70,23): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialog_MultipleAppends_AccumulatesCount()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398132: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(76,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Added' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:398146: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(115,23): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialog_NonExistentSession_Returns404()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398147: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(77,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Unchanged' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:398153: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(15,12): error CS1591: Missing XML comment  +for publicly visible type or member 'ToolLifecycleSequenceTests.ToolLifecycleSequenceTests(ToolRegistryFixture, ITestOutputHelper)'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:398157: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398165: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(18,23): error CS1591: Missing XML comment  +for publicly visible type or member 'ToolLifecycleSequenceTests.FullToolLifecycle_CreateThroughDelete()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:398171: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.QuerySessionLogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398180: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(109,23): error CS1591: Missing XML comment  +for publicly visible type or member 'ToolLifecycleSequenceTests.FullBucketLifecycle_AddThroughRemove()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:398183: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_NoFilters_Returns200WithResults()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398190: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(8,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:398196: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(30,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByAgent_Returns200Filtered()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398199: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(9,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.ToolRoute' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:398208: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(57,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByModel_Returns200Filtered()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398209: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.BucketRoute' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:398220: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(82,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByDateRange_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398230: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.Client' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:398236: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(95,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_WithPagination_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398240: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.ToolRegistryFixture()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:398241: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(107,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_NonMatchingAgent_ReturnsEmptyResults()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398246: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(27,17): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.Dispose()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:398255: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(119,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByText_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398260: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(31,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryCollection' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:398268: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398280: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.SubmitSessionLogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398291: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_MinimalSessionLog_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398303: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(44,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_FullSessionLogWithEntries_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398315: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(94,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_UpsertSameSession_Returns201WithUpdatedData()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398324: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(135,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_WithProcessingDialog_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398338: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(11,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398345: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(16,12): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.SessionLogErrorTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398356: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(19,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.Submit_MissingSourceType_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398369: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(37,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.Submit_MissingSessionId_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398382: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(55,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.Submit_EmptySourceType_Returns400()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398396: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(70,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.Submit_EmptySessionId_Returns400()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398408: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(85,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.AppendDialog_EmptyItemsList_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398420: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(94,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.Submit_InvalidJsonBody_Returns400()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398437: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(5,21): error CS1591: Missing XML comment for publicly visible  +type or member 'SubmitResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398447: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(7,41): error CS1591: Missing XML comment for publicly visible  +type or member 'SubmitResult.Id' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398458: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(8,53): error CS1591: Missing XML comment for publicly visible  +type or member 'SubmitResult.SourceType' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398467: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(9,52): error CS1591: Missing XML comment for publicly visible  +type or member 'SubmitResult.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398481: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(12,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ErrorResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398492: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(14,48): error CS1591: Missing XML comment for publicly visible  +type or member 'ErrorResult.Error' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398499: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(17,21): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398515: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(19,49): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryResult.TotalCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398523: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(20,44): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryResult.Limit' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398537: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(21,45): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryResult.Offset' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398543: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(22,62): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryResult.Items' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398553: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(25,21): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398563: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(27,41): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Id' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398581: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(28,53): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.SourceType' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398606: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(29,52): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398616: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(30,48): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Title' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398628: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(31,48): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Model' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398635: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(32,49): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398644: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(33,49): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.EntryCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398656: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(34,50): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Started' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398668: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(35,54): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.LastUpdated' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398678: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(36,58): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Entries' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398686: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(39,21): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398698: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(41,52): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.RequestId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398713: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(42,52): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.QueryText' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398726: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(43,53): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.QueryTitle' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398738: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(44,51): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.Response' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398747: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(45,49): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398760: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(46,53): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.Tags' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398773: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(47,59): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.Actions' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398785: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(48,72): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.ProcessingDialog' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398796: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(51,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398808: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(53,44): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto.Order' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398818: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(54,54): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto.Description' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398832: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(55,47): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto.Type' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398843: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(56,49): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398858: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(57,51): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto.FilePath' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398873: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(60,21): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogItemDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398884: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(62,52): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogItemDto.Timestamp' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398891: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(63,47): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogItemDto.Role' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398904: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(64,50): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogItemDto.Content' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398917: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(65,51): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogItemDto.Category' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398927: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(68,21): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogAppendResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398935: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(70,48): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogAppendResult.Agent' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398944: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(71,52): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogAppendResult.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398953: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(72,52): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogAppendResult.RequestId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398963: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(73,55): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogAppendResult.TotalDialogCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398972: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398979: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests.SessionLogLifecycleTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:398993: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests.FullLifecycle_Submit_Query_AppendDialog_Requery()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:399010: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:399019: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.SessionLogRoute' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:399029: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(13,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:399038: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(14,20): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.ApiKey' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:399049: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(16,12): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.SessionLogEndpointFixture()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:399060: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(30,17): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:399071: 16:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(34,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointCollection' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:399535: 22:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.RepoEndpointTests(RepoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:399543: 22:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(20,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.List_RootPath_Returns200WithEntries()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:399552: 22:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(30,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.List_WithPath_Returns200()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:399560: 22:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(42,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.ReadFile_MissingPath_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:399571: 22:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(51,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.ReadFile_ExistingFile_Returns200()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:399582: 22:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(60,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.ReadFile_NonExistentFile_Returns200Or400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:399593: 22:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(71,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.WriteFile_MissingPath_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:399604: 22:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(79,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.WriteFile_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:399617: 22:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(86,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.WriteFile_ValidPath_Returns200Or400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:399630: 22:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointCollection' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:399637: 22:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:399650: 22:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:399663: 22:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.RepoRoute' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:399678: 22:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:399688: 22:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.RepoEndpointFixture()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:399698: 22:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:450465: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(9,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:450466: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(14,12): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.ContextEndpointTests(ContextEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:450467: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(19,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Sources_Returns200WithSourcesArray()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:450468: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(31,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_EmptyQuery_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:450469: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(42,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_WithQuery_Returns200WithResults()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:450470: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(54,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_WithSourceTypeFilter_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:450471: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(62,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_LimitClamped_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:450472: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(72,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_EmptyQuery_Returns200WithPack()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:450473: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(84,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_WithQueryId_Returns200WithSameQueryId()'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:450474: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(95,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_WithQuery_ReturnsFilteredChunks()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:450475: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(105,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ContextEndpointTests.RebuildIndex_Returns200Or500()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:450476: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointCollection' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:450477: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:450478: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:450479: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.ContextRoute' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:450480: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:450481: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.ContextEndpointFixture()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:450482: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:450487: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.CreateTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450488: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(21,22): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450489: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(23,28): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450490: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(29,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_ValidRequest_Returns201()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450491: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(62,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_DuplicateId_Returns409()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450492: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(77,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450493: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(91,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_WithImplementationTasks_Returns201()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450494: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.DeleteTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450495: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(17,23): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.Delete_ExistingItem_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450496: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(40,23): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.Delete_NonExistentItem_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450497: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.GetTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450498: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450499: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450500: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.Get_ValidId_Returns200WithItem()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450501: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(51,23): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.Get_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450502: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.QueryTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450503: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(17,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_NoFilters_Returns200WithValidStructure()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450504: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(31,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ResponseIsJson()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450505: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(40,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByPriority_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450506: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(55,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByDoneStatus_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450507: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(69,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByKeyword_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450508: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(81,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_BySection_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450509: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(95,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ById_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450510: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(114,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_NonMatchingKeyword_ReturnsEmptyList()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450511: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.RequirementsTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450512: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450513: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450514: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.Requirements_RegisteredItem_ReturnsResult()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450515: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.Requirements_NonExistentItem_Returns422()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450516: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.UpdateTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450517: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450518: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450519: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ChangeTitle_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450520: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(50,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ToggleDone_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450521: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(66,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ChangePriority_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450522: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(82,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450523: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(93,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450524: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(18,12): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.TodoErrorTests(TodoEndpointFixture, ITestOutputHelper)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450525: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(27,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Get_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450526: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(36,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Update_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450527: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(46,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Delete_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450528: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(57,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Create_Duplicate_Returns409()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450529: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(84,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Create_EmptyBody_ReturnsBadRequest()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450530: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(97,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Update_NullBody_Returns400OrUnsupportedMedia()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450531: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(114,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Patch_NotSupported_Returns405()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450532: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(128,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Query_InvalidPriority_Returns200EmptyOrAll()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450533: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(140,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Query_MultipleFilters_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450534: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(6,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Id' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450535: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(7,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Title' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450536: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(8,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Section' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450537: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(9,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Priority' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450538: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(10,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Done' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450539: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(11,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Estimate' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450540: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(12,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Note' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450541: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(13,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Description' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450542: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(14,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.TechnicalDetails' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450543: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(15,32): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.ImplementationTasks' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450544: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(16,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.CompletedDate' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450545: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(17,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.DoneSummary' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450546: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(18,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Remaining' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450547: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(19,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.PriorityNote' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450548: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(20,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Reference' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450549: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(21,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.DependsOn' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450550: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(22,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.FunctionalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450551: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(23,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.TechnicalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450552: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(29,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatTask.Task' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450553: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(30,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatTask.Done' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450554: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(36,31): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoQueryResult.Items' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450555: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(37,16): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoQueryResult.TotalCount' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450556: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(43,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Success' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450557: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(44,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450558: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(45,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Item' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450559: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(51,17): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.Success' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450560: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(52,26): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.FunctionalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450561: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(53,26): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.TechnicalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450562: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(54,20): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450563: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(55,20): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.CopilotResponse' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450564: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(61,20): error CS1591: Missing XML comment for publicly visible type or  +member 'ErrorResponse.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450565: E:\github\McpServer\tests\McpServer.Todo.Validation\SequenceTests\TodoLifecycleSequenceTests.cs(18,12): error CS1591: Missing XML comment for  +publicly visible type or member 'TodoLifecycleSequenceTests.TodoLifecycleSequenceTests(TodoEndpointFixture, ITestOutputHelper)'  +[E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450566: E:\github\McpServer\tests\McpServer.Todo.Validation\SequenceTests\TodoLifecycleSequenceTests.cs(25,23): error CS1591: Missing XML comment for  +publicly visible type or member 'TodoLifecycleSequenceTests.FullLifecycle_CreateThroughDelete()'  +[E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450567: E:\github\McpServer\tests\McpServer.Todo.Validation\TodoEndpointFixture.cs(20,12): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoEndpointFixture.TodoEndpointFixture()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450568: E:\github\McpServer\tests\McpServer.Todo.Validation\TodoEndpointFixture.cs(33,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:450573: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.GitHubEndpointTests(GitHubEndpointFixture)' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:450574: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(20,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListIssues_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:450575: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(30,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListIssues_WithState_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:450576: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(39,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.GetIssue_ExistingNumber_Returns200Or404()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:450577: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(50,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CreateIssue_MissingTitle_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:450578: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.UpdateIssue_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:450579: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(69,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CommentOnIssue_MissingBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:450580: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(79,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListLabels_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:450581: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(90,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListPulls_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:450582: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(100,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListPulls_WithState_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:450583: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(109,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CommentOnPull_MissingBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:450584: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(119,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CloseIssue_NonExistent_ReturnsBadRequestOr200()'  +[E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:450585: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(130,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ReopenIssue_NonExistent_ReturnsBadRequestOr200()'  +[E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:450586: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(140,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncFromGitHub_Returns200Or400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:450587: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(150,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncToGitHub_Returns200Or400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:450588: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(160,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncSingleIssue_Returns200Or400Or404()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:450589: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointCollection' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:450590: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:450591: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:450592: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.GhRoute' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:450593: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:450594: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.GitHubEndpointFixture()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:450595: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:450600: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(13,12): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BucketTests(ToolRegistryFixture)' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450601: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.ListBuckets_Returns200WithValidStructure()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450602: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(31,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.AddBucket_ValidRequest_Returns201()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450603: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(52,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.AddBucket_Duplicate_Returns409()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450604: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(73,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.RemoveBucket_Existing_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450605: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(87,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.RemoveBucket_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450606: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(96,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BrowseBucket_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450607: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(103,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BrowseBucket_Existing_ReturnsResult()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450608: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(126,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.InstallFromBucket_NonExistentBucket_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450609: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(136,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.SyncBucket_NonExistentBucket_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450610: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(144,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.SyncBucket_Existing_Returns200Or404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450611: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(13,12): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.ToolCrudTests(ToolRegistryFixture)' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450612: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.List_Returns200WithValidStructure()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450613: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(29,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.List_ResponseIsJson()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450614: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(38,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_WithKeyword_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450615: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(47,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_NonMatchingKeyword_ReturnsEmpty()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450616: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Create_ValidTool_Returns201()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450617: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(92,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Create_DuplicateName_Returns409()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450618: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(113,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Get_ExistingTool_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450619: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(136,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Get_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450620: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(143,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Update_ChangeName_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450621: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(170,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Update_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450622: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(178,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Delete_ExistingTool_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450623: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(198,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Delete_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450624: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(207,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_ByTag_FindsCreatedTool()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450625: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(13,12): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.ToolRegistryErrorTests(ToolRegistryFixture)'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450626: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(16,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Get_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450627: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(23,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Update_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450628: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(30,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Delete_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450629: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(37,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.RemoveBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450630: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(44,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.BrowseBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450631: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(51,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.SyncBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450632: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(58,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.InstallFromBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450633: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(66,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Patch_NotSupported_Returns405()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450634: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(77,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Get_InvalidIdFormat_Returns404Or400()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450635: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(87,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Create_DuplicateName_Returns409()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450636: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(111,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.AddBucket_Duplicate_Returns409()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450637: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(130,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Search_WithWorkspace_Returns200()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450638: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(138,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.List_WithWorkspace_Returns200()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450639: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(3,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450640: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(5,16): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Id' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450641: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(6,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450642: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(7,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Description' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450643: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(8,25): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Tags' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450644: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(9,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.ParameterSchema' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450645: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(10,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.CommandTemplate' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450646: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(11,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.WorkspacePath' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450647: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(12,27): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.DateTimeCreated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450648: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(13,27): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.DateTimeModified' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450649: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(16,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450650: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(18,26): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult.Tools' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450651: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(19,16): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult.TotalCount' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450652: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(22,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450653: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(24,17): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450654: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(25,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450655: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(26,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Tool' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450656: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(29,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450657: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(31,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Id' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450658: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(32,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450659: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(33,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Owner' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450660: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(34,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Repo' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450661: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(35,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Branch' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450662: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(36,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.ManifestPath' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450663: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(37,27): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.DateTimeCreated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450664: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(38,28): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.DateTimeLastSynced' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450665: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(41,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450666: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(43,28): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult.Buckets' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450667: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(44,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult.TotalCount' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450668: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(47,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450669: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(49,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450670: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(50,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450671: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(51,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Bucket' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450672: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(54,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450673: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(56,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450674: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(57,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Description' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450675: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(58,25): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Tags' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450676: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(59,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.ParameterSchema' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450677: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(60,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.CommandTemplate' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450678: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(61,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.ManifestFile' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450679: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(64,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450680: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(66,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450681: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(67,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450682: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(68,32): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Tools' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450683: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(71,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450684: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(73,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450685: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(74,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450686: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(75,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Updated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450687: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(76,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Added' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450688: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(77,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Unchanged' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450689: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(15,12): error CS1591: Missing XML comment  +for publicly visible type or member 'ToolLifecycleSequenceTests.ToolLifecycleSequenceTests(ToolRegistryFixture, ITestOutputHelper)'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450690: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(18,23): error CS1591: Missing XML comment  +for publicly visible type or member 'ToolLifecycleSequenceTests.FullToolLifecycle_CreateThroughDelete()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450691: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(109,23): error CS1591: Missing XML  +comment for publicly visible type or member 'ToolLifecycleSequenceTests.FullBucketLifecycle_AddThroughRemove()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450692: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(8,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450693: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(9,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.ToolRoute' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450694: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.BucketRoute' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450695: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.Client' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450696: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.ToolRegistryFixture()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450697: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(27,17): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.Dispose()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450698: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(31,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryCollection' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:450703: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(10,21): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450704: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450705: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialog_ToExistingEntry_Returns200WithCount()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450706: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(70,23): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialog_MultipleAppends_AccumulatesCount()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450707: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(115,23): error CS1591: Missing XML comment for  +publicly visible type or member 'AppendDialogTests.AppendDialog_NonExistentSession_Returns404()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450708: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450709: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.QuerySessionLogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450710: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_NoFilters_Returns200WithResults()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450711: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(30,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByAgent_Returns200Filtered()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450712: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(57,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByModel_Returns200Filtered()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450713: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(82,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByDateRange_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450714: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(95,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_WithPagination_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450715: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(107,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_NonMatchingAgent_ReturnsEmptyResults()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450716: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(119,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByText_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450717: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450718: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.SubmitSessionLogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450719: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_MinimalSessionLog_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450720: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(44,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_FullSessionLogWithEntries_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450721: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(94,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_UpsertSameSession_Returns201WithUpdatedData()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450722: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(135,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_WithProcessingDialog_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450723: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(11,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450724: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(16,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.SessionLogErrorTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450725: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(19,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_MissingSourceType_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450726: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(37,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_MissingSessionId_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450727: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(55,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_EmptySourceType_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450728: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(70,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_EmptySessionId_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450729: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(85,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.AppendDialog_EmptyItemsList_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450730: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(94,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_InvalidJsonBody_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450731: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(5,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SubmitResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450732: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(7,41): error CS1591: Missing XML comment for publicly  +visible type or member 'SubmitResult.Id' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450733: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(8,53): error CS1591: Missing XML comment for publicly  +visible type or member 'SubmitResult.SourceType' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450734: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(9,52): error CS1591: Missing XML comment for publicly  +visible type or member 'SubmitResult.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450735: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(12,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ErrorResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450736: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(14,48): error CS1591: Missing XML comment for publicly  +visible type or member 'ErrorResult.Error' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450737: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(17,21): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450738: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(19,49): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult.TotalCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450739: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(20,44): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult.Limit' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450740: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(21,45): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult.Offset' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450741: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(22,62): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult.Items' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450742: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(25,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450743: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(27,41): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Id' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450744: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(28,53): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.SourceType' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450745: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(29,52): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450746: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(30,48): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Title' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450747: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(31,48): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Model' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450748: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(32,49): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450749: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(33,49): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.EntryCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450750: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(34,50): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Started' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450751: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(35,54): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.LastUpdated' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450752: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(36,58): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Entries' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450753: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(39,21): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450754: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(41,52): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.RequestId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450755: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(42,52): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.QueryText' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450756: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(43,53): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.QueryTitle' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450757: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(44,51): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.Response' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450758: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(45,49): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450759: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(46,53): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.Tags' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450760: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(47,59): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.Actions' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450761: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(48,72): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.ProcessingDialog' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450762: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(51,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450763: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(53,44): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.Order' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450764: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(54,54): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.Description' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450765: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(55,47): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.Type' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450766: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(56,49): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450767: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(57,51): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.FilePath' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450768: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(60,21): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450769: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(62,52): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto.Timestamp' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450770: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(63,47): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto.Role' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450771: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(64,50): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto.Content' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450772: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(65,51): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto.Category' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450773: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(68,21): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450774: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(70,48): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult.Agent' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450775: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(71,52): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450776: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(72,52): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult.RequestId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450777: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(73,55): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult.TotalDialogCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450778: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450779: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests.SessionLogLifecycleTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450780: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests.FullLifecycle_Submit_Query_AppendDialog_Requery()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450781: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450782: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.SessionLogRoute' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450783: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(13,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450784: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(14,20): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.ApiKey' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450785: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(16,12): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.SessionLogEndpointFixture()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450786: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(30,17): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450787: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(34,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointCollection' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:450792: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.RepoEndpointTests(RepoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:450793: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(20,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.List_RootPath_Returns200WithEntries()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:450794: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(30,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.List_WithPath_Returns200()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:450795: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(42,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.ReadFile_MissingPath_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:450796: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(51,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.ReadFile_ExistingFile_Returns200()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:450797: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.ReadFile_NonExistentFile_Returns200Or400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:450798: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(71,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.WriteFile_MissingPath_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:450799: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(79,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.WriteFile_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:450800: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(86,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.WriteFile_ValidPath_Returns200Or400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:450801: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointCollection' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:450802: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:450803: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:450804: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.RepoRoute' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:450805: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:450806: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.RepoEndpointFixture()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:450807: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:509509: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.RepoEndpointTests(RepoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:509528: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(20,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.List_RootPath_Returns200WithEntries()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:509543: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(30,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.List_WithPath_Returns200()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:509558: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(42,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.ReadFile_MissingPath_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:509572: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(51,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.ReadFile_ExistingFile_Returns200()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:509586: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(60,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.ReadFile_NonExistentFile_Returns200Or400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:509593: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(71,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.WriteFile_MissingPath_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:509607: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(79,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.WriteFile_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:509627: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(86,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.WriteFile_ValidPath_Returns200Or400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:509640: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointCollection' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:509676: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:509700: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:509727: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.RepoRoute' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:509738: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:509756: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.RepoEndpointFixture()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:509768: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:509947: 2:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(9,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:509963: 2:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(14,12): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.ContextEndpointTests(ContextEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:509975: 2:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(19,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Sources_Returns200WithSourcesArray()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:509997: 2:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(31,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_EmptyQuery_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:510015: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.CreateTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510019: 2:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(42,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_WithQuery_Returns200WithResults()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:510031: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(21,22): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510034: 2:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(54,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_WithSourceTypeFilter_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:510041: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(23,28): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510047: 2:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(62,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_LimitClamped_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:510054: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(29,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_ValidRequest_Returns201()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510059: 2:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(72,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_EmptyQuery_Returns200WithPack()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:510065: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(62,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_DuplicateId_Returns409()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510070: 2:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(84,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_WithQueryId_Returns200WithSameQueryId()'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:510096: 2:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(95,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_WithQuery_ReturnsFilteredChunks()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:510097: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(77,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510104: 2:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(105,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.RebuildIndex_Returns200Or500()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:510108: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(91,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_WithImplementationTasks_Returns201()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510117: 2:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type  +or member 'ContextEndpointCollection' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:510125: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.DeleteTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510129: 2:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type  +or member 'ContextEndpointFixture' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:510136: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(17,23): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.Delete_ExistingItem_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510149: 2:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:510156: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(40,23): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.Delete_NonExistentItem_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510161: 2:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.ContextRoute' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:510173: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible type  +or member 'GetTodoTests.GetTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510177: 2:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:510183: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly visible type  +or member 'GetTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510186: 2:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.ContextEndpointFixture()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:510190: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly visible type  +or member 'GetTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510194: 2:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:510206: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly visible type  +or member 'GetTodoTests.Get_ValidId_Returns200WithItem()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510215: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(51,23): error CS1591: Missing XML comment for publicly visible type  +or member 'GetTodoTests.Get_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510222: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.QueryTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510238: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(17,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_NoFilters_Returns200WithValidStructure()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510250: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(31,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ResponseIsJson()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510266: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(40,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByPriority_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510275: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(55,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByDoneStatus_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510289: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(69,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByKeyword_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510308: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(81,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_BySection_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510326: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(95,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ById_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510341: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(114,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_NonMatchingKeyword_ReturnsEmptyList()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510356: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.RequirementsTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510373: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510381: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510397: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.Requirements_RegisteredItem_ReturnsResult()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510423: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.Requirements_NonExistentItem_Returns422()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510442: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.UpdateTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510457: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.GitHubEndpointTests(GitHubEndpointFixture)' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:510458: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510466: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(20,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListIssues_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:510470: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510477: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ChangeTitle_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510478: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(30,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListIssues_WithState_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:510485: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(50,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ToggleDone_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510490: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(39,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.GetIssue_ExistingNumber_Returns200Or404()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:510497: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(50,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CreateIssue_MissingTitle_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:510503: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.UpdateIssue_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:510507: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(66,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ChangePriority_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510518: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(82,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510526: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(93,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510535: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(18,12): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.TodoErrorTests(TodoEndpointFixture, ITestOutputHelper)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510543: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(69,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CommentOnIssue_MissingBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:510548: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(27,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Get_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510555: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(36,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Update_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510558: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(79,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListLabels_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:510565: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(90,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListPulls_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:510577: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(100,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListPulls_WithState_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:510579: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(46,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Delete_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510582: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(109,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CommentOnPull_MissingBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:510606: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(119,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CloseIssue_NonExistent_ReturnsBadRequestOr200()'  +[E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:510610: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(130,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ReopenIssue_NonExistent_ReturnsBadRequestOr200()'  +[E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:510621: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(140,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncFromGitHub_Returns200Or400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:510634: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(150,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncToGitHub_Returns200Or400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:510646: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(160,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncSingleIssue_Returns200Or400Or404()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:510647: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(57,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Create_Duplicate_Returns409()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510658: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(84,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Create_EmptyBody_ReturnsBadRequest()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510667: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointCollection' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:510673: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(97,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Update_NullBody_Returns400OrUnsupportedMedia()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510674: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:510683: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:510686: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(114,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Patch_NotSupported_Returns405()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510697: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(128,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Query_InvalidPriority_Returns200EmptyOrAll()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510698: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.GhRoute' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:510708: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:510709: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(140,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Query_MultipleFilters_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510718: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(6,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Id' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510725: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(7,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Title' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510737: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.GitHubEndpointFixture()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:510743: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(8,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Section' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510749: 16:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:510750: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(9,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Priority' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510762: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(10,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Done' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510783: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(11,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Estimate' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510798: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(12,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Note' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510809: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(13,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Description' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510826: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(14,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.TechnicalDetails' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510835: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(15,32): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.ImplementationTasks' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510850: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(16,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.CompletedDate' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510862: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(17,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.DoneSummary' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510871: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(18,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Remaining' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510878: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(19,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.PriorityNote' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510902: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(20,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Reference' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510917: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(21,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.DependsOn' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510931: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(22,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.FunctionalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510939: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(23,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.TechnicalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510947: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(29,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatTask.Task' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510954: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(30,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatTask.Done' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510978: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(36,31): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoQueryResult.Items' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:510992: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(37,16): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoQueryResult.TotalCount' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:511003: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(43,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Success' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:511013: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(44,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:511032: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(45,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Item' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:511049: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(51,17): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.Success' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:511062: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(52,26): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.FunctionalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:511077: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(53,26): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.TechnicalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:511083: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(54,20): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:511088: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(55,20): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.CopilotResponse' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:511092: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(61,20): error CS1591: Missing XML comment for publicly visible type or  +member 'ErrorResponse.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:511106: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\SequenceTests\TodoLifecycleSequenceTests.cs(18,12): error CS1591: Missing XML comment for  +publicly visible type or member 'TodoLifecycleSequenceTests.TodoLifecycleSequenceTests(TodoEndpointFixture, ITestOutputHelper)'  +[E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:511112: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\SequenceTests\TodoLifecycleSequenceTests.cs(25,23): error CS1591: Missing XML comment for  +publicly visible type or member 'TodoLifecycleSequenceTests.FullLifecycle_CreateThroughDelete()'  +[E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:511119: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\TodoEndpointFixture.cs(20,12): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoEndpointFixture.TodoEndpointFixture()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:511130: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\TodoEndpointFixture.cs(33,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:511675: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(13,12): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BucketTests(ToolRegistryFixture)' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:511679: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.ListBuckets_Returns200WithValidStructure()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:511689: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(31,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.AddBucket_ValidRequest_Returns201()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:511695: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(52,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.AddBucket_Duplicate_Returns409()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:511701: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(73,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.RemoveBucket_Existing_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:511702: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(87,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.RemoveBucket_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:511711: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(96,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BrowseBucket_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:511724: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(103,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BrowseBucket_Existing_ReturnsResult()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:511731: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(126,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.InstallFromBucket_NonExistentBucket_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:511740: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(136,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.SyncBucket_NonExistentBucket_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:511744: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(144,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.SyncBucket_Existing_Returns200Or404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:511752: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(13,12): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.ToolCrudTests(ToolRegistryFixture)' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:511759: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.List_Returns200WithValidStructure()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:511764: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(29,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.List_ResponseIsJson()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:511772: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(38,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_WithKeyword_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:511777: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(47,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_NonMatchingKeyword_ReturnsEmpty()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:511789: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Create_ValidTool_Returns201()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:511798: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(92,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Create_DuplicateName_Returns409()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:511805: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(113,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Get_ExistingTool_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:511819: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(136,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Get_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:511826: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(143,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Update_ChangeName_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512034: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(170,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Update_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512048: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(178,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Delete_ExistingTool_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512055: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(198,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Delete_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512062: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(207,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_ByTag_FindsCreatedTool()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512066: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(13,12): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.ToolRegistryErrorTests(ToolRegistryFixture)'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512076: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(16,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Get_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512078: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(23,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Update_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512086: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(30,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Delete_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512090: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(37,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.RemoveBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512099: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(44,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.BrowseBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512126: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(51,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.SyncBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512136: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(58,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.InstallFromBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512150: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(66,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Patch_NotSupported_Returns405()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512157: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(77,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Get_InvalidIdFormat_Returns404Or400()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512166: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(87,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Create_DuplicateName_Returns409()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512186: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(111,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.AddBucket_Duplicate_Returns409()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512193: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(130,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Search_WithWorkspace_Returns200()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512204: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(138,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.List_WithWorkspace_Returns200()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512211: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(3,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512218: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(5,16): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Id' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512222: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(6,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512231: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(7,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Description' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512246: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(8,25): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Tags' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512261: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(9,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.ParameterSchema' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512268: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(10,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.CommandTemplate' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512271: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(11,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.WorkspacePath' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512282: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(12,27): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.DateTimeCreated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512304: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(13,27): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.DateTimeModified' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512311: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(16,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512324: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(18,26): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult.Tools' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512341: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(19,16): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult.TotalCount' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512351: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(22,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512354: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(24,17): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512359: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(25,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512367: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(26,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Tool' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512376: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(29,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512381: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(31,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Id' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512397: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(32,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512404: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(33,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Owner' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512409: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(34,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Repo' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512415: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(35,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Branch' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512426: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(36,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.ManifestPath' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512447: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(37,27): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.DateTimeCreated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512452: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(38,28): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.DateTimeLastSynced' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512464: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(41,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512475: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(43,28): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult.Buckets' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512481: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(44,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult.TotalCount' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512495: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(47,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512505: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(49,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512515: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(50,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512521: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(51,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Bucket' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512532: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(54,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512543: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(56,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512549: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(57,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Description' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512557: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(58,25): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Tags' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512568: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(59,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.ParameterSchema' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512573: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(60,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.CommandTemplate' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512583: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(61,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.ManifestFile' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512598: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(64,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512609: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(66,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512624: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(67,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512634: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(68,32): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Tools' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512641: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(71,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512650: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(73,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512653: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(74,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512665: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(75,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Updated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512671: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(76,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Added' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512672: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(77,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Unchanged' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512674: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(10,21): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:512677: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(15,12): error CS1591: Missing XML comment  +for publicly visible type or member 'ToolLifecycleSequenceTests.ToolLifecycleSequenceTests(ToolRegistryFixture, ITestOutputHelper)'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512678: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:512686: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialog_ToExistingEntry_Returns200WithCount()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:512687: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(18,23): error CS1591: Missing XML comment  +for publicly visible type or member 'ToolLifecycleSequenceTests.FullToolLifecycle_CreateThroughDelete()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512691: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(70,23): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialog_MultipleAppends_AccumulatesCount()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:512693: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(109,23): error CS1591: Missing XML comment  +for publicly visible type or member 'ToolLifecycleSequenceTests.FullBucketLifecycle_AddThroughRemove()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512698: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(115,23): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialog_NonExistentSession_Returns404()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:512699: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(8,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512706: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:512707: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(9,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.ToolRoute' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512713: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.QuerySessionLogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:512714: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.BucketRoute' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512718: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.Client' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512721: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_NoFilters_Returns200WithResults()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:512724: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.ToolRegistryFixture()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512730: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(30,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByAgent_Returns200Filtered()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:512732: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(27,17): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.Dispose()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512735: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(57,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByModel_Returns200Filtered()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:512737: 19:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(31,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryCollection' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:512745: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(82,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByDateRange_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:512761: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(95,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_WithPagination_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:512766: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(107,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_NonMatchingAgent_ReturnsEmptyResults()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:512776: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(119,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByText_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:512788: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:512800: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.SubmitSessionLogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:512805: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_MinimalSessionLog_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:512816: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(44,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_FullSessionLogWithEntries_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:512821: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(94,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_UpsertSameSession_Returns201WithUpdatedData()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:512826: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(135,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_WithProcessingDialog_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:512833: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(11,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:512846: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(16,12): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.SessionLogErrorTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:512854: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(19,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.Submit_MissingSourceType_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:512861: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(37,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.Submit_MissingSessionId_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:512868: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(55,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.Submit_EmptySourceType_Returns400()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:512875: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(70,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.Submit_EmptySessionId_Returns400()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:512884: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(85,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.AppendDialog_EmptyItemsList_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:512890: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(94,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.Submit_InvalidJsonBody_Returns400()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:512898: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(5,21): error CS1591: Missing XML comment for publicly visible  +type or member 'SubmitResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:512902: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(7,41): error CS1591: Missing XML comment for publicly visible  +type or member 'SubmitResult.Id' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:512906: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(8,53): error CS1591: Missing XML comment for publicly visible  +type or member 'SubmitResult.SourceType' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:512911: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(9,52): error CS1591: Missing XML comment for publicly visible  +type or member 'SubmitResult.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:512916: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(12,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ErrorResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:512927: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(14,48): error CS1591: Missing XML comment for publicly visible  +type or member 'ErrorResult.Error' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:512939: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(17,21): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:512942: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(19,49): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryResult.TotalCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:512957: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(20,44): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryResult.Limit' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:512968: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(21,45): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryResult.Offset' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:512974: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(22,62): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryResult.Items' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:512979: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(25,21): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:512983: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(27,41): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Id' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:512988: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(28,53): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.SourceType' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:512990: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(29,52): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:513000: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(30,48): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Title' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:513006: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(31,48): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Model' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:513013: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(32,49): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:513019: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(33,49): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.EntryCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:513023: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(34,50): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Started' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:513028: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(35,54): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.LastUpdated' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:513044: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(36,58): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Entries' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:513046: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(39,21): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:513053: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(41,52): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.RequestId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:513066: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(42,52): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.QueryText' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:513078: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(43,53): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.QueryTitle' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:513090: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(44,51): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.Response' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:513099: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(45,49): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:513126: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(46,53): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.Tags' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:513131: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(47,59): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.Actions' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:513133: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(48,72): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.ProcessingDialog' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:513146: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(51,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:513166: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(53,44): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto.Order' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:513184: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(54,54): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto.Description' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:513190: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(55,47): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto.Type' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:513200: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(56,49): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:513211: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(57,51): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto.FilePath' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:513215: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(60,21): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogItemDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:513223: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(62,52): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogItemDto.Timestamp' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:513236: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(63,47): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogItemDto.Role' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:513247: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(64,50): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogItemDto.Content' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:513254: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(65,51): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogItemDto.Category' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:513258: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(68,21): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogAppendResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:513265: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(70,48): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogAppendResult.Agent' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:513272: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(71,52): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogAppendResult.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:513278: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(72,52): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogAppendResult.RequestId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:513285: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(73,55): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogAppendResult.TotalDialogCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:513299: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:513310: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests.SessionLogLifecycleTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:513315: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests.FullLifecycle_Submit_Query_AppendDialog_Requery()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:513329: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:513333: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.SessionLogRoute' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:513338: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(13,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:513359: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(14,20): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.ApiKey' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:513373: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(16,12): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.SessionLogEndpointFixture()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:513383: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(30,17): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:513392: 22:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(34,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointCollection' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563278: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.RepoEndpointTests(RepoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:563279: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(20,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.List_RootPath_Returns200WithEntries()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:563280: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(30,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.List_WithPath_Returns200()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:563281: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(42,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.ReadFile_MissingPath_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:563282: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(51,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.ReadFile_ExistingFile_Returns200()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:563283: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.ReadFile_NonExistentFile_Returns200Or400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:563284: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(71,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.WriteFile_MissingPath_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:563285: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(79,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.WriteFile_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:563286: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(86,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.WriteFile_ValidPath_Returns200Or400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:563287: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointCollection' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:563288: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:563289: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:563290: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.RepoRoute' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:563291: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:563292: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.RepoEndpointFixture()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:563293: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:563298: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(9,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:563299: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(14,12): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.ContextEndpointTests(ContextEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:563300: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(19,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Sources_Returns200WithSourcesArray()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:563301: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(31,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_EmptyQuery_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:563302: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(42,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_WithQuery_Returns200WithResults()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:563303: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(54,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_WithSourceTypeFilter_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:563304: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(62,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_LimitClamped_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:563305: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(72,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_EmptyQuery_Returns200WithPack()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:563306: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(84,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_WithQueryId_Returns200WithSameQueryId()'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:563307: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(95,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_WithQuery_ReturnsFilteredChunks()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:563308: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(105,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ContextEndpointTests.RebuildIndex_Returns200Or500()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:563309: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointCollection' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:563310: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:563311: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:563312: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.ContextRoute' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:563313: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:563314: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.ContextEndpointFixture()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:563315: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:563320: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.CreateTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563321: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(21,22): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563322: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(23,28): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563323: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(29,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_ValidRequest_Returns201()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563324: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(62,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_DuplicateId_Returns409()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563325: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(77,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563326: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(91,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_WithImplementationTasks_Returns201()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563327: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.DeleteTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563328: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(17,23): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.Delete_ExistingItem_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563329: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(40,23): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.Delete_NonExistentItem_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563330: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.GetTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563331: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563332: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563333: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.Get_ValidId_Returns200WithItem()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563334: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(51,23): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.Get_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563335: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.QueryTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563336: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(17,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_NoFilters_Returns200WithValidStructure()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563337: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(31,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ResponseIsJson()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563338: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(40,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByPriority_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563339: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(55,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByDoneStatus_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563340: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(69,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByKeyword_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563341: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(81,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_BySection_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563342: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(95,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ById_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563343: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(114,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_NonMatchingKeyword_ReturnsEmptyList()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563344: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.RequirementsTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563345: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563346: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563347: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.Requirements_RegisteredItem_ReturnsResult()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563348: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.Requirements_NonExistentItem_Returns422()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563349: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.UpdateTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563350: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563351: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563352: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ChangeTitle_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563353: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(50,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ToggleDone_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563354: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(66,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ChangePriority_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563355: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(82,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563356: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(93,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563357: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(18,12): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.TodoErrorTests(TodoEndpointFixture, ITestOutputHelper)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563358: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(27,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Get_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563359: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(36,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Update_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563360: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(46,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Delete_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563361: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(57,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Create_Duplicate_Returns409()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563362: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(84,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Create_EmptyBody_ReturnsBadRequest()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563363: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(97,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Update_NullBody_Returns400OrUnsupportedMedia()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563364: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(114,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Patch_NotSupported_Returns405()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563365: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(128,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Query_InvalidPriority_Returns200EmptyOrAll()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563366: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(140,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Query_MultipleFilters_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563367: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(6,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Id' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563368: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(7,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Title' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563369: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(8,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Section' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563370: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(9,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Priority' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563371: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(10,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Done' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563372: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(11,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Estimate' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563373: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(12,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Note' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563374: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(13,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Description' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563375: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(14,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.TechnicalDetails' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563376: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(15,32): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.ImplementationTasks' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563377: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(16,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.CompletedDate' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563378: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(17,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.DoneSummary' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563379: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(18,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Remaining' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563380: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(19,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.PriorityNote' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563381: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(20,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Reference' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563382: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(21,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.DependsOn' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563383: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(22,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.FunctionalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563384: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(23,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.TechnicalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563385: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(29,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatTask.Task' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563386: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(30,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatTask.Done' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563387: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(36,31): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoQueryResult.Items' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563388: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(37,16): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoQueryResult.TotalCount' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563389: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(43,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Success' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563390: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(44,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563391: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(45,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Item' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563392: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(51,17): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.Success' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563393: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(52,26): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.FunctionalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563394: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(53,26): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.TechnicalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563395: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(54,20): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563396: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(55,20): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.CopilotResponse' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563397: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(61,20): error CS1591: Missing XML comment for publicly visible type or  +member 'ErrorResponse.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563398: E:\github\McpServer\tests\McpServer.Todo.Validation\SequenceTests\TodoLifecycleSequenceTests.cs(18,12): error CS1591: Missing XML comment for  +publicly visible type or member 'TodoLifecycleSequenceTests.TodoLifecycleSequenceTests(TodoEndpointFixture, ITestOutputHelper)'  +[E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563399: E:\github\McpServer\tests\McpServer.Todo.Validation\SequenceTests\TodoLifecycleSequenceTests.cs(25,23): error CS1591: Missing XML comment for  +publicly visible type or member 'TodoLifecycleSequenceTests.FullLifecycle_CreateThroughDelete()'  +[E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563400: E:\github\McpServer\tests\McpServer.Todo.Validation\TodoEndpointFixture.cs(20,12): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoEndpointFixture.TodoEndpointFixture()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563401: E:\github\McpServer\tests\McpServer.Todo.Validation\TodoEndpointFixture.cs(33,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:563406: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.GitHubEndpointTests(GitHubEndpointFixture)' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:563407: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(20,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListIssues_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:563408: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(30,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListIssues_WithState_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:563409: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(39,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.GetIssue_ExistingNumber_Returns200Or404()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:563410: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(50,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CreateIssue_MissingTitle_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:563411: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.UpdateIssue_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:563412: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(69,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CommentOnIssue_MissingBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:563413: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(79,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListLabels_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:563414: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(90,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListPulls_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:563415: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(100,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListPulls_WithState_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:563416: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(109,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CommentOnPull_MissingBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:563417: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(119,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CloseIssue_NonExistent_ReturnsBadRequestOr200()'  +[E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:563418: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(130,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ReopenIssue_NonExistent_ReturnsBadRequestOr200()'  +[E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:563419: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(140,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncFromGitHub_Returns200Or400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:563420: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(150,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncToGitHub_Returns200Or400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:563421: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(160,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncSingleIssue_Returns200Or400Or404()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:563422: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointCollection' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:563423: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:563424: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:563425: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.GhRoute' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:563426: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:563427: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.GitHubEndpointFixture()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:563428: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:563433: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(13,12): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BucketTests(ToolRegistryFixture)' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563434: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.ListBuckets_Returns200WithValidStructure()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563435: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(31,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.AddBucket_ValidRequest_Returns201()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563436: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(52,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.AddBucket_Duplicate_Returns409()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563437: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(73,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.RemoveBucket_Existing_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563438: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(87,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.RemoveBucket_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563439: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(96,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BrowseBucket_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563440: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(103,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BrowseBucket_Existing_ReturnsResult()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563441: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(126,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.InstallFromBucket_NonExistentBucket_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563442: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(136,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.SyncBucket_NonExistentBucket_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563443: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(144,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.SyncBucket_Existing_Returns200Or404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563444: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(13,12): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.ToolCrudTests(ToolRegistryFixture)' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563445: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.List_Returns200WithValidStructure()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563446: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(29,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.List_ResponseIsJson()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563447: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(38,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_WithKeyword_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563448: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(47,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_NonMatchingKeyword_ReturnsEmpty()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563449: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Create_ValidTool_Returns201()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563450: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(92,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Create_DuplicateName_Returns409()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563451: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(113,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Get_ExistingTool_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563452: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(136,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Get_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563453: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(143,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Update_ChangeName_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563454: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(170,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Update_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563455: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(178,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Delete_ExistingTool_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563456: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(198,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Delete_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563457: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(207,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_ByTag_FindsCreatedTool()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563458: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(13,12): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.ToolRegistryErrorTests(ToolRegistryFixture)'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563459: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(16,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Get_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563460: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(23,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Update_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563461: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(30,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Delete_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563462: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(37,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.RemoveBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563463: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(44,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.BrowseBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563464: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(51,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.SyncBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563465: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(58,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.InstallFromBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563466: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(66,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Patch_NotSupported_Returns405()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563467: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(77,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Get_InvalidIdFormat_Returns404Or400()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563468: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(87,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Create_DuplicateName_Returns409()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563469: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(111,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.AddBucket_Duplicate_Returns409()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563470: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(130,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Search_WithWorkspace_Returns200()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563471: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(138,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.List_WithWorkspace_Returns200()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563472: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(3,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563473: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(5,16): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Id' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563474: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(6,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563475: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(7,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Description' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563476: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(8,25): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Tags' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563477: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(9,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.ParameterSchema' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563478: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(10,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.CommandTemplate' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563479: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(11,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.WorkspacePath' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563480: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(12,27): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.DateTimeCreated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563481: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(13,27): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.DateTimeModified' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563482: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(16,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563483: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(18,26): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult.Tools' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563484: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(19,16): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult.TotalCount' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563485: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(22,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563486: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(24,17): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563487: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(25,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563488: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(26,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Tool' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563489: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(29,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563490: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(31,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Id' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563491: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(32,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563492: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(33,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Owner' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563493: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(34,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Repo' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563494: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(35,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Branch' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563495: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(36,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.ManifestPath' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563496: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(37,27): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.DateTimeCreated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563497: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(38,28): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.DateTimeLastSynced' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563498: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(41,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563499: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(43,28): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult.Buckets' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563500: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(44,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult.TotalCount' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563501: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(47,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563502: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(49,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563503: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(50,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563504: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(51,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Bucket' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563505: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(54,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563506: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(56,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563507: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(57,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Description' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563508: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(58,25): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Tags' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563509: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(59,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.ParameterSchema' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563510: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(60,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.CommandTemplate' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563511: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(61,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.ManifestFile' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563512: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(64,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563513: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(66,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563514: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(67,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563515: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(68,32): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Tools' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563516: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(71,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563517: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(73,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563518: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(74,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563519: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(75,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Updated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563520: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(76,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Added' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563521: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(77,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Unchanged' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563522: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(15,12): error CS1591: Missing XML comment  +for publicly visible type or member 'ToolLifecycleSequenceTests.ToolLifecycleSequenceTests(ToolRegistryFixture, ITestOutputHelper)'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563523: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(18,23): error CS1591: Missing XML comment  +for publicly visible type or member 'ToolLifecycleSequenceTests.FullToolLifecycle_CreateThroughDelete()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563524: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(109,23): error CS1591: Missing XML  +comment for publicly visible type or member 'ToolLifecycleSequenceTests.FullBucketLifecycle_AddThroughRemove()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563525: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(8,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563526: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(9,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.ToolRoute' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563527: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.BucketRoute' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563528: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.Client' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563529: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.ToolRegistryFixture()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563530: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(27,17): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.Dispose()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563531: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(31,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryCollection' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:563536: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(10,21): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563537: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563538: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialog_ToExistingEntry_Returns200WithCount()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563539: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(70,23): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialog_MultipleAppends_AccumulatesCount()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563540: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(115,23): error CS1591: Missing XML comment for  +publicly visible type or member 'AppendDialogTests.AppendDialog_NonExistentSession_Returns404()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563541: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563542: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.QuerySessionLogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563543: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_NoFilters_Returns200WithResults()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563544: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(30,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByAgent_Returns200Filtered()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563545: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(57,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByModel_Returns200Filtered()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563546: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(82,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByDateRange_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563547: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(95,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_WithPagination_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563548: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(107,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_NonMatchingAgent_ReturnsEmptyResults()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563549: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(119,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByText_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563550: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563551: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.SubmitSessionLogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563552: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_MinimalSessionLog_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563553: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(44,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_FullSessionLogWithEntries_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563554: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(94,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_UpsertSameSession_Returns201WithUpdatedData()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563555: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(135,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_WithProcessingDialog_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563556: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(11,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563557: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(16,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.SessionLogErrorTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563558: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(19,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_MissingSourceType_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563559: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(37,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_MissingSessionId_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563560: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(55,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_EmptySourceType_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563561: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(70,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_EmptySessionId_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563562: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(85,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.AppendDialog_EmptyItemsList_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563563: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(94,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_InvalidJsonBody_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563564: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(5,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SubmitResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563565: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(7,41): error CS1591: Missing XML comment for publicly  +visible type or member 'SubmitResult.Id' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563566: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(8,53): error CS1591: Missing XML comment for publicly  +visible type or member 'SubmitResult.SourceType' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563567: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(9,52): error CS1591: Missing XML comment for publicly  +visible type or member 'SubmitResult.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563568: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(12,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ErrorResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563569: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(14,48): error CS1591: Missing XML comment for publicly  +visible type or member 'ErrorResult.Error' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563570: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(17,21): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563571: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(19,49): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult.TotalCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563572: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(20,44): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult.Limit' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563573: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(21,45): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult.Offset' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563574: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(22,62): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult.Items' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563575: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(25,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563576: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(27,41): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Id' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563577: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(28,53): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.SourceType' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563578: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(29,52): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563579: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(30,48): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Title' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563580: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(31,48): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Model' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563581: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(32,49): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563582: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(33,49): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.EntryCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563583: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(34,50): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Started' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563584: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(35,54): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.LastUpdated' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563585: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(36,58): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Entries' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563586: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(39,21): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563587: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(41,52): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.RequestId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563588: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(42,52): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.QueryText' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563589: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(43,53): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.QueryTitle' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563590: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(44,51): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.Response' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563591: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(45,49): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563592: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(46,53): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.Tags' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563593: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(47,59): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.Actions' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563594: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(48,72): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.ProcessingDialog' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563595: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(51,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563596: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(53,44): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.Order' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563597: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(54,54): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.Description' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563598: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(55,47): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.Type' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563599: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(56,49): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563600: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(57,51): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.FilePath' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563601: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(60,21): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563602: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(62,52): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto.Timestamp' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563603: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(63,47): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto.Role' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563604: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(64,50): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto.Content' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563605: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(65,51): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto.Category' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563606: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(68,21): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563607: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(70,48): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult.Agent' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563608: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(71,52): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563609: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(72,52): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult.RequestId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563610: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(73,55): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult.TotalDialogCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563611: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563612: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests.SessionLogLifecycleTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563613: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests.FullLifecycle_Submit_Query_AppendDialog_Requery()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563614: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563615: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.SessionLogRoute' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563616: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(13,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563617: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(14,20): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.ApiKey' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563618: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(16,12): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.SessionLogEndpointFixture()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563619: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(30,17): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:563620: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(34,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointCollection' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:618801: 18:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.GitHubEndpointTests(GitHubEndpointFixture)' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:618815: 18:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(20,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListIssues_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:618831: 18:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(30,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListIssues_WithState_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:618850: 18:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(39,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.GetIssue_ExistingNumber_Returns200Or404()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:618863: 18:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(50,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CreateIssue_MissingTitle_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:618881: 18:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.UpdateIssue_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:618905: 18:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(69,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CommentOnIssue_MissingBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:618929: 18:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(79,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListLabels_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:618955: 18:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(90,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListPulls_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:618975: 18:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(100,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListPulls_WithState_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:618991: 18:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(109,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CommentOnPull_MissingBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:619025: 18:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(119,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CloseIssue_NonExistent_ReturnsBadRequestOr200()'  +[E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:619040: 18:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(130,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ReopenIssue_NonExistent_ReturnsBadRequestOr200()'  +[E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:619052: 18:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(140,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncFromGitHub_Returns200Or400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:619068: 18:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(150,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncToGitHub_Returns200Or400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:619084: 18:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(160,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncSingleIssue_Returns200Or400Or404()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:619099: 18:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointCollection' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:619101: 18:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:619129: 18:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:619155: 18:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.GhRoute' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:619160: 18:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:619175: 18:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.GitHubEndpointFixture()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:619183: 18:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:620656: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.RepoEndpointTests(RepoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:620670: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(20,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.List_RootPath_Returns200WithEntries()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:620679: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(30,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.List_WithPath_Returns200()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:620701: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(42,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.ReadFile_MissingPath_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:620713: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(51,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.ReadFile_ExistingFile_Returns200()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:620720: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(60,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.ReadFile_NonExistentFile_Returns200Or400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:620839: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(71,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.WriteFile_MissingPath_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:620847: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(79,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.WriteFile_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:620864: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(86,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.WriteFile_ValidPath_Returns200Or400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:620894: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointCollection' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:620906: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:620919: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:620934: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.RepoRoute' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:620943: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:620950: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.RepoEndpointFixture()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:620958: 17:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:622358: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(13,12): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BucketTests(ToolRegistryFixture)' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:622375: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.ListBuckets_Returns200WithValidStructure()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:622395: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(31,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.AddBucket_ValidRequest_Returns201()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:622415: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(52,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.AddBucket_Duplicate_Returns409()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:622631: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(73,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.RemoveBucket_Existing_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:622653: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(87,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.RemoveBucket_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:622664: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(96,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BrowseBucket_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:622678: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(103,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BrowseBucket_Existing_ReturnsResult()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:622691: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(126,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.InstallFromBucket_NonExistentBucket_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:622710: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(136,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.SyncBucket_NonExistentBucket_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:622728: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(144,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.SyncBucket_Existing_Returns200Or404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:622745: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(13,12): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.ToolCrudTests(ToolRegistryFixture)' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:622763: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.List_Returns200WithValidStructure()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:622817: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(29,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.List_ResponseIsJson()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:622829: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(38,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_WithKeyword_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:622850: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(47,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_NonMatchingKeyword_ReturnsEmpty()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:622863: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Create_ValidTool_Returns201()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:622881: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(92,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Create_DuplicateName_Returns409()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:622892: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(113,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Get_ExistingTool_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:622918: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(136,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Get_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:622935: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(143,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Update_ChangeName_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:622945: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(170,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Update_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:622957: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(178,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Delete_ExistingTool_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:622974: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(198,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Delete_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:622986: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(207,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_ByTag_FindsCreatedTool()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:622998: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(13,12): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.ToolRegistryErrorTests(ToolRegistryFixture)'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:623023: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(16,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Get_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:623038: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(23,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Update_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:623055: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(30,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Delete_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:623069: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(37,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.RemoveBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:623089: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(44,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.BrowseBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:623111: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(51,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.SyncBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:623122: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(58,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.InstallFromBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:623131: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(66,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Patch_NotSupported_Returns405()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:623142: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(77,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Get_InvalidIdFormat_Returns404Or400()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:623146: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(87,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Create_DuplicateName_Returns409()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:623167: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(111,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.AddBucket_Duplicate_Returns409()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:623179: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(130,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Search_WithWorkspace_Returns200()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:623187: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(138,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.List_WithWorkspace_Returns200()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:623206: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(3,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:623215: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(5,16): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Id' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:623241: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(6,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:623252: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(7,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Description' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:623286: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(8,25): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Tags' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:623303: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(9,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.ParameterSchema' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:623316: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(10,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.CommandTemplate' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:623325: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(10,21): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:623555: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(11,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.WorkspacePath' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:623560: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:623571: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(12,27): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.DateTimeCreated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:623582: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialog_ToExistingEntry_Returns200WithCount()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:623584: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(13,27): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.DateTimeModified' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:623591: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(70,23): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialog_MultipleAppends_AccumulatesCount()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:623614: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(115,23): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialog_NonExistentSession_Returns404()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:623615: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(16,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:623684: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(18,26): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult.Tools' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:623702: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:623754: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(19,16): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult.TotalCount' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:623831: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.QuerySessionLogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:623839: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(22,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:623948: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(24,17): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:623990: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_NoFilters_Returns200WithResults()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624005: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(25,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:624063: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(26,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Tool' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:624070: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(30,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByAgent_Returns200Filtered()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624106: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(57,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByModel_Returns200Filtered()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624110: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(29,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:624147: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(82,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByDateRange_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624172: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(31,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Id' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:624196: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(95,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_WithPagination_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624198: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(32,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:624209: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(107,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_NonMatchingAgent_ReturnsEmptyResults()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624210: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(33,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Owner' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:624213: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(119,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByText_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624225: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(34,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Repo' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:624237: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624238: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(35,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Branch' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:624253: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.SubmitSessionLogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624261: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(36,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.ManifestPath' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:624264: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_MinimalSessionLog_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624275: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(37,27): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.DateTimeCreated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:624276: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(44,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_FullSessionLogWithEntries_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624293: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(94,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_UpsertSameSession_Returns201WithUpdatedData()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624296: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(38,28): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.DateTimeLastSynced' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:624311: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(41,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:624312: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(135,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_WithProcessingDialog_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624320: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(43,28): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult.Buckets' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:624325: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(11,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624333: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(44,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult.TotalCount' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:624336: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(16,12): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.SessionLogErrorTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624343: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(47,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:624347: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(19,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.Submit_MissingSourceType_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624356: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(49,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:624359: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(37,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.Submit_MissingSessionId_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624368: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(55,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.Submit_EmptySourceType_Returns400()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624381: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(50,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:624384: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(70,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.Submit_EmptySessionId_Returns400()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624395: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(51,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Bucket' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:624396: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(85,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.AppendDialog_EmptyItemsList_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624405: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(54,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:624409: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(94,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.Submit_InvalidJsonBody_Returns400()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624418: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(56,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:624426: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(5,21): error CS1591: Missing XML comment for publicly visible  +type or member 'SubmitResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624435: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(57,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Description' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:624445: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(7,41): error CS1591: Missing XML comment for publicly visible  +type or member 'SubmitResult.Id' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624448: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(58,25): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Tags' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:624458: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(59,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.ParameterSchema' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:624459: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(8,53): error CS1591: Missing XML comment for publicly visible  +type or member 'SubmitResult.SourceType' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624470: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(60,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.CommandTemplate' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:624478: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(9,52): error CS1591: Missing XML comment for publicly visible  +type or member 'SubmitResult.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624485: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(61,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.ManifestFile' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:624489: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(12,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ErrorResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624496: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(64,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:624506: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(14,48): error CS1591: Missing XML comment for publicly visible  +type or member 'ErrorResult.Error' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624514: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(66,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:624526: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(67,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:624527: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(17,21): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624540: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(68,32): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Tools' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:624543: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(19,49): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryResult.TotalCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624551: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(71,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:624573: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(20,44): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryResult.Limit' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624581: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(73,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:624602: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(21,45): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryResult.Offset' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624605: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(74,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:624619: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(22,62): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryResult.Items' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624624: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(75,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Updated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:624632: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(25,21): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624639: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(76,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Added' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:624649: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(27,41): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Id' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624665: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(77,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Unchanged' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:624670: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(28,53): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.SourceType' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624682: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(15,12): error CS1591: Missing XML comment  +for publicly visible type or member 'ToolLifecycleSequenceTests.ToolLifecycleSequenceTests(ToolRegistryFixture, ITestOutputHelper)'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:624688: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(29,52): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624707: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(18,23): error CS1591: Missing XML comment  +for publicly visible type or member 'ToolLifecycleSequenceTests.FullToolLifecycle_CreateThroughDelete()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:624715: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(30,48): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Title' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624729: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(109,23): error CS1591: Missing XML comment  +for publicly visible type or member 'ToolLifecycleSequenceTests.FullBucketLifecycle_AddThroughRemove()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:624742: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(8,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:624752: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(9,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.ToolRoute' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:624753: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(31,48): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Model' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624765: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.BucketRoute' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:624766: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(32,49): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624780: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.Client' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:624784: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(33,49): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.EntryCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624798: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.ToolRegistryFixture()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:624807: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(34,50): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Started' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624812: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(27,17): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.Dispose()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:624817: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(35,54): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.LastUpdated' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624832: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(36,58): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Entries' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624842: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(39,21): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624845: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(31,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryCollection' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:624857: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(41,52): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.RequestId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624871: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(42,52): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.QueryText' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624890: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(43,53): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.QueryTitle' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624909: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(44,51): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.Response' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624926: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(45,49): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624938: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(46,53): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.Tags' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624965: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(47,59): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.Actions' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:624985: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(48,72): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.ProcessingDialog' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:625005: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(51,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:625035: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(53,44): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto.Order' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:625054: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(54,54): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto.Description' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:625073: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(55,47): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto.Type' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:625088: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(56,49): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:625104: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(57,51): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto.FilePath' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:625124: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(60,21): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogItemDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:625146: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(62,52): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogItemDto.Timestamp' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:625160: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(63,47): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogItemDto.Role' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:625168: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(64,50): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogItemDto.Content' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:625185: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(65,51): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogItemDto.Category' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:625203: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(68,21): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogAppendResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:625221: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(70,48): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogAppendResult.Agent' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:625240: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(71,52): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogAppendResult.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:625261: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(72,52): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogAppendResult.RequestId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:625270: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(73,55): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogAppendResult.TotalDialogCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:625291: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:625307: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests.SessionLogLifecycleTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:625320: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests.FullLifecycle_Submit_Query_AppendDialog_Requery()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:625337: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:625357: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.SessionLogRoute' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:625370: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(13,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:625382: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(14,20): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.ApiKey' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:625397: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(16,12): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.SessionLogEndpointFixture()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:625409: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(30,17): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:625424: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(34,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointCollection' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:625919: 12:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(9,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:625931: 12:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(14,12): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.ContextEndpointTests(ContextEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:625942: 12:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(19,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Sources_Returns200WithSourcesArray()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:625950: 12:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(31,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_EmptyQuery_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:625958: 12:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(42,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_WithQuery_Returns200WithResults()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:625969: 12:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(54,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_WithSourceTypeFilter_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:625980: 12:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(62,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_LimitClamped_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:625991: 12:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(72,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_EmptyQuery_Returns200WithPack()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:626005: 12:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(84,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_WithQueryId_Returns200WithSameQueryId()'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:626013: 12:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(95,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_WithQuery_ReturnsFilteredChunks()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:626022: 12:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(105,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.RebuildIndex_Returns200Or500()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:626035: 12:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type  +or member 'ContextEndpointCollection' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:626043: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.CreateTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626044: 12:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type  +or member 'ContextEndpointFixture' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:626054: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(21,22): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626057: 12:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:626065: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(23,28): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626070: 12:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.ContextRoute' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:626081: 12:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:626086: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(29,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_ValidRequest_Returns201()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626092: 12:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.ContextEndpointFixture()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:626097: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(62,23): error [0mCS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_DuplicateId_Returns409()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626100: 12:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:626105: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(77,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626117: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(91,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_WithImplementationTasks_Returns201()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626130: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.DeleteTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626136: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(17,23): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.Delete_ExistingItem_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626154: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(40,23): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.Delete_NonExistentItem_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626167: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible type  +or member 'GetTodoTests.GetTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626184: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly visible type  +or member 'GetTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626198: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly visible type  +or member 'GetTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626214: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly visible type  +or member 'GetTodoTests.Get_ValidId_Returns200WithItem()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626228: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(51,23): error CS1591: Missing XML comment for publicly visible type  +or member 'GetTodoTests.Get_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626244: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.QueryTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626261: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(17,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_NoFilters_Returns200WithValidStructure()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626273: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(31,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ResponseIsJson()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626292: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(40,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByPriority_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626308: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(55,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByDoneStatus_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626322: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(69,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByKeyword_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626331: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(81,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_BySection_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626340: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(95,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ById_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626355: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(114,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_NonMatchingKeyword_ReturnsEmptyList()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626364: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.RequirementsTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626373: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626382: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626395: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.Requirements_RegisteredItem_ReturnsResult()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626404: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.Requirements_NonExistentItem_Returns422()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626417: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.UpdateTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626425: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626443: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626452: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ChangeTitle_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626460: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(50,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ToggleDone_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626469: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(66,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ChangePriority_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626484: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(82,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626495: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(93,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626506: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(18,12): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.TodoErrorTests(TodoEndpointFixture, ITestOutputHelper)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626513: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(27,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Get_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626524: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(36,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Update_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626533: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(46,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Delete_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626544: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(57,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Create_Duplicate_Returns409()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626551: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(84,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Create_EmptyBody_ReturnsBadRequest()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626561: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(97,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Update_NullBody_Returns400OrUnsupportedMedia()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626571: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(114,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Patch_NotSupported_Returns405()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626578: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(128,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Query_InvalidPriority_Returns200EmptyOrAll()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626594: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(140,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Query_MultipleFilters_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626605: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(6,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Id' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626613: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(7,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Title' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626621: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(8,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Section' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626632: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(9,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Priority' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626645: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(10,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Done' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626659: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(11,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Estimate' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626670: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(12,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Note' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626678: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(13,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Description' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626692: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(14,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.TechnicalDetails' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626702: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(15,32): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.ImplementationTasks' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626714: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(16,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.CompletedDate' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626728: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(17,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.DoneSummary' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626740: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(18,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Remaining' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626751: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(19,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.PriorityNote' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626764: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(20,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Reference' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626780: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(21,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.DependsOn' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626787: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(22,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.FunctionalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626796: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(23,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.TechnicalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626803: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(29,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatTask.Task' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626814: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(30,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatTask.Done' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626823: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(36,31): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoQueryResult.Items' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626835: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(37,16): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoQueryResult.TotalCount' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626845: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(43,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Success' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626855: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(44,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626868: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(45,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Item' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626886: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(51,17): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.Success' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626893: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(52,26): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.FunctionalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626906: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(53,26): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.TechnicalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626914: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(54,20): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626928: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(55,20): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.CopilotResponse' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626937: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(61,20): error CS1591: Missing XML comment for publicly visible type or  +member 'ErrorResponse.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:626951: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\SequenceTests\TodoLifecycleSequenceTests.cs(18,12): error CS1591: Missing XML comment for  +publicly visible type or member 'TodoLifecycleSequenceTests.TodoLifecycleSequenceTests(TodoEndpointFixture, ITestOutputHelper)'  +[E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:627016: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\SequenceTests\TodoLifecycleSequenceTests.cs(25,23): error CS1591: Missing XML comment for  +publicly visible type or member 'TodoLifecycleSequenceTests.FullLifecycle_CreateThroughDelete()'  +[E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:627220: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\TodoEndpointFixture.cs(20,12): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoEndpointFixture.TodoEndpointFixture()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:627320: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\TodoEndpointFixture.cs(33,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676327: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.GitHubEndpointTests(GitHubEndpointFixture)' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:676328: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(20,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListIssues_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:676329: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(30,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListIssues_WithState_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:676330: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(39,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.GetIssue_ExistingNumber_Returns200Or404()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:676331: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(50,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CreateIssue_MissingTitle_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:676332: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.UpdateIssue_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:676333: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(69,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CommentOnIssue_MissingBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:676334: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(79,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListLabels_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:676335: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(90,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListPulls_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:676336: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(100,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListPulls_WithState_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:676337: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(109,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CommentOnPull_MissingBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:676338: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(119,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CloseIssue_NonExistent_ReturnsBadRequestOr200()'  +[E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:676339: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(130,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ReopenIssue_NonExistent_ReturnsBadRequestOr200()'  +[E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:676340: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(140,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncFromGitHub_Returns200Or400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:676341: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(150,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncToGitHub_Returns200Or400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:676342: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(160,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncSingleIssue_Returns200Or400Or404()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:676343: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointCollection' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:676344: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:676345: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:676346: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.GhRoute' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:676347: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:676348: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.GitHubEndpointFixture()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:676349: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:676354: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.RepoEndpointTests(RepoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:676355: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(20,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.List_RootPath_Returns200WithEntries()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:676356: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(30,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.List_WithPath_Returns200()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:676357: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(42,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.ReadFile_MissingPath_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:676358: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(51,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.ReadFile_ExistingFile_Returns200()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:676359: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.ReadFile_NonExistentFile_Returns200Or400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:676360: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(71,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.WriteFile_MissingPath_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:676361: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(79,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.WriteFile_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:676362: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(86,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.WriteFile_ValidPath_Returns200Or400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:676363: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointCollection' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:676364: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:676365: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:676366: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.RepoRoute' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:676367: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:676368: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.RepoEndpointFixture()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:676369: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:676374: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(13,12): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BucketTests(ToolRegistryFixture)' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676375: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.ListBuckets_Returns200WithValidStructure()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676376: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(31,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.AddBucket_ValidRequest_Returns201()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676377: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(52,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.AddBucket_Duplicate_Returns409()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676378: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(73,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.RemoveBucket_Existing_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676379: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(87,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.RemoveBucket_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676380: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(96,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BrowseBucket_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676381: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(103,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BrowseBucket_Existing_ReturnsResult()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676382: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(126,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.InstallFromBucket_NonExistentBucket_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676383: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(136,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.SyncBucket_NonExistentBucket_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676384: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(144,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.SyncBucket_Existing_Returns200Or404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676385: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(13,12): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.ToolCrudTests(ToolRegistryFixture)' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676386: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.List_Returns200WithValidStructure()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676387: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(29,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.List_ResponseIsJson()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676388: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(38,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_WithKeyword_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676389: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(47,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_NonMatchingKeyword_ReturnsEmpty()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676390: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Create_ValidTool_Returns201()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676391: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(92,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Create_DuplicateName_Returns409()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676392: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(113,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Get_ExistingTool_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676393: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(136,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Get_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676394: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(143,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Update_ChangeName_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676395: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(170,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Update_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676396: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(178,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Delete_ExistingTool_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676397: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(198,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Delete_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676398: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(207,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_ByTag_FindsCreatedTool()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676399: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(13,12): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.ToolRegistryErrorTests(ToolRegistryFixture)'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676400: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(16,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Get_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676401: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(23,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Update_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676402: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(30,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Delete_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676403: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(37,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.RemoveBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676404: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(44,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.BrowseBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676405: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(51,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.SyncBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676406: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(58,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.InstallFromBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676407: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(66,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Patch_NotSupported_Returns405()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676408: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(77,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Get_InvalidIdFormat_Returns404Or400()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676409: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(87,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Create_DuplicateName_Returns409()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676410: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(111,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.AddBucket_Duplicate_Returns409()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676411: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(130,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Search_WithWorkspace_Returns200()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676412: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(138,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.List_WithWorkspace_Returns200()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676413: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(3,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676414: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(5,16): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Id' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676415: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(6,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676416: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(7,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Description' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676417: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(8,25): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Tags' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676418: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(9,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.ParameterSchema' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676419: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(10,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.CommandTemplate' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676420: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(11,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.WorkspacePath' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676421: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(12,27): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.DateTimeCreated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676422: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(13,27): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.DateTimeModified' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676423: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(16,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676424: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(18,26): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult.Tools' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676425: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(19,16): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult.TotalCount' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676426: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(22,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676427: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(24,17): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676428: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(25,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676429: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(26,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Tool' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676430: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(29,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676431: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(31,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Id' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676432: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(32,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676433: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(33,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Owner' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676434: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(34,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Repo' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676435: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(35,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Branch' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676436: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(36,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.ManifestPath' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676437: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(37,27): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.DateTimeCreated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676438: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(38,28): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.DateTimeLastSynced' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676439: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(41,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676440: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(43,28): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult.Buckets' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676441: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(44,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult.TotalCount' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676442: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(47,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676443: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(49,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676444: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(50,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676445: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(51,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Bucket' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676446: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(54,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676447: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(56,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676448: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(57,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Description' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676449: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(58,25): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Tags' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676450: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(59,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.ParameterSchema' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676451: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(60,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.CommandTemplate' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676452: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(61,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.ManifestFile' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676453: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(64,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676454: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(66,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676455: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(67,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676456: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(68,32): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Tools' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676457: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(71,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676458: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(73,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676459: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(74,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676460: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(75,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Updated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676461: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(76,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Added' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676462: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(77,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Unchanged' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676463: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(15,12): error CS1591: Missing XML comment  +for publicly visible type or member 'ToolLifecycleSequenceTests.ToolLifecycleSequenceTests(ToolRegistryFixture, ITestOutputHelper)'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676464: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(18,23): error CS1591: Missing XML comment  +for publicly visible type or member 'ToolLifecycleSequenceTests.FullToolLifecycle_CreateThroughDelete()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676465: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(109,23): error CS1591: Missing XML  +comment for publicly visible type or member 'ToolLifecycleSequenceTests.FullBucketLifecycle_AddThroughRemove()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676466: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(8,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676467: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(9,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.ToolRoute' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676468: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.BucketRoute' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676469: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.Client' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676470: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.ToolRegistryFixture()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676471: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(27,17): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.Dispose()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676472: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(31,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryCollection' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:676477: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(10,21): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676478: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676479: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialog_ToExistingEntry_Returns200WithCount()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676480: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(70,23): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialog_MultipleAppends_AccumulatesCount()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676481: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(115,23): error CS1591: Missing XML comment for  +publicly visible type or member 'AppendDialogTests.AppendDialog_NonExistentSession_Returns404()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676482: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676483: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.QuerySessionLogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676484: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_NoFilters_Returns200WithResults()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676485: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(30,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByAgent_Returns200Filtered()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676486: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(57,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByModel_Returns200Filtered()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676487: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(82,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByDateRange_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676488: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(95,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_WithPagination_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676489: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(107,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_NonMatchingAgent_ReturnsEmptyResults()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676490: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(119,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByText_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676491: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676492: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.SubmitSessionLogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676493: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_MinimalSessionLog_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676494: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(44,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_FullSessionLogWithEntries_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676495: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(94,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_UpsertSameSession_Returns201WithUpdatedData()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676496: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(135,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_WithProcessingDialog_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676497: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(11,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676498: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(16,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.SessionLogErrorTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676499: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(19,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_MissingSourceType_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676500: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(37,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_MissingSessionId_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676501: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(55,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_EmptySourceType_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676502: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(70,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_EmptySessionId_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676503: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(85,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.AppendDialog_EmptyItemsList_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676504: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(94,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_InvalidJsonBody_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676505: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(5,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SubmitResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676506: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(7,41): error CS1591: Missing XML comment for publicly  +visible type or member 'SubmitResult.Id' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676507: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(8,53): error CS1591: Missing XML comment for publicly  +visible type or member 'SubmitResult.SourceType' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676508: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(9,52): error CS1591: Missing XML comment for publicly  +visible type or member 'SubmitResult.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676509: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(12,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ErrorResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676510: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(14,48): error CS1591: Missing XML comment for publicly  +visible type or member 'ErrorResult.Error' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676511: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(17,21): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676512: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(19,49): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult.TotalCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676513: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(20,44): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult.Limit' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676514: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(21,45): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult.Offset' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676515: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(22,62): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult.Items' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676516: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(25,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676517: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(27,41): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Id' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676518: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(28,53): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.SourceType' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676519: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(29,52): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676520: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(30,48): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Title' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676521: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(31,48): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Model' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676522: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(32,49): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676523: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(33,49): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.EntryCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676524: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(34,50): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Started' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676525: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(35,54): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.LastUpdated' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676526: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(36,58): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Entries' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676527: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(39,21): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676528: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(41,52): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.RequestId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676529: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(42,52): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.QueryText' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676530: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(43,53): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.QueryTitle' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676531: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(44,51): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.Response' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676532: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(45,49): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676533: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(46,53): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.Tags' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676534: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(47,59): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.Actions' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676535: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(48,72): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.ProcessingDialog' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676536: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(51,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676537: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(53,44): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.Order' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676538: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(54,54): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.Description' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676539: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(55,47): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.Type' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676540: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(56,49): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676541: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(57,51): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.FilePath' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676542: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(60,21): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676543: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(62,52): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto.Timestamp' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676544: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(63,47): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto.Role' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676545: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(64,50): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto.Content' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676546: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(65,51): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto.Category' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676547: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(68,21): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676548: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(70,48): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult.Agent' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676549: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(71,52): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676550: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(72,52): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult.RequestId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676551: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(73,55): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult.TotalDialogCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676552: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676553: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests.SessionLogLifecycleTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676554: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests.FullLifecycle_Submit_Query_AppendDialog_Requery()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676555: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676556: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.SessionLogRoute' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676557: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(13,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676558: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(14,20): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.ApiKey' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676559: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(16,12): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.SessionLogEndpointFixture()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676560: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(30,17): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676561: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(34,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointCollection' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:676566: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(9,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:676567: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(14,12): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.ContextEndpointTests(ContextEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:676568: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(19,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Sources_Returns200WithSourcesArray()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:676569: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(31,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_EmptyQuery_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:676570: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(42,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_WithQuery_Returns200WithResults()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:676571: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(54,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_WithSourceTypeFilter_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:676572: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(62,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_LimitClamped_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:676573: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(72,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_EmptyQuery_Returns200WithPack()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:676574: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(84,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_WithQueryId_Returns200WithSameQueryId()'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:676575: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(95,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_WithQuery_ReturnsFilteredChunks()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:676576: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(105,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ContextEndpointTests.RebuildIndex_Returns200Or500()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:676577: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointCollection' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:676578: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:676579: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:676580: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.ContextRoute' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:676581: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:676582: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.ContextEndpointFixture()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:676583: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:676588: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.CreateTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676589: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(21,22): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676590: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(23,28): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676591: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(29,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_ValidRequest_Returns201()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676592: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(62,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_DuplicateId_Returns409()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676593: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(77,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676594: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(91,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_WithImplementationTasks_Returns201()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676595: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.DeleteTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676596: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(17,23): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.Delete_ExistingItem_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676597: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(40,23): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.Delete_NonExistentItem_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676598: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.GetTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676599: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676600: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676601: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.Get_ValidId_Returns200WithItem()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676602: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(51,23): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.Get_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676603: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.QueryTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676604: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(17,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_NoFilters_Returns200WithValidStructure()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676605: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(31,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ResponseIsJson()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676606: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(40,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByPriority_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676607: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(55,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByDoneStatus_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676608: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(69,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByKeyword_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676609: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(81,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_BySection_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676610: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(95,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ById_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676611: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(114,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_NonMatchingKeyword_ReturnsEmptyList()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676612: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.RequirementsTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676613: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676614: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676615: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.Requirements_RegisteredItem_ReturnsResult()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676616: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.Requirements_NonExistentItem_Returns422()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676617: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.UpdateTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676618: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676619: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676620: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ChangeTitle_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676621: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(50,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ToggleDone_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676622: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(66,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ChangePriority_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676623: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(82,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676624: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(93,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676625: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(18,12): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.TodoErrorTests(TodoEndpointFixture, ITestOutputHelper)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676626: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(27,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Get_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676627: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(36,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Update_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676628: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(46,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Delete_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676629: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(57,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Create_Duplicate_Returns409()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676630: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(84,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Create_EmptyBody_ReturnsBadRequest()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676631: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(97,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Update_NullBody_Returns400OrUnsupportedMedia()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676632: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(114,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Patch_NotSupported_Returns405()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676633: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(128,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Query_InvalidPriority_Returns200EmptyOrAll()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676634: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(140,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Query_MultipleFilters_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676635: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(6,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Id' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676636: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(7,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Title' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676637: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(8,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Section' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676638: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(9,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Priority' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676639: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(10,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Done' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676640: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(11,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Estimate' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676641: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(12,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Note' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676642: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(13,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Description' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676643: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(14,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.TechnicalDetails' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676644: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(15,32): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.ImplementationTasks' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676645: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(16,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.CompletedDate' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676646: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(17,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.DoneSummary' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676647: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(18,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Remaining' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676648: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(19,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.PriorityNote' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676649: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(20,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Reference' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676650: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(21,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.DependsOn' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676651: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(22,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.FunctionalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676652: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(23,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.TechnicalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676653: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(29,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatTask.Task' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676654: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(30,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatTask.Done' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676655: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(36,31): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoQueryResult.Items' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676656: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(37,16): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoQueryResult.TotalCount' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676657: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(43,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Success' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676658: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(44,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676659: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(45,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Item' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676660: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(51,17): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.Success' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676661: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(52,26): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.FunctionalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676662: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(53,26): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.TechnicalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676663: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(54,20): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676664: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(55,20): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.CopilotResponse' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676665: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(61,20): error CS1591: Missing XML comment for publicly visible type or  +member 'ErrorResponse.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676666: E:\github\McpServer\tests\McpServer.Todo.Validation\SequenceTests\TodoLifecycleSequenceTests.cs(18,12): error CS1591: Missing XML comment for  +publicly visible type or member 'TodoLifecycleSequenceTests.TodoLifecycleSequenceTests(TodoEndpointFixture, ITestOutputHelper)'  +[E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676667: E:\github\McpServer\tests\McpServer.Todo.Validation\SequenceTests\TodoLifecycleSequenceTests.cs(25,23): error CS1591: Missing XML comment for  +publicly visible type or member 'TodoLifecycleSequenceTests.FullLifecycle_CreateThroughDelete()'  +[E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676668: E:\github\McpServer\tests\McpServer.Todo.Validation\TodoEndpointFixture.cs(20,12): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoEndpointFixture.TodoEndpointFixture()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:676669: E:\github\McpServer\tests\McpServer.Todo.Validation\TodoEndpointFixture.cs(33,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:731284: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.GitHubEndpointTests(GitHubEndpointFixture)' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:731300: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(20,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListIssues_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:731323: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(30,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListIssues_WithState_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:731347: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(39,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.GetIssue_ExistingNumber_Returns200Or404()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:731366: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(50,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CreateIssue_MissingTitle_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:731388: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.UpdateIssue_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:731408: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(69,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CommentOnIssue_MissingBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:731428: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(79,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListLabels_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:731444: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(90,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListPulls_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:731459: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(100,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListPulls_WithState_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:731480: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(109,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CommentOnPull_MissingBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:731500: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(119,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CloseIssue_NonExistent_ReturnsBadRequestOr200()'  +[E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:731517: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(130,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ReopenIssue_NonExistent_ReturnsBadRequestOr200()'  +[E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:731536: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(140,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncFromGitHub_Returns200Or400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:731578: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(150,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncToGitHub_Returns200Or400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:731601: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(160,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncSingleIssue_Returns200Or400Or404()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:731630: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointCollection' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:731644: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:731664: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:731686: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.GhRoute' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:731704: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:731745: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.GitHubEndpointFixture()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:731758: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:733738: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(10,21): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:733752: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:733767: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialog_ToExistingEntry_Returns200WithCount()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:733790: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(70,23): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialog_MultipleAppends_AccumulatesCount()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:733810: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(115,23): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialog_NonExistentSession_Returns404()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:733831: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:733852: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.QuerySessionLogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:733873: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_NoFilters_Returns200WithResults()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:733885: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(30,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByAgent_Returns200Filtered()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:733901: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(57,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByModel_Returns200Filtered()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:733909: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(82,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByDateRange_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:733947: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(95,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_WithPagination_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:733962: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(107,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_NonMatchingAgent_ReturnsEmptyResults()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:733972: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(119,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByText_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:733983: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734011: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.SubmitSessionLogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734029: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_MinimalSessionLog_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734045: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(44,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_FullSessionLogWithEntries_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734076: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(94,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_UpsertSameSession_Returns201WithUpdatedData()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734094: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(135,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_WithProcessingDialog_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734119: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(11,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734143: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(16,12): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.SessionLogErrorTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734164: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(19,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.Submit_MissingSourceType_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734185: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(37,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.Submit_MissingSessionId_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734205: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(55,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.Submit_EmptySourceType_Returns400()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734235: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(70,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.Submit_EmptySessionId_Returns400()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734258: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(85,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.AppendDialog_EmptyItemsList_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734267: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(94,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.Submit_InvalidJsonBody_Returns400()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734284: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(5,21): error CS1591: Missing XML comment for publicly visible  +type or member 'SubmitResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734296: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(7,41): error CS1591: Missing XML comment for publicly visible  +type or member 'SubmitResult.Id' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734314: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(8,53): error CS1591: Missing XML comment for publicly visible  +type or member 'SubmitResult.SourceType' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734332: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(9,52): error CS1591: Missing XML comment for publicly visible  +type or member 'SubmitResult.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734343: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(12,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ErrorResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734366: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(14,48): error CS1591: Missing XML comment for publicly visible  +type or member 'ErrorResult.Error' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734377: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(17,21): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734388: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(19,49): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryResult.TotalCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734404: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(20,44): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryResult.Limit' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734415: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(21,45): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryResult.Offset' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734422: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(22,62): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryResult.Items' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734440: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(25,21): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734451: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(27,41): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Id' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734465: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(28,53): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.SourceType' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734480: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(29,52): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734501: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(30,48): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Title' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734526: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(31,48): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Model' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734540: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(32,49): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734562: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(33,49): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.EntryCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734572: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(34,50): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Started' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734595: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(35,54): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.LastUpdated' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734616: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(36,58): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Entries' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734631: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(39,21): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734640: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(41,52): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.RequestId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734667: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(42,52): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.QueryText' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734690: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(43,53): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.QueryTitle' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734712: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(44,51): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.Response' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734722: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(45,49): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734732: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(46,53): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.Tags' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734760: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(47,59): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.Actions' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734776: 3:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(9,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:734788: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(48,72): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.ProcessingDialog' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734791: 3:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(14,12): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.ContextEndpointTests(ContextEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:734801: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(51,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734804: 3:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(19,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Sources_Returns200WithSourcesArray()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:734818: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(53,44): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto.Order' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734835: 3:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(31,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_EmptyQuery_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:734837: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(54,54): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto.Description' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734849: 3:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(42,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_WithQuery_Returns200WithResults()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:734854: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(55,47): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto.Type' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734862: 3:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(54,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_WithSourceTypeFilter_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:734872: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(56,49): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734879: 3:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(62,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_LimitClamped_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:734895: 3:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(72,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_EmptyQuery_Returns200WithPack()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:734900: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(57,51): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto.FilePath' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734909: 3:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(84,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_WithQueryId_Returns200WithSameQueryId()'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:734910: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(60,21): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogItemDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734920: 3:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(95,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_WithQuery_ReturnsFilteredChunks()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:734922: 3:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(105,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.RebuildIndex_Returns200Or500()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:734927: 3:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type  +or member 'ContextEndpointCollection' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:734931: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(62,52): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogItemDto.Timestamp' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734942: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(63,47): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogItemDto.Role' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734947: 3:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type  +or member 'ContextEndpointFixture' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:734955: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(64,50): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogItemDto.Content' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734959: 3:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:734963: 3:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.ContextRoute' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:734976: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(65,51): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogItemDto.Category' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734977: 3:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:734987: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(68,21): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogAppendResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:734995: 3:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.ContextEndpointFixture()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:735001: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(70,48): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogAppendResult.Agent' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:735002: 3:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:735017: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(71,52): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogAppendResult.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:735033: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(72,52): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogAppendResult.RequestId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:735043: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(73,55): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogAppendResult.TotalDialogCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:735063: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:735075: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests.SessionLogLifecycleTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:735088: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests.FullLifecycle_Submit_Query_AppendDialog_Requery()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:735100: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:735118: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.SessionLogRoute' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:735132: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(13,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:735139: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(14,20): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.ApiKey' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:735150: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(16,12): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.SessionLogEndpointFixture()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:735162: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(30,17): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:735175: 19:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(34,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointCollection' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:736149: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.RepoEndpointTests(RepoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:736165: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(20,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.List_RootPath_Returns200WithEntries()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:736173: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(30,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.List_WithPath_Returns200()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:736193: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(42,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.ReadFile_MissingPath_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:736202: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(51,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.ReadFile_ExistingFile_Returns200()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:736221: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(60,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.ReadFile_NonExistentFile_Returns200Or400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:736230: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(71,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.WriteFile_MissingPath_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:736235: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(79,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.WriteFile_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:736243: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(86,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.WriteFile_ValidPath_Returns200Or400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:736268: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointCollection' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:736275: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:736292: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:736308: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.RepoRoute' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:736324: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:736338: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.RepoEndpointFixture()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:736352: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:737631: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.CreateTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:737649: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(21,22): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:737663: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(23,28): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:737676: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(29,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_ValidRequest_Returns201()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:737682: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(62,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_DuplicateId_Returns409()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:737694: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(77,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:737706: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(91,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_WithImplementationTasks_Returns201()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:737719: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.DeleteTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:737729: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(17,23): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.Delete_ExistingItem_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:737744: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(40,23): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.Delete_NonExistentItem_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:737757: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible type  +or member 'GetTodoTests.GetTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:737769: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly visible type  +or member 'GetTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:737777: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly visible type  +or member 'GetTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:737792: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly visible type  +or member 'GetTodoTests.Get_ValidId_Returns200WithItem()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:737807: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(51,23): error CS1591: Missing XML comment for publicly visible type  +or member 'GetTodoTests.Get_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:737819: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.QueryTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:737831: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(17,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_NoFilters_Returns200WithValidStructure()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:737841: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(31,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ResponseIsJson()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:737856: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(40,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByPriority_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:737872: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(55,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByDoneStatus_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:737879: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(69,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByKeyword_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:737891: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(81,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_BySection_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:737906: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(95,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ById_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:737920: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(114,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_NonMatchingKeyword_ReturnsEmptyList()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:737931: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.RequirementsTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:737941: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:737956: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:737971: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.Requirements_RegisteredItem_ReturnsResult()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:737982: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.Requirements_NonExistentItem_Returns422()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:737997: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.UpdateTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738007: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738021: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738031: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ChangeTitle_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738042: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(50,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ToggleDone_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738056: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(66,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ChangePriority_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738065: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(82,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738077: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(93,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738094: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(18,12): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.TodoErrorTests(TodoEndpointFixture, ITestOutputHelper)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738460: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(27,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Get_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738479: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(36,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Update_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738491: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(46,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Delete_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738498: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(57,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Create_Duplicate_Returns409()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738514: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(84,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Create_EmptyBody_ReturnsBadRequest()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738522: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(97,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Update_NullBody_Returns400OrUnsupportedMedia()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738547: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(114,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Patch_NotSupported_Returns405()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738563: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(128,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Query_InvalidPriority_Returns200EmptyOrAll()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738572: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(140,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Query_MultipleFilters_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738580: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(6,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Id' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738597: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(7,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Title' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738613: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(8,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Section' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738635: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(9,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Priority' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738652: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(10,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Done' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738664: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(11,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Estimate' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738676: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(12,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Note' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738691: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(13,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Description' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738707: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(14,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.TechnicalDetails' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738725: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(15,32): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.ImplementationTasks' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738737: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(16,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.CompletedDate' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738747: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(17,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.DoneSummary' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738756: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(18,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Remaining' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738778: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(19,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.PriorityNote' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738786: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(20,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Reference' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738802: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(21,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.DependsOn' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738811: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(22,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.FunctionalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738818: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(23,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.TechnicalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738835: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(29,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatTask.Task' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738849: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(30,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatTask.Done' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738853: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(36,31): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoQueryResult.Items' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738867: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(37,16): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoQueryResult.TotalCount' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738875: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(43,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Success' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738892: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(44,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738907: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(45,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Item' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738915: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(51,17): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.Success' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738928: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(52,26): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.FunctionalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738943: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(53,26): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.TechnicalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738954: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(54,20): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738971: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(55,20): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.CopilotResponse' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738985: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(61,20): error CS1591: Missing XML comment for publicly visible type or  +member 'ErrorResponse.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:738995: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\SequenceTests\TodoLifecycleSequenceTests.cs(18,12): error CS1591: Missing XML comment for  +publicly visible type or member 'TodoLifecycleSequenceTests.TodoLifecycleSequenceTests(TodoEndpointFixture, ITestOutputHelper)'  +[E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:739014: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\SequenceTests\TodoLifecycleSequenceTests.cs(25,23): error CS1591: Missing XML comment for  +publicly visible type or member 'TodoLifecycleSequenceTests.FullLifecycle_CreateThroughDelete()'  +[E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:739026: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\TodoEndpointFixture.cs(20,12): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoEndpointFixture.TodoEndpointFixture()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:739040: 18:6>E:\github\McpServer\tests\McpServer.Todo.Validation\TodoEndpointFixture.cs(33,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:740491: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(13,12): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BucketTests(ToolRegistryFixture)' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740499: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.ListBuckets_Returns200WithValidStructure()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740506: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(31,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.AddBucket_ValidRequest_Returns201()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740517: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(52,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.AddBucket_Duplicate_Returns409()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740521: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(73,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.RemoveBucket_Existing_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740526: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(87,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.RemoveBucket_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740533: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(96,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BrowseBucket_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740554: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(103,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BrowseBucket_Existing_ReturnsResult()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740560: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(126,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.InstallFromBucket_NonExistentBucket_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740566: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(136,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.SyncBucket_NonExistentBucket_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740572: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(144,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.SyncBucket_Existing_Returns200Or404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740582: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(13,12): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.ToolCrudTests(ToolRegistryFixture)' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740586: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.List_Returns200WithValidStructure()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740595: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(29,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.List_ResponseIsJson()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740602: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(38,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_WithKeyword_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740613: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(47,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_NonMatchingKeyword_ReturnsEmpty()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740618: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Create_ValidTool_Returns201()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740626: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(92,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Create_DuplicateName_Returns409()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740632: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(113,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Get_ExistingTool_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740635: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(136,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Get_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740643: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(143,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Update_ChangeName_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740647: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(170,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Update_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740651: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(178,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Delete_ExistingTool_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740659: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(198,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Delete_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740667: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(207,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_ByTag_FindsCreatedTool()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740676: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(13,12): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.ToolRegistryErrorTests(ToolRegistryFixture)'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740683: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(16,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Get_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740690: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(23,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Update_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740695: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(30,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Delete_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740703: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(37,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.RemoveBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740709: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(44,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.BrowseBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740718: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(51,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.SyncBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740725: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(58,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.InstallFromBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740735: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(66,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Patch_NotSupported_Returns405()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740745: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(77,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Get_InvalidIdFormat_Returns404Or400()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740763: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(87,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Create_DuplicateName_Returns409()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740769: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(111,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.AddBucket_Duplicate_Returns409()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740774: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(130,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Search_WithWorkspace_Returns200()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740778: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(138,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.List_WithWorkspace_Returns200()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740791: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(3,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740801: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(5,16): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Id' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740808: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(6,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740819: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(7,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Description' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740833: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(8,25): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Tags' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740844: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(9,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.ParameterSchema' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740857: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(10,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.CommandTemplate' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740864: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(11,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.WorkspacePath' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740875: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(12,27): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.DateTimeCreated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740889: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(13,27): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.DateTimeModified' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740901: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(16,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740913: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(18,26): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult.Tools' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740919: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(19,16): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult.TotalCount' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740925: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(22,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740930: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(24,17): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740937: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(25,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740948: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(26,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Tool' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740955: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(29,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740964: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(31,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Id' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740971: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(32,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740982: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(33,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Owner' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:740995: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(34,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Repo' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:741003: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(35,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Branch' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:741012: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(36,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.ManifestPath' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:741025: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(37,27): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.DateTimeCreated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:741039: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(38,28): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.DateTimeLastSynced' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:741048: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(41,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:741058: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(43,28): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult.Buckets' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:741075: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(44,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult.TotalCount' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:741086: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(47,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:741095: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(49,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:741104: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(50,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:741113: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(51,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Bucket' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:741125: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(54,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:741136: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(56,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:741148: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(57,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Description' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:741157: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(58,25): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Tags' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:741167: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(59,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.ParameterSchema' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:741188: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(60,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.CommandTemplate' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:741197: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(61,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.ManifestFile' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:741208: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(64,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:741215: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(66,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:741225: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(67,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:741235: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(68,32): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Tools' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:741246: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(71,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:741255: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(73,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:741265: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(74,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:741274: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(75,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Updated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:741285: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(76,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Added' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:741292: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(77,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Unchanged' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:741303: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(15,12): error CS1591: Missing XML comment  +for publicly visible type or member 'ToolLifecycleSequenceTests.ToolLifecycleSequenceTests(ToolRegistryFixture, ITestOutputHelper)'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:741313: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(18,23): error CS1591: Missing XML comment  +for publicly visible type or member 'ToolLifecycleSequenceTests.FullToolLifecycle_CreateThroughDelete()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:741322: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(109,23): error CS1591: Missing XML comment  +for publicly visible type or member 'ToolLifecycleSequenceTests.FullBucketLifecycle_AddThroughRemove()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:741339: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(8,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:741347: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(9,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.ToolRoute' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:741364: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.BucketRoute' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:741370: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.Client' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:741381: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.ToolRegistryFixture()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:741388: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(27,17): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.Dispose()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:741399: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(31,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryCollection' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788352: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.GitHubEndpointTests(GitHubEndpointFixture)' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:788353: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(20,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListIssues_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:788354: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(30,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListIssues_WithState_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:788355: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(39,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.GetIssue_ExistingNumber_Returns200Or404()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:788356: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(50,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CreateIssue_MissingTitle_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:788357: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.UpdateIssue_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:788358: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(69,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CommentOnIssue_MissingBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:788359: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(79,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListLabels_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:788360: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(90,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListPulls_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:788361: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(100,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListPulls_WithState_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:788362: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(109,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CommentOnPull_MissingBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:788363: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(119,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CloseIssue_NonExistent_ReturnsBadRequestOr200()'  +[E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:788364: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(130,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ReopenIssue_NonExistent_ReturnsBadRequestOr200()'  +[E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:788365: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(140,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncFromGitHub_Returns200Or400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:788366: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(150,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncToGitHub_Returns200Or400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:788367: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(160,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncSingleIssue_Returns200Or400Or404()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:788368: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointCollection' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:788369: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:788370: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:788371: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.GhRoute' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:788372: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:788373: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.GitHubEndpointFixture()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:788374: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:788379: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(10,21): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788380: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788381: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialog_ToExistingEntry_Returns200WithCount()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788382: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(70,23): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialog_MultipleAppends_AccumulatesCount()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788383: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(115,23): error CS1591: Missing XML comment for  +publicly visible type or member 'AppendDialogTests.AppendDialog_NonExistentSession_Returns404()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788384: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788385: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.QuerySessionLogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788386: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_NoFilters_Returns200WithResults()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788387: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(30,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByAgent_Returns200Filtered()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788388: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(57,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByModel_Returns200Filtered()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788389: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(82,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByDateRange_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788390: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(95,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_WithPagination_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788391: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(107,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_NonMatchingAgent_ReturnsEmptyResults()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788392: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(119,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByText_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788393: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788394: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.SubmitSessionLogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788395: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_MinimalSessionLog_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788396: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(44,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_FullSessionLogWithEntries_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788397: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(94,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_UpsertSameSession_Returns201WithUpdatedData()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788398: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(135,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_WithProcessingDialog_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788399: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(11,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788400: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(16,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.SessionLogErrorTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788401: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(19,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_MissingSourceType_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788402: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(37,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_MissingSessionId_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788403: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(55,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_EmptySourceType_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788404: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(70,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_EmptySessionId_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788405: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(85,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.AppendDialog_EmptyItemsList_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788406: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(94,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_InvalidJsonBody_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788407: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(5,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SubmitResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788408: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(7,41): error CS1591: Missing XML comment for publicly  +visible type or member 'SubmitResult.Id' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788409: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(8,53): error CS1591: Missing XML comment for publicly  +visible type or member 'SubmitResult.SourceType' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788410: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(9,52): error CS1591: Missing XML comment for publicly  +visible type or member 'SubmitResult.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788411: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(12,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ErrorResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788412: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(14,48): error CS1591: Missing XML comment for publicly  +visible type or member 'ErrorResult.Error' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788413: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(17,21): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788414: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(19,49): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult.TotalCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788415: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(20,44): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult.Limit' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788416: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(21,45): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult.Offset' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788417: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(22,62): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult.Items' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788418: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(25,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788419: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(27,41): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Id' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788420: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(28,53): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.SourceType' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788421: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(29,52): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788422: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(30,48): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Title' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788423: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(31,48): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Model' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788424: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(32,49): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788425: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(33,49): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.EntryCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788426: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(34,50): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Started' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788427: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(35,54): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.LastUpdated' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788428: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(36,58): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Entries' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788429: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(39,21): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788430: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(41,52): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.RequestId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788431: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(42,52): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.QueryText' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788432: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(43,53): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.QueryTitle' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788433: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(44,51): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.Response' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788434: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(45,49): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788435: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(46,53): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.Tags' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788436: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(47,59): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.Actions' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788437: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(48,72): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.ProcessingDialog' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788438: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(51,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788439: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(53,44): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.Order' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788440: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(54,54): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.Description' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788441: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(55,47): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.Type' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788442: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(56,49): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788443: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(57,51): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.FilePath' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788444: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(60,21): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788445: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(62,52): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto.Timestamp' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788446: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(63,47): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto.Role' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788447: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(64,50): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto.Content' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788448: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(65,51): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto.Category' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788449: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(68,21): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788450: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(70,48): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult.Agent' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788451: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(71,52): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788452: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(72,52): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult.RequestId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788453: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(73,55): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult.TotalDialogCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788454: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788455: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests.SessionLogLifecycleTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788456: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests.FullLifecycle_Submit_Query_AppendDialog_Requery()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788457: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788458: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.SessionLogRoute' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788459: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(13,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788460: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(14,20): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.ApiKey' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788461: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(16,12): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.SessionLogEndpointFixture()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788462: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(30,17): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788463: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(34,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointCollection' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:788468: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(9,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:788469: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(14,12): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.ContextEndpointTests(ContextEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:788470: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(19,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Sources_Returns200WithSourcesArray()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:788471: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(31,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_EmptyQuery_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:788472: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(42,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_WithQuery_Returns200WithResults()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:788473: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(54,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_WithSourceTypeFilter_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:788474: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(62,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_LimitClamped_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:788475: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(72,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_EmptyQuery_Returns200WithPack()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:788476: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(84,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_WithQueryId_Returns200WithSameQueryId()'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:788477: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(95,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_WithQuery_ReturnsFilteredChunks()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:788478: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(105,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ContextEndpointTests.RebuildIndex_Returns200Or500()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:788479: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointCollection' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:788480: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:788481: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:788482: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.ContextRoute' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:788483: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:788484: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.ContextEndpointFixture()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:788485: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:788490: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.RepoEndpointTests(RepoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:788491: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(20,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.List_RootPath_Returns200WithEntries()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:788492: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(30,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.List_WithPath_Returns200()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:788493: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(42,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.ReadFile_MissingPath_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:788494: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(51,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.ReadFile_ExistingFile_Returns200()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:788495: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.ReadFile_NonExistentFile_Returns200Or400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:788496: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(71,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.WriteFile_MissingPath_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:788497: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(79,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.WriteFile_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:788498: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(86,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.WriteFile_ValidPath_Returns200Or400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:788499: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointCollection' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:788500: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:788501: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:788502: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.RepoRoute' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:788503: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:788504: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.RepoEndpointFixture()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:788505: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:788510: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.CreateTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788511: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(21,22): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788512: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(23,28): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788513: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(29,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_ValidRequest_Returns201()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788514: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(62,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_DuplicateId_Returns409()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788515: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(77,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788516: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(91,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_WithImplementationTasks_Returns201()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788517: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.DeleteTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788518: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(17,23): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.Delete_ExistingItem_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788519: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(40,23): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.Delete_NonExistentItem_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788520: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.GetTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788521: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788522: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788523: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.Get_ValidId_Returns200WithItem()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788524: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(51,23): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.Get_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788525: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.QueryTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788526: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(17,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_NoFilters_Returns200WithValidStructure()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788527: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(31,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ResponseIsJson()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788528: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(40,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByPriority_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788529: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(55,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByDoneStatus_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788530: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(69,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByKeyword_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788531: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(81,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_BySection_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788532: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(95,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ById_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788533: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(114,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_NonMatchingKeyword_ReturnsEmptyList()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788534: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.RequirementsTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788535: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788536: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788537: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.Requirements_RegisteredItem_ReturnsResult()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788538: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.Requirements_NonExistentItem_Returns422()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788539: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.UpdateTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788540: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788541: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788542: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ChangeTitle_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788543: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(50,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ToggleDone_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788544: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(66,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ChangePriority_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788545: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(82,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788546: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(93,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788547: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(18,12): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.TodoErrorTests(TodoEndpointFixture, ITestOutputHelper)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788548: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(27,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Get_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788549: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(36,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Update_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788550: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(46,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Delete_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788551: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(57,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Create_Duplicate_Returns409()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788552: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(84,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Create_EmptyBody_ReturnsBadRequest()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788553: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(97,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Update_NullBody_Returns400OrUnsupportedMedia()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788554: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(114,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Patch_NotSupported_Returns405()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788555: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(128,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Query_InvalidPriority_Returns200EmptyOrAll()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788556: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(140,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Query_MultipleFilters_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788557: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(6,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Id' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788558: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(7,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Title' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788559: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(8,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Section' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788560: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(9,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Priority' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788561: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(10,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Done' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788562: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(11,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Estimate' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788563: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(12,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Note' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788564: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(13,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Description' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788565: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(14,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.TechnicalDetails' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788566: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(15,32): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.ImplementationTasks' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788567: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(16,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.CompletedDate' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788568: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(17,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.DoneSummary' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788569: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(18,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Remaining' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788570: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(19,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.PriorityNote' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788571: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(20,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Reference' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788572: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(21,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.DependsOn' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788573: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(22,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.FunctionalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788574: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(23,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.TechnicalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788575: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(29,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatTask.Task' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788576: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(30,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatTask.Done' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788577: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(36,31): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoQueryResult.Items' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788578: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(37,16): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoQueryResult.TotalCount' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788579: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(43,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Success' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788580: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(44,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788581: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(45,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Item' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788582: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(51,17): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.Success' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788583: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(52,26): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.FunctionalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788584: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(53,26): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.TechnicalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788585: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(54,20): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788586: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(55,20): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.CopilotResponse' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788587: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(61,20): error CS1591: Missing XML comment for publicly visible type or  +member 'ErrorResponse.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788588: E:\github\McpServer\tests\McpServer.Todo.Validation\SequenceTests\TodoLifecycleSequenceTests.cs(18,12): error CS1591: Missing XML comment for  +publicly visible type or member 'TodoLifecycleSequenceTests.TodoLifecycleSequenceTests(TodoEndpointFixture, ITestOutputHelper)'  +[E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788589: E:\github\McpServer\tests\McpServer.Todo.Validation\SequenceTests\TodoLifecycleSequenceTests.cs(25,23): error CS1591: Missing XML comment for  +publicly visible type or member 'TodoLifecycleSequenceTests.FullLifecycle_CreateThroughDelete()'  +[E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788590: E:\github\McpServer\tests\McpServer.Todo.Validation\TodoEndpointFixture.cs(20,12): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoEndpointFixture.TodoEndpointFixture()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788591: E:\github\McpServer\tests\McpServer.Todo.Validation\TodoEndpointFixture.cs(33,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:788596: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(13,12): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BucketTests(ToolRegistryFixture)' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788597: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.ListBuckets_Returns200WithValidStructure()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788598: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(31,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.AddBucket_ValidRequest_Returns201()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788599: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(52,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.AddBucket_Duplicate_Returns409()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788600: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(73,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.RemoveBucket_Existing_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788601: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(87,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.RemoveBucket_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788602: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(96,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BrowseBucket_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788603: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(103,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BrowseBucket_Existing_ReturnsResult()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788604: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(126,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.InstallFromBucket_NonExistentBucket_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788605: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(136,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.SyncBucket_NonExistentBucket_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788606: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(144,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.SyncBucket_Existing_Returns200Or404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788607: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(13,12): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.ToolCrudTests(ToolRegistryFixture)' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788608: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.List_Returns200WithValidStructure()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788609: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(29,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.List_ResponseIsJson()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788610: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(38,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_WithKeyword_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788611: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(47,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_NonMatchingKeyword_ReturnsEmpty()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788612: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Create_ValidTool_Returns201()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788613: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(92,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Create_DuplicateName_Returns409()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788614: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(113,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Get_ExistingTool_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788615: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(136,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Get_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788616: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(143,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Update_ChangeName_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788617: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(170,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Update_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788618: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(178,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Delete_ExistingTool_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788619: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(198,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Delete_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788620: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(207,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_ByTag_FindsCreatedTool()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788621: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(13,12): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.ToolRegistryErrorTests(ToolRegistryFixture)'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788622: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(16,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Get_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788623: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(23,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Update_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788624: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(30,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Delete_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788625: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(37,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.RemoveBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788626: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(44,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.BrowseBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788627: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(51,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.SyncBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788628: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(58,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.InstallFromBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788629: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(66,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Patch_NotSupported_Returns405()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788630: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(77,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Get_InvalidIdFormat_Returns404Or400()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788631: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(87,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Create_DuplicateName_Returns409()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788632: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(111,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.AddBucket_Duplicate_Returns409()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788633: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(130,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Search_WithWorkspace_Returns200()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788634: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(138,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.List_WithWorkspace_Returns200()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788635: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(3,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788636: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(5,16): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Id' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788637: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(6,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788638: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(7,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Description' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788639: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(8,25): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Tags' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788640: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(9,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.ParameterSchema' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788641: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(10,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.CommandTemplate' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788642: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(11,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.WorkspacePath' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788643: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(12,27): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.DateTimeCreated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788644: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(13,27): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.DateTimeModified' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788645: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(16,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788646: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(18,26): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult.Tools' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788647: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(19,16): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult.TotalCount' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788648: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(22,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788649: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(24,17): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788650: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(25,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788651: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(26,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Tool' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788652: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(29,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788653: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(31,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Id' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788654: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(32,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788655: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(33,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Owner' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788656: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(34,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Repo' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788657: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(35,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Branch' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788658: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(36,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.ManifestPath' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788659: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(37,27): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.DateTimeCreated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788660: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(38,28): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.DateTimeLastSynced' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788661: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(41,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788662: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(43,28): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult.Buckets' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788663: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(44,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult.TotalCount' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788664: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(47,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788665: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(49,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788666: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(50,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788667: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(51,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Bucket' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788668: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(54,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788669: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(56,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788670: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(57,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Description' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788671: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(58,25): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Tags' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788672: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(59,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.ParameterSchema' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788673: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(60,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.CommandTemplate' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788674: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(61,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.ManifestFile' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788675: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(64,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788676: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(66,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788677: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(67,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788678: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(68,32): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Tools' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788679: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(71,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788680: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(73,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788681: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(74,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788682: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(75,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Updated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788683: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(76,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Added' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788684: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(77,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Unchanged' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788685: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(15,12): error CS1591: Missing XML comment  +for publicly visible type or member 'ToolLifecycleSequenceTests.ToolLifecycleSequenceTests(ToolRegistryFixture, ITestOutputHelper)'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788686: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(18,23): error CS1591: Missing XML comment  +for publicly visible type or member 'ToolLifecycleSequenceTests.FullToolLifecycle_CreateThroughDelete()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788687: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(109,23): error CS1591: Missing XML  +comment for publicly visible type or member 'ToolLifecycleSequenceTests.FullBucketLifecycle_AddThroughRemove()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788688: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(8,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788689: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(9,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.ToolRoute' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788690: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.BucketRoute' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788691: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.Client' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788692: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.ToolRegistryFixture()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788693: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(27,17): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.Dispose()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:788694: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(31,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryCollection' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:841026: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(13,12): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BucketTests(ToolRegistryFixture)' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:841046: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.ListBuckets_Returns200WithValidStructure()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:841072: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(31,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.AddBucket_ValidRequest_Returns201()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:841098: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(52,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.AddBucket_Duplicate_Returns409()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:841116: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(73,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.RemoveBucket_Existing_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:841139: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(87,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.RemoveBucket_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:841161: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(96,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BrowseBucket_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:841182: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(103,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BrowseBucket_Existing_ReturnsResult()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:841445: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(126,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.InstallFromBucket_NonExistentBucket_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:841464: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(136,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.SyncBucket_NonExistentBucket_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:841488: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(144,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.SyncBucket_Existing_Returns200Or404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:841516: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(13,12): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.ToolCrudTests(ToolRegistryFixture)' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:841542: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.List_Returns200WithValidStructure()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:841560: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(29,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.List_ResponseIsJson()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:841596: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(38,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_WithKeyword_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:841609: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(47,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_NonMatchingKeyword_ReturnsEmpty()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:841631: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Create_ValidTool_Returns201()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:841662: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(92,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Create_DuplicateName_Returns409()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:841679: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(113,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Get_ExistingTool_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:841703: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(136,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Get_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:841718: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(143,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Update_ChangeName_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:841737: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(170,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Update_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:841766: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(178,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Delete_ExistingTool_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:841779: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(198,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Delete_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:841795: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(207,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_ByTag_FindsCreatedTool()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:841820: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(13,12): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.ToolRegistryErrorTests(ToolRegistryFixture)'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:841836: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(16,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Get_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:841858: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(23,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Update_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:841883: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(30,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Delete_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:841906: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(37,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.RemoveBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:841926: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(44,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.BrowseBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:841944: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(51,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.SyncBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:841959: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(58,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.InstallFromBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:841976: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(66,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Patch_NotSupported_Returns405()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:842013: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(77,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Get_InvalidIdFormat_Returns404Or400()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:842030: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(87,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Create_DuplicateName_Returns409()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:842071: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(111,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.AddBucket_Duplicate_Returns409()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:842089: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(130,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Search_WithWorkspace_Returns200()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:842131: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(138,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.List_WithWorkspace_Returns200()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:842157: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(3,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:842172: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(5,16): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Id' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:842194: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(6,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:842210: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(7,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Description' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:842240: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(8,25): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Tags' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:842266: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(9,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.ParameterSchema' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:842285: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.GitHubEndpointTests(GitHubEndpointFixture)' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:842294: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(10,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.CommandTemplate' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:842311: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(20,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListIssues_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:842318: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(11,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.WorkspacePath' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:842329: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(30,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListIssues_WithState_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:842338: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(12,27): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.DateTimeCreated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:842349: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(39,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.GetIssue_ExistingNumber_Returns200Or404()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:842356: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(13,27): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.DateTimeModified' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:842377: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(50,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CreateIssue_MissingTitle_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:842387: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(16,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:842400: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.UpdateIssue_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:842405: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(18,26): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult.Tools' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:842430: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(69,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CommentOnIssue_MissingBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:842431: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(19,16): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult.TotalCount' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:842443: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(79,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListLabels_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:842452: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(22,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:842479: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(90,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListPulls_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:842490: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(100,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListPulls_WithState_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:842499: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(24,17): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:842513: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(109,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CommentOnPull_MissingBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:842514: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(10,21): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:842519: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(25,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:842533: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(119,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CloseIssue_NonExistent_ReturnsBadRequestOr200()'  +[E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:842536: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:842543: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(26,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Tool' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:842557: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(130,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ReopenIssue_NonExistent_ReturnsBadRequestOr200()'  +[E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:842563: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(29,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:842570: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialog_ToExistingEntry_Returns200WithCount()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:842581: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(31,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Id' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:842584: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(70,23): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialog_MultipleAppends_AccumulatesCount()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:842585: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(140,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncFromGitHub_Returns200Or400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:842596: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(115,23): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialog_NonExistentSession_Returns404()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:842603: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(32,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:842604: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(150,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncToGitHub_Returns200Or400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:842613: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:842623: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(160,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncSingleIssue_Returns200Or400Or404()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:842628: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(33,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Owner' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:842634: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.QuerySessionLogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:842644: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(34,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Repo' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:842649: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointCollection' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:842650: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_NoFilters_Returns200WithResults()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:842656: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(35,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Branch' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:842664: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(30,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByAgent_Returns200Filtered()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:842665: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:842675: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(36,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.ManifestPath' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:842684: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(57,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByModel_Returns200Filtered()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:842685: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:842690: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(37,27): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.DateTimeCreated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:842693: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.GhRoute' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:842704: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(82,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByDateRange_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:842705: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(38,28): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.DateTimeLastSynced' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:842713: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:842726: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(95,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_WithPagination_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:842730: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(41,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:842731: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.GitHubEndpointFixture()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:842737: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(107,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_NonMatchingAgent_ReturnsEmptyResults()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:842751: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:842756: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(119,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByText_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:842763: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(43,28): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult.Buckets' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:842770: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:842775: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(44,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult.TotalCount' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:842786: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.SubmitSessionLogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:842796: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(47,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:842811: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(49,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:842815: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_MinimalSessionLog_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:842828: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(50,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:842833: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(44,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_FullSessionLogWithEntries_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:842847: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(94,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_UpsertSameSession_Returns201WithUpdatedData()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:842857: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(51,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Bucket' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:842865: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(135,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_WithProcessingDialog_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:842874: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(54,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:842884: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(11,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:842895: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(56,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:842909: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(16,12): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.SessionLogErrorTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:842918: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(57,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Description' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:842929: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(19,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.Submit_MissingSourceType_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:842944: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(37,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.Submit_MissingSessionId_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:842949: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(58,25): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Tags' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:842961: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(55,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.Submit_EmptySourceType_Returns400()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:842963: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(59,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.ParameterSchema' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:842978: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(70,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.Submit_EmptySessionId_Returns400()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:842985: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(60,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.CommandTemplate' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:842996: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(61,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.ManifestFile' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:843012: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(85,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.AppendDialog_EmptyItemsList_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:843015: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(64,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:843029: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(94,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.Submit_InvalidJsonBody_Returns400()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:843041: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(66,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:843053: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(67,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:843062: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(5,21): error CS1591: Missing XML comment for publicly visible  +type or member 'SubmitResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:843071: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(68,32): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Tools' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:843084: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(7,41): error CS1591: Missing XML comment for publicly visible  +type or member 'SubmitResult.Id' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:843089: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(71,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:843101: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(8,53): error CS1591: Missing XML comment for publicly visible  +type or member 'SubmitResult.SourceType' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:843110: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(73,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:843114: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(9,52): error CS1591: Missing XML comment for publicly visible  +type or member 'SubmitResult.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:843130: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(74,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:843133: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(12,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ErrorResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:843141: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(75,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Updated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:843153: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(76,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Added' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:843158: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(14,48): error CS1591: Missing XML comment for publicly visible  +type or member 'ErrorResult.Error' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:843165: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(77,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Unchanged' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:843176: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(17,21): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:843185: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(15,12): error CS1591: Missing XML comment  +for publicly visible type or member 'ToolLifecycleSequenceTests.ToolLifecycleSequenceTests(ToolRegistryFixture, ITestOutputHelper)'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:843191: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(19,49): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryResult.TotalCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:843209: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(20,44): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryResult.Limit' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:843218: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(18,23): error CS1591: Missing XML comment  +for publicly visible type or member 'ToolLifecycleSequenceTests.FullToolLifecycle_CreateThroughDelete()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:843229: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(21,45): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryResult.Offset' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:843241: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(109,23): error CS1591: Missing XML comment  +for publicly visible type or member 'ToolLifecycleSequenceTests.FullBucketLifecycle_AddThroughRemove()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:843250: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(22,62): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryResult.Items' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:843261: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(8,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:843280: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(25,21): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:843284: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(9,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.ToolRoute' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:843304: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.BucketRoute' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:843307: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(27,41): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Id' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:843324: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.Client' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:843336: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.ToolRegistryFixture()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:843348: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(28,53): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.SourceType' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:843353: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(27,17): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.Dispose()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:843360: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(29,52): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:843365: 20:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(31,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryCollection' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:843374: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(30,48): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Title' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:843400: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(31,48): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Model' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:843417: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(32,49): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:843434: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(33,49): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.EntryCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:844187: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(34,50): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Started' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:844204: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(35,54): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.LastUpdated' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:844224: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(36,58): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Entries' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:844254: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(39,21): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:844267: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(41,52): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.RequestId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:844282: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(42,52): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.QueryText' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:844296: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(43,53): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.QueryTitle' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:844324: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(44,51): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.Response' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:844338: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(45,49): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:844361: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(46,53): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.Tags' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:844381: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(47,59): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.Actions' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:844401: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(48,72): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.ProcessingDialog' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:844420: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(51,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:844454: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(53,44): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto.Order' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:844478: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(54,54): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto.Description' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:844507: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(55,47): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto.Type' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:844516: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(56,49): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:844557: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(57,51): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto.FilePath' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:844588: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(60,21): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogItemDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:844608: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(62,52): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogItemDto.Timestamp' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:844623: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(63,47): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogItemDto.Role' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:844676: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(64,50): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogItemDto.Content' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:844687: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(65,51): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogItemDto.Category' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:844710: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(68,21): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogAppendResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:844718: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(70,48): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogAppendResult.Agent' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:844726: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(71,52): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogAppendResult.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:844736: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(72,52): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogAppendResult.RequestId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:844748: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(73,55): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogAppendResult.TotalDialogCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:844763: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:844775: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests.SessionLogLifecycleTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:844788: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests.FullLifecycle_Submit_Query_AppendDialog_Requery()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:844815: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:844833: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.SessionLogRoute' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:844857: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(13,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:844875: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(14,20): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.ApiKey' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:844886: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(16,12): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.SessionLogEndpointFixture()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:844933: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(30,17): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:844939: 18:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(34,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointCollection' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:849150: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.CreateTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849161: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(21,22): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849174: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(23,28): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849189: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(29,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_ValidRequest_Returns201()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849205: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(62,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_DuplicateId_Returns409()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849218: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(77,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849234: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(91,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_WithImplementationTasks_Returns201()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849242: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.DeleteTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849253: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(17,23): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.Delete_ExistingItem_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849269: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(40,23): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.Delete_NonExistentItem_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849279: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible type  +or member 'GetTodoTests.GetTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849300: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly visible type  +or member 'GetTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849312: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly visible type  +or member 'GetTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849326: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly visible type  +or member 'GetTodoTests.Get_ValidId_Returns200WithItem()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849337: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(51,23): error CS1591: Missing XML comment for publicly visible type  +or member 'GetTodoTests.Get_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849353: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.QueryTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849367: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(17,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_NoFilters_Returns200WithValidStructure()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849386: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(31,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ResponseIsJson()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849400: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(40,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByPriority_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849414: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(55,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByDoneStatus_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849432: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(69,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByKeyword_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849446: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(81,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_BySection_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849465: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(95,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ById_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849479: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(114,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_NonMatchingKeyword_ReturnsEmptyList()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849494: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.RequirementsTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849512: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849528: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849542: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.Requirements_RegisteredItem_ReturnsResult()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849553: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.Requirements_NonExistentItem_Returns422()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849564: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.UpdateTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849581: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849594: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849617: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ChangeTitle_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849629: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(50,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ToggleDone_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849644: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(66,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ChangePriority_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849661: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(82,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849677: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(93,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849689: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(18,12): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.TodoErrorTests(TodoEndpointFixture, ITestOutputHelper)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849703: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(27,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Get_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849711: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(36,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Update_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849718: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(46,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Delete_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849736: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(57,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Create_Duplicate_Returns409()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849755: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(84,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Create_EmptyBody_ReturnsBadRequest()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849768: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(97,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Update_NullBody_Returns400OrUnsupportedMedia()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849785: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(114,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Patch_NotSupported_Returns405()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849797: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(128,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Query_InvalidPriority_Returns200EmptyOrAll()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849809: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(140,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Query_MultipleFilters_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849822: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(6,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Id' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849837: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(7,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Title' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849853: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(8,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Section' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849866: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(9,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Priority' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849882: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(10,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Done' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849894: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(11,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Estimate' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849907: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(12,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Note' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849923: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(13,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Description' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849941: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(14,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.TechnicalDetails' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849957: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(15,32): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.ImplementationTasks' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849968: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(16,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.CompletedDate' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849983: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(17,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.DoneSummary' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:849998: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(18,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Remaining' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:850014: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(19,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.PriorityNote' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:850028: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(20,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Reference' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:850046: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(21,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.DependsOn' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:850074: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(22,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.FunctionalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:850086: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(23,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.TechnicalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:850102: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(29,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatTask.Task' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:850111: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(30,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatTask.Done' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:850128: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(36,31): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoQueryResult.Items' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:850138: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(37,16): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoQueryResult.TotalCount' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:850155: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(43,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Success' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:850169: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(44,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:850183: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(45,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Item' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:850204: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(51,17): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.Success' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:850220: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(52,26): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.FunctionalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:850234: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(53,26): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.TechnicalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:850251: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(54,20): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:850270: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(55,20): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.CopilotResponse' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:850285: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(61,20): error CS1591: Missing XML comment for publicly visible type or  +member 'ErrorResponse.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:850304: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\SequenceTests\TodoLifecycleSequenceTests.cs(18,12): error CS1591: Missing XML comment for  +publicly visible type or member 'TodoLifecycleSequenceTests.TodoLifecycleSequenceTests(TodoEndpointFixture, ITestOutputHelper)'  +[E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:850317: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\SequenceTests\TodoLifecycleSequenceTests.cs(25,23): error CS1591: Missing XML comment for  +publicly visible type or member 'TodoLifecycleSequenceTests.FullLifecycle_CreateThroughDelete()'  +[E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:850328: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\TodoEndpointFixture.cs(20,12): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoEndpointFixture.TodoEndpointFixture()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:850347: 19:6>E:\github\McpServer\tests\McpServer.Todo.Validation\TodoEndpointFixture.cs(33,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:850890: 2:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(9,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:850907: 2:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(14,12): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.ContextEndpointTests(ContextEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:850922: 2:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(19,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Sources_Returns200WithSourcesArray()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:850930: 2:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(31,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_EmptyQuery_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:850943: 2:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(42,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_WithQuery_Returns200WithResults()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:850957: 2:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(54,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_WithSourceTypeFilter_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:850962: 2:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(62,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_LimitClamped_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:850978: 2:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(72,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_EmptyQuery_Returns200WithPack()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:850991: 2:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(84,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_WithQueryId_Returns200WithSameQueryId()'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:851003: 2:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(95,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_WithQuery_ReturnsFilteredChunks()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:851011: 2:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(105,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.RebuildIndex_Returns200Or500()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:851022: 2:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type  +or member 'ContextEndpointCollection' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:851037: 2:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type  +or member 'ContextEndpointFixture' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:851050: 2:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:851061: 2:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.ContextRoute' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:851077: 2:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:851086: 2:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.ContextEndpointFixture()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:851099: 2:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:855458: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.RepoEndpointTests(RepoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:855471: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(20,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.List_RootPath_Returns200WithEntries()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:855484: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(30,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.List_WithPath_Returns200()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:855497: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(42,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.ReadFile_MissingPath_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:855504: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(51,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.ReadFile_ExistingFile_Returns200()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:855513: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(60,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.ReadFile_NonExistentFile_Returns200Or400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:855525: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(71,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.WriteFile_MissingPath_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:855536: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(79,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.WriteFile_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:855545: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(86,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.WriteFile_ValidPath_Returns200Or400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:855556: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointCollection' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:855565: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:855576: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:855582: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.RepoRoute' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:855591: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:855600: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.RepoEndpointFixture()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:855610: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:902824: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(13,12): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BucketTests(ToolRegistryFixture)' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902825: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.ListBuckets_Returns200WithValidStructure()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902826: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(31,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.AddBucket_ValidRequest_Returns201()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902827: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(52,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.AddBucket_Duplicate_Returns409()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902828: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(73,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.RemoveBucket_Existing_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902829: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(87,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.RemoveBucket_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902830: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(96,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BrowseBucket_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902831: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(103,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BrowseBucket_Existing_ReturnsResult()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902832: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(126,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.InstallFromBucket_NonExistentBucket_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902833: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(136,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.SyncBucket_NonExistentBucket_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902834: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(144,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.SyncBucket_Existing_Returns200Or404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902835: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(13,12): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.ToolCrudTests(ToolRegistryFixture)' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902836: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.List_Returns200WithValidStructure()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902837: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(29,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.List_ResponseIsJson()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902838: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(38,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_WithKeyword_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902839: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(47,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_NonMatchingKeyword_ReturnsEmpty()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902840: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Create_ValidTool_Returns201()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902841: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(92,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Create_DuplicateName_Returns409()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902842: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(113,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Get_ExistingTool_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902843: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(136,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Get_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902844: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(143,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Update_ChangeName_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902845: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(170,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Update_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902846: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(178,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Delete_ExistingTool_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902847: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(198,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Delete_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902848: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(207,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_ByTag_FindsCreatedTool()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902849: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(13,12): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.ToolRegistryErrorTests(ToolRegistryFixture)'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902850: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(16,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Get_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902851: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(23,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Update_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902852: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(30,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Delete_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902853: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(37,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.RemoveBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902854: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(44,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.BrowseBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902855: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(51,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.SyncBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902856: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(58,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.InstallFromBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902857: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(66,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Patch_NotSupported_Returns405()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902858: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(77,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Get_InvalidIdFormat_Returns404Or400()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902859: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(87,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Create_DuplicateName_Returns409()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902860: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(111,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.AddBucket_Duplicate_Returns409()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902861: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(130,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Search_WithWorkspace_Returns200()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902862: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(138,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.List_WithWorkspace_Returns200()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902863: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(3,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902864: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(5,16): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Id' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902865: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(6,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902866: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(7,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Description' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902867: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(8,25): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Tags' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902868: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(9,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.ParameterSchema' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902869: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(10,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.CommandTemplate' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902870: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(11,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.WorkspacePath' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902871: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(12,27): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.DateTimeCreated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902872: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(13,27): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.DateTimeModified' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902873: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(16,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902874: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(18,26): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult.Tools' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902875: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(19,16): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult.TotalCount' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902876: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(22,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902877: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(24,17): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902878: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(25,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902879: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(26,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Tool' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902880: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(29,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902881: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(31,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Id' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902882: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(32,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902883: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(33,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Owner' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902884: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(34,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Repo' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902885: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(35,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Branch' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902886: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(36,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.ManifestPath' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902887: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(37,27): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.DateTimeCreated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902888: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(38,28): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.DateTimeLastSynced' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902889: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(41,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902890: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(43,28): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult.Buckets' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902891: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(44,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult.TotalCount' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902892: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(47,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902893: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(49,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902894: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(50,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902895: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(51,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Bucket' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902896: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(54,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902897: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(56,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902898: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(57,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Description' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902899: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(58,25): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Tags' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902900: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(59,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.ParameterSchema' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902901: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(60,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.CommandTemplate' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902902: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(61,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.ManifestFile' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902903: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(64,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902904: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(66,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902905: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(67,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902906: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(68,32): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Tools' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902907: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(71,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902908: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(73,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902909: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(74,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902910: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(75,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Updated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902911: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(76,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Added' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902912: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(77,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Unchanged' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902913: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(15,12): error CS1591: Missing XML comment  +for publicly visible type or member 'ToolLifecycleSequenceTests.ToolLifecycleSequenceTests(ToolRegistryFixture, ITestOutputHelper)'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902914: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(18,23): error CS1591: Missing XML comment  +for publicly visible type or member 'ToolLifecycleSequenceTests.FullToolLifecycle_CreateThroughDelete()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902915: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(109,23): error CS1591: Missing XML  +comment for publicly visible type or member 'ToolLifecycleSequenceTests.FullBucketLifecycle_AddThroughRemove()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902916: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(8,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902917: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(9,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.ToolRoute' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902918: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.BucketRoute' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902919: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.Client' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902920: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.ToolRegistryFixture()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902921: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(27,17): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.Dispose()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902922: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(31,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryCollection' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:902927: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.GitHubEndpointTests(GitHubEndpointFixture)' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:902928: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(20,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListIssues_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:902929: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(30,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListIssues_WithState_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:902930: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(39,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.GetIssue_ExistingNumber_Returns200Or404()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:902931: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(50,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CreateIssue_MissingTitle_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:902932: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.UpdateIssue_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:902933: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(69,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CommentOnIssue_MissingBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:902934: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(79,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListLabels_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:902935: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(90,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListPulls_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:902936: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(100,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListPulls_WithState_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:902937: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(109,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CommentOnPull_MissingBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:902938: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(119,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CloseIssue_NonExistent_ReturnsBadRequestOr200()'  +[E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:902939: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(130,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ReopenIssue_NonExistent_ReturnsBadRequestOr200()'  +[E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:902940: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(140,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncFromGitHub_Returns200Or400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:902941: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(150,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncToGitHub_Returns200Or400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:902942: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(160,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncSingleIssue_Returns200Or400Or404()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:902943: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointCollection' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:902944: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:902945: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:902946: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.GhRoute' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:902947: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:902948: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.GitHubEndpointFixture()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:902949: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:902954: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(10,21): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:902955: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:902956: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialog_ToExistingEntry_Returns200WithCount()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:902957: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(70,23): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialog_MultipleAppends_AccumulatesCount()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:902958: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(115,23): error CS1591: Missing XML comment for  +publicly visible type or member 'AppendDialogTests.AppendDialog_NonExistentSession_Returns404()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:902959: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:902960: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.QuerySessionLogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:902961: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_NoFilters_Returns200WithResults()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:902962: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(30,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByAgent_Returns200Filtered()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:902963: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(57,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByModel_Returns200Filtered()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:902964: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(82,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByDateRange_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:902965: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(95,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_WithPagination_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:902966: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(107,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_NonMatchingAgent_ReturnsEmptyResults()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:902967: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(119,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByText_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:902968: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:902969: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.SubmitSessionLogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:902970: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_MinimalSessionLog_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:902971: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(44,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_FullSessionLogWithEntries_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:902972: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(94,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_UpsertSameSession_Returns201WithUpdatedData()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:902973: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(135,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_WithProcessingDialog_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:902974: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(11,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:902975: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(16,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.SessionLogErrorTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:902976: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(19,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_MissingSourceType_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:902977: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(37,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_MissingSessionId_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:902978: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(55,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_EmptySourceType_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:902979: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(70,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_EmptySessionId_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:902980: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(85,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.AppendDialog_EmptyItemsList_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:902981: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(94,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_InvalidJsonBody_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:902982: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(5,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SubmitResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:902983: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(7,41): error CS1591: Missing XML comment for publicly  +visible type or member 'SubmitResult.Id' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:902984: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(8,53): error CS1591: Missing XML comment for publicly  +visible type or member 'SubmitResult.SourceType' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:902985: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(9,52): error CS1591: Missing XML comment for publicly  +visible type or member 'SubmitResult.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:902986: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(12,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ErrorResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:902987: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(14,48): error CS1591: Missing XML comment for publicly  +visible type or member 'ErrorResult.Error' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:902988: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(17,21): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:902989: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(19,49): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult.TotalCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:902990: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(20,44): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult.Limit' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:902991: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(21,45): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult.Offset' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:902992: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(22,62): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult.Items' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:902993: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(25,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:902994: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(27,41): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Id' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:902995: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(28,53): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.SourceType' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:902996: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(29,52): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:902997: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(30,48): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Title' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:902998: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(31,48): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Model' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:902999: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(32,49): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:903000: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(33,49): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.EntryCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:903001: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(34,50): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Started' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:903002: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(35,54): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.LastUpdated' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:903003: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(36,58): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Entries' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:903004: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(39,21): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:903005: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(41,52): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.RequestId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:903006: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(42,52): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.QueryText' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:903007: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(43,53): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.QueryTitle' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:903008: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(44,51): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.Response' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:903009: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(45,49): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:903010: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(46,53): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.Tags' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:903011: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(47,59): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.Actions' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:903012: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(48,72): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.ProcessingDialog' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:903013: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(51,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:903014: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(53,44): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.Order' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:903015: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(54,54): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.Description' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:903016: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(55,47): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.Type' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:903017: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(56,49): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:903018: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(57,51): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.FilePath' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:903019: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(60,21): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:903020: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(62,52): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto.Timestamp' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:903021: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(63,47): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto.Role' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:903022: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(64,50): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto.Content' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:903023: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(65,51): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto.Category' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:903024: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(68,21): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:903025: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(70,48): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult.Agent' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:903026: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(71,52): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:903027: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(72,52): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult.RequestId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:903028: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(73,55): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult.TotalDialogCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:903029: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:903030: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests.SessionLogLifecycleTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:903031: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests.FullLifecycle_Submit_Query_AppendDialog_Requery()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:903032: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:903033: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.SessionLogRoute' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:903034: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(13,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:903035: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(14,20): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.ApiKey' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:903036: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(16,12): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.SessionLogEndpointFixture()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:903037: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(30,17): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:903038: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(34,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointCollection' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:903043: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.CreateTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903044: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(21,22): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903045: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(23,28): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903046: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(29,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_ValidRequest_Returns201()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903047: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(62,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_DuplicateId_Returns409()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903048: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(77,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903049: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(91,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_WithImplementationTasks_Returns201()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903050: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.DeleteTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903051: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(17,23): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.Delete_ExistingItem_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903052: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(40,23): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.Delete_NonExistentItem_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903053: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.GetTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903054: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903055: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903056: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.Get_ValidId_Returns200WithItem()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903057: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(51,23): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.Get_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903058: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.QueryTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903059: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(17,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_NoFilters_Returns200WithValidStructure()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903060: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(31,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ResponseIsJson()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903061: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(40,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByPriority_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903062: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(55,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByDoneStatus_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903063: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(69,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByKeyword_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903064: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(81,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_BySection_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903065: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(95,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ById_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903066: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(114,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_NonMatchingKeyword_ReturnsEmptyList()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903067: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.RequirementsTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903068: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903069: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903070: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.Requirements_RegisteredItem_ReturnsResult()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903071: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.Requirements_NonExistentItem_Returns422()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903072: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.UpdateTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903073: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903074: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903075: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ChangeTitle_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903076: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(50,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ToggleDone_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903077: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(66,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ChangePriority_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903078: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(82,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903079: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(93,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903080: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(18,12): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.TodoErrorTests(TodoEndpointFixture, ITestOutputHelper)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903081: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(27,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Get_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903082: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(36,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Update_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903083: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(46,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Delete_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903084: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(57,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Create_Duplicate_Returns409()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903085: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(84,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Create_EmptyBody_ReturnsBadRequest()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903086: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(97,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Update_NullBody_Returns400OrUnsupportedMedia()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903087: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(114,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Patch_NotSupported_Returns405()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903088: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(128,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Query_InvalidPriority_Returns200EmptyOrAll()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903089: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(140,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Query_MultipleFilters_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903090: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(6,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Id' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903091: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(7,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Title' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903092: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(8,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Section' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903093: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(9,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Priority' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903094: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(10,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Done' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903095: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(11,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Estimate' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903096: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(12,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Note' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903097: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(13,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Description' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903098: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(14,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.TechnicalDetails' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903099: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(15,32): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.ImplementationTasks' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903100: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(16,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.CompletedDate' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903101: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(17,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.DoneSummary' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903102: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(18,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Remaining' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903103: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(19,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.PriorityNote' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903104: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(20,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Reference' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903105: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(21,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.DependsOn' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903106: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(22,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.FunctionalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903107: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(23,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.TechnicalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903108: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(29,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatTask.Task' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903109: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(30,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatTask.Done' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903110: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(36,31): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoQueryResult.Items' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903111: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(37,16): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoQueryResult.TotalCount' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903112: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(43,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Success' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903113: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(44,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903114: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(45,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Item' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903115: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(51,17): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.Success' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903116: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(52,26): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.FunctionalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903117: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(53,26): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.TechnicalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903118: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(54,20): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903119: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(55,20): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.CopilotResponse' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903120: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(61,20): error CS1591: Missing XML comment for publicly visible type or  +member 'ErrorResponse.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903121: E:\github\McpServer\tests\McpServer.Todo.Validation\SequenceTests\TodoLifecycleSequenceTests.cs(18,12): error CS1591: Missing XML comment for  +publicly visible type or member 'TodoLifecycleSequenceTests.TodoLifecycleSequenceTests(TodoEndpointFixture, ITestOutputHelper)'  +[E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903122: E:\github\McpServer\tests\McpServer.Todo.Validation\SequenceTests\TodoLifecycleSequenceTests.cs(25,23): error CS1591: Missing XML comment for  +publicly visible type or member 'TodoLifecycleSequenceTests.FullLifecycle_CreateThroughDelete()'  +[E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903123: E:\github\McpServer\tests\McpServer.Todo.Validation\TodoEndpointFixture.cs(20,12): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoEndpointFixture.TodoEndpointFixture()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903124: E:\github\McpServer\tests\McpServer.Todo.Validation\TodoEndpointFixture.cs(33,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:903129: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(9,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:903130: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(14,12): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.ContextEndpointTests(ContextEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:903131: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(19,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Sources_Returns200WithSourcesArray()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:903132: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(31,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_EmptyQuery_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:903133: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(42,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_WithQuery_Returns200WithResults()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:903134: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(54,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_WithSourceTypeFilter_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:903135: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(62,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_LimitClamped_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:903136: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(72,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_EmptyQuery_Returns200WithPack()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:903137: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(84,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_WithQueryId_Returns200WithSameQueryId()'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:903138: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(95,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_WithQuery_ReturnsFilteredChunks()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:903139: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(105,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ContextEndpointTests.RebuildIndex_Returns200Or500()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:903140: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointCollection' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:903141: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:903142: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:903143: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.ContextRoute' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:903144: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:903145: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.ContextEndpointFixture()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:903146: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:903151: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.RepoEndpointTests(RepoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:903152: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(20,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.List_RootPath_Returns200WithEntries()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:903153: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(30,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.List_WithPath_Returns200()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:903154: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(42,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.ReadFile_MissingPath_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:903155: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(51,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.ReadFile_ExistingFile_Returns200()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:903156: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.ReadFile_NonExistentFile_Returns200Or400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:903157: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(71,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.WriteFile_MissingPath_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:903158: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(79,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.WriteFile_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:903159: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(86,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.WriteFile_ValidPath_Returns200Or400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:903160: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointCollection' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:903161: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:903162: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:903163: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.RepoRoute' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:903164: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:903165: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.RepoEndpointFixture()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:903166: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:953389: 15:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(9,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:953411: 15:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(14,12): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.ContextEndpointTests(ContextEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:953444: 15:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(19,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Sources_Returns200WithSourcesArray()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:953465: 15:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(31,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_EmptyQuery_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:953516: 15:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(42,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_WithQuery_Returns200WithResults()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:953537: 15:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(54,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_WithSourceTypeFilter_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:953555: 15:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(62,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_LimitClamped_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:953570: 15:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(72,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_EmptyQuery_Returns200WithPack()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:953590: 15:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(84,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_WithQueryId_Returns200WithSameQueryId()'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:953599: 15:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(95,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_WithQuery_ReturnsFilteredChunks()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:953617: 15:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(105,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.RebuildIndex_Returns200Or500()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:953649: 15:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type  +or member 'ContextEndpointCollection' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:953657: 15:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type  +or member 'ContextEndpointFixture' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:953686: 15:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:953710: 15:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.ContextRoute' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:953718: 15:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:953746: 15:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.ContextEndpointFixture()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:953777: 15:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:958469: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(13,12): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BucketTests(ToolRegistryFixture)' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:958486: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.ListBuckets_Returns200WithValidStructure()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:958505: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(31,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.AddBucket_ValidRequest_Returns201()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:958515: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(52,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.AddBucket_Duplicate_Returns409()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:958534: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(73,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.RemoveBucket_Existing_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:958555: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(87,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.RemoveBucket_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:958570: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(96,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BrowseBucket_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:958582: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(103,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BrowseBucket_Existing_ReturnsResult()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:958601: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(126,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.InstallFromBucket_NonExistentBucket_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:958620: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(136,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.SyncBucket_NonExistentBucket_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:958642: 18:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.RepoEndpointTests(RepoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:958650: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(144,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.SyncBucket_Existing_Returns200Or404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:958651: 18:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(20,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.List_RootPath_Returns200WithEntries()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:958661: 18:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(30,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.List_WithPath_Returns200()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:958675: 18:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(42,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.ReadFile_MissingPath_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:958676: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(13,12): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.ToolCrudTests(ToolRegistryFixture)' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:958689: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.List_Returns200WithValidStructure()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:958690: 18:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(51,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.ReadFile_ExistingFile_Returns200()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:958702: 18:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(60,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.ReadFile_NonExistentFile_Returns200Or400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:958709: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(29,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.List_ResponseIsJson()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:958723: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(38,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_WithKeyword_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:958727: 18:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(71,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.WriteFile_MissingPath_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:958740: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(47,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_NonMatchingKeyword_ReturnsEmpty()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:958756: 18:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(79,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.WriteFile_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:958760: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Create_ValidTool_Returns201()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:958775: 18:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(86,23): error CS1591: Missing XML comment for publicly visible  +type or member 'RepoEndpointTests.WriteFile_ValidPath_Returns200Or400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:958777: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(92,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Create_DuplicateName_Returns409()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:958787: 18:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointCollection' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:958795: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(113,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Get_ExistingTool_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:958800: 18:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:958809: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(136,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Get_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:958815: 18:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:958825: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(143,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Update_ChangeName_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:958827: 18:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.RepoRoute' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:958841: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(170,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Update_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:958846: 18:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:958864: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(178,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Delete_ExistingTool_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:958871: 18:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.RepoEndpointFixture()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:958879: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(198,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Delete_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:958886: 18:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:958903: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(207,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_ByTag_FindsCreatedTool()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:958918: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(13,12): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.ToolRegistryErrorTests(ToolRegistryFixture)'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:958932: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(16,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Get_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:958954: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(23,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Update_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:958979: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(30,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Delete_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:958996: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(37,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.RemoveBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:959009: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(44,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.BrowseBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:959025: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(51,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.SyncBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:959279: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(58,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.InstallFromBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:959301: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(66,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Patch_NotSupported_Returns405()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:959322: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(77,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Get_InvalidIdFormat_Returns404Or400()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:959341: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(87,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Create_DuplicateName_Returns409()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:959360: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(111,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.AddBucket_Duplicate_Returns409()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:959375: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(130,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Search_WithWorkspace_Returns200()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:959402: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(138,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.List_WithWorkspace_Returns200()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:959430: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(3,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:959449: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(5,16): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Id' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:959462: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(6,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:959474: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(7,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Description' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:959510: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(8,25): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Tags' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:959522: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(9,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.ParameterSchema' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:959532: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(10,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.CommandTemplate' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:959547: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(11,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.WorkspacePath' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:959560: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(12,27): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.DateTimeCreated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:959587: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(13,27): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.DateTimeModified' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:959607: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(16,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:959628: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(18,26): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult.Tools' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:959642: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(19,16): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult.TotalCount' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:959667: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(22,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:959681: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(24,17): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:959702: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(25,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:959726: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(26,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Tool' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:959738: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(29,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:959753: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(31,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Id' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:959772: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(32,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:959788: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(33,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Owner' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:959807: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(34,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Repo' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:959838: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(35,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Branch' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:959866: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(36,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.ManifestPath' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:959879: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(37,27): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.DateTimeCreated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:959893: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(38,28): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.DateTimeLastSynced' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:959900: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(41,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:959924: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(43,28): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult.Buckets' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:959957: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(44,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult.TotalCount' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:959971: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(47,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:959988: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(49,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:960009: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(50,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:960026: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(51,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Bucket' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:960037: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(54,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:960056: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(56,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:960073: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(57,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Description' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:960084: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(58,25): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Tags' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:960109: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(59,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.ParameterSchema' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:960127: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(60,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.CommandTemplate' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:960143: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(61,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.ManifestFile' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:960161: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(64,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:960173: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(66,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:960185: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(67,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:960197: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(68,32): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Tools' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:960220: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(71,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:960235: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(73,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:960258: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(74,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:960269: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(75,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Updated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:960287: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(76,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Added' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:960305: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(77,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Unchanged' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:960310: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(15,12): error CS1591: Missing XML comment  +for publicly visible type or member 'ToolLifecycleSequenceTests.ToolLifecycleSequenceTests(ToolRegistryFixture, ITestOutputHelper)'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:960337: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(18,23): error CS1591: Missing XML comment  +for publicly visible type or member 'ToolLifecycleSequenceTests.FullToolLifecycle_CreateThroughDelete()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:960349: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(109,23): error CS1591: Missing XML comment  +for publicly visible type or member 'ToolLifecycleSequenceTests.FullBucketLifecycle_AddThroughRemove()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:960381: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(8,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:960401: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(9,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.ToolRoute' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:960424: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.BucketRoute' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:960458: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.Client' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:960477: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.ToolRegistryFixture()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:960489: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(27,17): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.Dispose()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:960505: 21:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(31,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryCollection' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:960584: 19:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.GitHubEndpointTests(GitHubEndpointFixture)' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:960596: 19:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(20,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListIssues_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:960606: 19:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(30,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListIssues_WithState_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:960626: 19:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(39,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.GetIssue_ExistingNumber_Returns200Or404()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:960660: 19:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(50,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CreateIssue_MissingTitle_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:960676: 19:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.UpdateIssue_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:960701: 19:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(69,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CommentOnIssue_MissingBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:960709: 19:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(79,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListLabels_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:960722: 19:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(90,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListPulls_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:960745: 19:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(100,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListPulls_WithState_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:960758: 19:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(109,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CommentOnPull_MissingBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:960765: 19:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(119,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CloseIssue_NonExistent_ReturnsBadRequestOr200()'  +[E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:960775: 19:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(130,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ReopenIssue_NonExistent_ReturnsBadRequestOr200()'  +[E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:960788: 19:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(140,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncFromGitHub_Returns200Or400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:960801: 19:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(150,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncToGitHub_Returns200Or400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:960829: 19:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(160,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncSingleIssue_Returns200Or400Or404()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:960842: 19:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointCollection' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:960858: 19:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:960877: 19:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:960900: 19:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.GhRoute' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:960914: 19:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:960931: 19:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.GitHubEndpointFixture()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:960952: 19:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:970127: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.CreateTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970136: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(21,22): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970152: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(23,28): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970166: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(29,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_ValidRequest_Returns201()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970180: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(62,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_DuplicateId_Returns409()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970193: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(77,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970204: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(91,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_WithImplementationTasks_Returns201()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970222: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.DeleteTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970235: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(17,23): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.Delete_ExistingItem_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970246: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(40,23): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.Delete_NonExistentItem_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970253: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible type  +or member 'GetTodoTests.GetTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970272: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly visible type  +or member 'GetTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970288: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly visible type  +or member 'GetTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970302: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly visible type  +or member 'GetTodoTests.Get_ValidId_Returns200WithItem()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970324: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(51,23): error CS1591: Missing XML comment for publicly visible type  +or member 'GetTodoTests.Get_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970337: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.QueryTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970347: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(17,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_NoFilters_Returns200WithValidStructure()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970370: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(31,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ResponseIsJson()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970400: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(40,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByPriority_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970427: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(55,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByDoneStatus_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970453: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(69,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByKeyword_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970472: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(81,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_BySection_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970483: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(95,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ById_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970496: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(114,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_NonMatchingKeyword_ReturnsEmptyList()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970511: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.RequirementsTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970528: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970543: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970558: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.Requirements_RegisteredItem_ReturnsResult()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970565: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.Requirements_NonExistentItem_Returns422()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970576: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.UpdateTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970590: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970599: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970615: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ChangeTitle_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970628: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(50,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ToggleDone_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970635: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(66,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ChangePriority_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970648: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(82,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970656: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(93,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970671: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(18,12): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.TodoErrorTests(TodoEndpointFixture, ITestOutputHelper)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970682: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(27,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Get_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970701: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(36,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Update_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970713: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(46,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Delete_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970723: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(57,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Create_Duplicate_Returns409()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970732: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(84,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Create_EmptyBody_ReturnsBadRequest()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970747: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(97,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Update_NullBody_Returns400OrUnsupportedMedia()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970760: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(114,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Patch_NotSupported_Returns405()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970774: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(128,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Query_InvalidPriority_Returns200EmptyOrAll()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970786: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(140,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Query_MultipleFilters_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970802: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(6,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Id' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970815: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(7,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Title' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970832: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(8,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Section' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970846: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(9,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Priority' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970858: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(10,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Done' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970872: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(11,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Estimate' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970893: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(12,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Note' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970904: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(13,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Description' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970919: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(14,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.TechnicalDetails' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970935: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(15,32): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.ImplementationTasks' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970949: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(16,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.CompletedDate' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970960: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(17,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.DoneSummary' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970967: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(18,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Remaining' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970980: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(19,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.PriorityNote' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:970991: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(20,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Reference' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:971001: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(21,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.DependsOn' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:971012: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(22,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.FunctionalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:971025: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(23,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.TechnicalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:971040: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(29,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatTask.Task' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:971058: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(30,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatTask.Done' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:971072: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(36,31): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoQueryResult.Items' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:971084: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(37,16): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoQueryResult.TotalCount' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:971099: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(43,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Success' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:971110: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(44,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:971122: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(45,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Item' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:971131: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(51,17): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.Success' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:971144: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(52,26): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.FunctionalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:971158: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(53,26): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.TechnicalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:971173: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(54,20): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:971184: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(55,20): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.CopilotResponse' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:971194: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(61,20): error CS1591: Missing XML comment for publicly visible type or  +member 'ErrorResponse.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:971209: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\SequenceTests\TodoLifecycleSequenceTests.cs(18,12): error CS1591: Missing XML comment for  +publicly visible type or member 'TodoLifecycleSequenceTests.TodoLifecycleSequenceTests(TodoEndpointFixture, ITestOutputHelper)'  +[E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:971222: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\SequenceTests\TodoLifecycleSequenceTests.cs(25,23): error CS1591: Missing XML comment for  +publicly visible type or member 'TodoLifecycleSequenceTests.FullLifecycle_CreateThroughDelete()'  +[E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:971232: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\TodoEndpointFixture.cs(20,12): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoEndpointFixture.TodoEndpointFixture()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:971247: 17:6>E:\github\McpServer\tests\McpServer.Todo.Validation\TodoEndpointFixture.cs(33,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:971343: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(10,21): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971359: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971420: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialog_ToExistingEntry_Returns200WithCount()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971436: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(70,23): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialog_MultipleAppends_AccumulatesCount()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971448: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(115,23): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialog_NonExistentSession_Returns404()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971464: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971475: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.QuerySessionLogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971502: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_NoFilters_Returns200WithResults()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971511: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(30,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByAgent_Returns200Filtered()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971527: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(57,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByModel_Returns200Filtered()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971544: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(82,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByDateRange_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971558: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(95,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_WithPagination_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971570: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(107,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_NonMatchingAgent_ReturnsEmptyResults()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971582: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(119,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByText_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971594: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971602: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.SubmitSessionLogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971621: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_MinimalSessionLog_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971628: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(44,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_FullSessionLogWithEntries_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971641: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(94,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_UpsertSameSession_Returns201WithUpdatedData()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971652: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(135,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_WithProcessingDialog_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971664: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(11,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971677: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(16,12): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.SessionLogErrorTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971686: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(19,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.Submit_MissingSourceType_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971697: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(37,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.Submit_MissingSessionId_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971712: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(55,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.Submit_EmptySourceType_Returns400()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971723: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(70,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.Submit_EmptySessionId_Returns400()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971738: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(85,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.AppendDialog_EmptyItemsList_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971751: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(94,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogErrorTests.Submit_InvalidJsonBody_Returns400()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971762: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(5,21): error CS1591: Missing XML comment for publicly visible  +type or member 'SubmitResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971773: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(7,41): error CS1591: Missing XML comment for publicly visible  +type or member 'SubmitResult.Id' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971786: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(8,53): error CS1591: Missing XML comment for publicly visible  +type or member 'SubmitResult.SourceType' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971799: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(9,52): error CS1591: Missing XML comment for publicly visible  +type or member 'SubmitResult.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971808: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(12,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ErrorResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971823: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(14,48): error CS1591: Missing XML comment for publicly visible  +type or member 'ErrorResult.Error' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971832: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(17,21): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971843: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(19,49): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryResult.TotalCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971856: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(20,44): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryResult.Limit' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971867: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(21,45): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryResult.Offset' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971882: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(22,62): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryResult.Items' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971893: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(25,21): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971908: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(27,41): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Id' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971919: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(28,53): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.SourceType' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971930: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(29,52): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971945: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(30,48): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Title' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971952: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(31,48): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Model' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971965: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(32,49): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971978: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(33,49): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.EntryCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971989: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(34,50): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Started' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:971998: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(35,54): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.LastUpdated' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:972009: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(36,58): error CS1591: Missing XML comment for publicly visible  +type or member 'SessionSummary.Entries' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:972019: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(39,21): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:972034: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(41,52): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.RequestId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:972045: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(42,52): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.QueryText' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:972061: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(43,53): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.QueryTitle' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:972071: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(44,51): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.Response' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:972080: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(45,49): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:972093: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(46,53): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.Tags' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:972102: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(47,59): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.Actions' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:972115: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(48,72): error CS1591: Missing XML comment for publicly visible  +type or member 'EntryDto.ProcessingDialog' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:972124: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(51,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:972136: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(53,44): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto.Order' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:972145: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(54,54): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto.Description' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:972163: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(55,47): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto.Type' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:972180: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(56,49): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:972200: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(57,51): error CS1591: Missing XML comment for publicly visible  +type or member 'ActionDto.FilePath' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:972217: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(60,21): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogItemDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:972235: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(62,52): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogItemDto.Timestamp' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:972246: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(63,47): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogItemDto.Role' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:972259: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(64,50): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogItemDto.Content' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:972266: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(65,51): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogItemDto.Category' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:972275: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(68,21): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogAppendResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:972291: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(70,48): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogAppendResult.Agent' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:972302: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(71,52): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogAppendResult.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:972309: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(72,52): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogAppendResult.RequestId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:972318: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(73,55): error CS1591: Missing XML comment for publicly visible  +type or member 'DialogAppendResult.TotalDialogCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:972327: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:972336: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests.SessionLogLifecycleTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:972345: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests.FullLifecycle_Submit_Query_AppendDialog_Requery()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:972356: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:972369: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.SessionLogRoute' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:972384: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(13,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:972391: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(14,20): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.ApiKey' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:972404: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(16,12): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.SessionLogEndpointFixture()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:972415: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(30,17): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:972426: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(34,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointCollection' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014631: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(9,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1014632: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(14,12): error CS1591: Missing XML comment for  +publicly visible type or member 'ContextEndpointTests.ContextEndpointTests(ContextEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1014633: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(19,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ContextEndpointTests.Sources_Returns200WithSourcesArray()'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1014634: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(31,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ContextEndpointTests.Search_EmptyQuery_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1014635: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(42,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ContextEndpointTests.Search_WithQuery_Returns200WithResults()'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1014636: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(54,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ContextEndpointTests.Search_WithSourceTypeFilter_Returns200()'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1014637: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(62,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ContextEndpointTests.Search_LimitClamped_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1014638: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(72,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ContextEndpointTests.Pack_EmptyQuery_Returns200WithPack()'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1014639: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(84,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ContextEndpointTests.Pack_WithQueryId_Returns200WithSameQueryId()'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1014640: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(95,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ContextEndpointTests.Pack_WithQuery_ReturnsFilteredChunks()'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1014641: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(105,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ContextEndpointTests.RebuildIndex_Returns200Or500()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1014642: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointCollection' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1014643: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1014644: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1014645: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.ContextRoute' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1014646: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1014647: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.ContextEndpointFixture()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1014648: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1014653: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(13,12): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BucketTests(ToolRegistryFixture)' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014654: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.ListBuckets_Returns200WithValidStructure()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014655: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(31,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.AddBucket_ValidRequest_Returns201()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014656: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(52,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.AddBucket_Duplicate_Returns409()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014657: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(73,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.RemoveBucket_Existing_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014658: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(87,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.RemoveBucket_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014659: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(96,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BrowseBucket_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014660: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(103,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BrowseBucket_Existing_ReturnsResult()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014661: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(126,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.InstallFromBucket_NonExistentBucket_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014662: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(136,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.SyncBucket_NonExistentBucket_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014663: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(144,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.SyncBucket_Existing_Returns200Or404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014664: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(13,12): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.ToolCrudTests(ToolRegistryFixture)' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014665: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.List_Returns200WithValidStructure()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014666: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(29,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.List_ResponseIsJson()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014667: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(38,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_WithKeyword_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014668: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(47,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_NonMatchingKeyword_ReturnsEmpty()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014669: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Create_ValidTool_Returns201()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014670: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(92,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Create_DuplicateName_Returns409()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014671: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(113,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Get_ExistingTool_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014672: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(136,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Get_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014673: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(143,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Update_ChangeName_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014674: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(170,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Update_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014675: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(178,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Delete_ExistingTool_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014676: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(198,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Delete_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014677: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(207,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_ByTag_FindsCreatedTool()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014678: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(13,12): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.ToolRegistryErrorTests(ToolRegistryFixture)'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014679: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(16,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Get_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014680: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(23,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Update_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014681: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(30,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Delete_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014682: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(37,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.RemoveBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014683: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(44,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.BrowseBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014684: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(51,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.SyncBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014685: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(58,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.InstallFromBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014686: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(66,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Patch_NotSupported_Returns405()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014687: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(77,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Get_InvalidIdFormat_Returns404Or400()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014688: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(87,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Create_DuplicateName_Returns409()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014689: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(111,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.AddBucket_Duplicate_Returns409()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014690: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(130,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Search_WithWorkspace_Returns200()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014691: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(138,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.List_WithWorkspace_Returns200()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014692: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(3,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014693: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(5,16): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Id' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014694: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(6,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014695: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(7,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Description' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014696: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(8,25): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Tags' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014697: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(9,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.ParameterSchema' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014698: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(10,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.CommandTemplate' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014699: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(11,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.WorkspacePath' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014700: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(12,27): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.DateTimeCreated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014701: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(13,27): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.DateTimeModified' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014702: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(16,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014703: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(18,26): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult.Tools' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014704: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(19,16): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult.TotalCount' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014705: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(22,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014706: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(24,17): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014707: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(25,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014708: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(26,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Tool' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014709: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(29,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014710: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(31,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Id' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014711: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(32,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014712: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(33,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Owner' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014713: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(34,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Repo' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014714: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(35,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Branch' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014715: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(36,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.ManifestPath' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014716: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(37,27): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.DateTimeCreated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014717: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(38,28): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.DateTimeLastSynced' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014718: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(41,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014719: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(43,28): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult.Buckets' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014720: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(44,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult.TotalCount' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014721: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(47,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014722: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(49,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014723: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(50,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014724: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(51,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Bucket' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014725: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(54,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014726: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(56,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014727: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(57,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Description' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014728: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(58,25): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Tags' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014729: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(59,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.ParameterSchema' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014730: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(60,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.CommandTemplate' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014731: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(61,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.ManifestFile' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014732: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(64,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014733: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(66,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014734: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(67,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014735: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(68,32): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Tools' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014736: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(71,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014737: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(73,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014738: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(74,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014739: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(75,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Updated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014740: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(76,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Added' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014741: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(77,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Unchanged' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014742: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(15,12): error CS1591: Missing XML  +comment for publicly visible type or member 'ToolLifecycleSequenceTests.ToolLifecycleSequenceTests(ToolRegistryFixture, ITestOutputHelper)'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014743: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(18,23): error CS1591: Missing XML  +comment for publicly visible type or member 'ToolLifecycleSequenceTests.FullToolLifecycle_CreateThroughDelete()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014744: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(109,23): error CS1591: Missing XML  +comment for publicly visible type or member 'ToolLifecycleSequenceTests.FullBucketLifecycle_AddThroughRemove()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014745: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(8,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014746: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(9,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.ToolRoute' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014747: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(10,25): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolRegistryFixture.BucketRoute' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014748: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(12,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolRegistryFixture.Client' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014749: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(14,12): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolRegistryFixture.ToolRegistryFixture()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014750: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(27,17): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolRegistryFixture.Dispose()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014751: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(31,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolRegistryCollection' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1014756: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.RepoEndpointTests(RepoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1014757: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(20,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.List_RootPath_Returns200WithEntries()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1014758: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(30,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.List_WithPath_Returns200()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1014759: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(42,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.ReadFile_MissingPath_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1014760: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(51,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.ReadFile_ExistingFile_Returns200()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1014761: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.ReadFile_NonExistentFile_Returns200Or400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1014762: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(71,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.WriteFile_MissingPath_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1014763: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(79,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.WriteFile_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1014764: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(86,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.WriteFile_ValidPath_Returns200Or400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1014765: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointCollection' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1014766: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1014767: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible type  +or member 'RepoEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1014768: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible type  +or member 'RepoEndpointFixture.RepoRoute' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1014769: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible type  +or member 'RepoEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1014770: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible type  +or member 'RepoEndpointFixture.RepoEndpointFixture()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1014771: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible type  +or member 'RepoEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1014776: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.GitHubEndpointTests(GitHubEndpointFixture)' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1014777: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(20,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListIssues_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1014778: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(30,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListIssues_WithState_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1014779: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(39,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.GetIssue_ExistingNumber_Returns200Or404()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1014780: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(50,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CreateIssue_MissingTitle_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1014781: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.UpdateIssue_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1014782: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(69,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CommentOnIssue_MissingBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1014783: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(79,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListLabels_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1014784: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(90,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListPulls_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1014785: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(100,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListPulls_WithState_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1014786: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(109,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CommentOnPull_MissingBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1014787: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(119,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CloseIssue_NonExistent_ReturnsBadRequestOr200()'  +[E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1014788: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(130,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ReopenIssue_NonExistent_ReturnsBadRequestOr200()'  +[E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1014789: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(140,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncFromGitHub_Returns200Or400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1014790: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(150,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncToGitHub_Returns200Or400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1014791: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(160,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncSingleIssue_Returns200Or400Or404()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1014792: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointCollection' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1014793: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1014794: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1014795: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.GhRoute' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1014796: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1014797: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.GitHubEndpointFixture()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1014798: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1014803: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'CreateTodoTests.CreateTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014804: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(21,22): error CS1591: Missing XML comment for publicly  +visible type or member 'CreateTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014805: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(23,28): error CS1591: Missing XML comment for publicly  +visible type or member 'CreateTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014806: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(29,23): error CS1591: Missing XML comment for publicly  +visible type or member 'CreateTodoTests.Create_ValidRequest_Returns201()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014807: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(62,23): error CS1591: Missing XML comment for publicly  +visible type or member 'CreateTodoTests.Create_DuplicateId_Returns409()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014808: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(77,23): error CS1591: Missing XML comment for publicly  +visible type or member 'CreateTodoTests.Create_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014809: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(91,23): error CS1591: Missing XML comment for publicly  +visible type or member 'CreateTodoTests.Create_WithImplementationTasks_Returns201()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014810: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(14,12): error CS1591: Missing XML comment for publicly  +visible type or member 'DeleteTodoTests.DeleteTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014811: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(17,23): error CS1591: Missing XML comment for publicly  +visible type or member 'DeleteTodoTests.Delete_ExistingItem_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014812: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(40,23): error CS1591: Missing XML comment for publicly  +visible type or member 'DeleteTodoTests.Delete_NonExistentItem_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014813: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.GetTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014814: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014815: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014816: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.Get_ValidId_Returns200WithItem()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014817: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(51,23): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.Get_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014818: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.QueryTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014819: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(17,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_NoFilters_Returns200WithValidStructure()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014820: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(31,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ResponseIsJson()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014821: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(40,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByPriority_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014822: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(55,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByDoneStatus_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014823: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(69,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByKeyword_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014824: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(81,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_BySection_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014825: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(95,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ById_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014826: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(114,23): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryTodoTests.Query_NonMatchingKeyword_ReturnsEmptyList()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014827: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.RequirementsTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014828: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014829: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014830: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.Requirements_RegisteredItem_ReturnsResult()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014831: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.Requirements_NonExistentItem_Returns422()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014832: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'UpdateTodoTests.UpdateTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014833: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly  +visible type or member 'UpdateTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014834: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly  +visible type or member 'UpdateTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014835: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly  +visible type or member 'UpdateTodoTests.Update_ChangeTitle_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014836: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(50,23): error CS1591: Missing XML comment for publicly  +visible type or member 'UpdateTodoTests.Update_ToggleDone_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014837: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(66,23): error CS1591: Missing XML comment for publicly  +visible type or member 'UpdateTodoTests.Update_ChangePriority_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014838: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(82,23): error CS1591: Missing XML comment for publicly  +visible type or member 'UpdateTodoTests.Update_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014839: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(93,23): error CS1591: Missing XML comment for publicly  +visible type or member 'UpdateTodoTests.Update_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014840: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(18,12): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.TodoErrorTests(TodoEndpointFixture, ITestOutputHelper)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014841: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(27,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Get_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014842: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(36,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Update_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014843: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(46,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Delete_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014844: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(57,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Create_Duplicate_Returns409()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014845: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(84,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Create_EmptyBody_ReturnsBadRequest()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014846: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(97,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Update_NullBody_Returns400OrUnsupportedMedia()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014847: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(114,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Patch_NotSupported_Returns405()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014848: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(128,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Query_InvalidPriority_Returns200EmptyOrAll()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014849: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(140,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Query_MultipleFilters_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014850: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(6,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Id' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014851: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(7,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Title' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014852: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(8,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Section' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014853: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(9,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Priority' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014854: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(10,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Done' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014855: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(11,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Estimate' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014856: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(12,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Note' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014857: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(13,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Description' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014858: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(14,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.TechnicalDetails' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014859: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(15,32): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.ImplementationTasks' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014860: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(16,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.CompletedDate' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014861: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(17,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.DoneSummary' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014862: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(18,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Remaining' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014863: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(19,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.PriorityNote' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014864: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(20,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Reference' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014865: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(21,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.DependsOn' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014866: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(22,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.FunctionalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014867: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(23,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.TechnicalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014868: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(29,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatTask.Task' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014869: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(30,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatTask.Done' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014870: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(36,31): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoQueryResult.Items' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014871: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(37,16): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoQueryResult.TotalCount' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014872: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(43,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Success' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014873: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(44,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014874: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(45,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Item' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014875: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(51,17): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.Success' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014876: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(52,26): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.FunctionalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014877: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(53,26): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.TechnicalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014878: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(54,20): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014879: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(55,20): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.CopilotResponse' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014880: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(61,20): error CS1591: Missing XML comment for publicly visible type or  +member 'ErrorResponse.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014881: E:\github\McpServer\tests\McpServer.Todo.Validation\SequenceTests\TodoLifecycleSequenceTests.cs(18,12): error CS1591: Missing XML comment for  +publicly visible type or member 'TodoLifecycleSequenceTests.TodoLifecycleSequenceTests(TodoEndpointFixture, ITestOutputHelper)'  +[E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014882: E:\github\McpServer\tests\McpServer.Todo.Validation\SequenceTests\TodoLifecycleSequenceTests.cs(25,23): error CS1591: Missing XML comment for  +publicly visible type or member 'TodoLifecycleSequenceTests.FullLifecycle_CreateThroughDelete()'  +[E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014883: E:\github\McpServer\tests\McpServer.Todo.Validation\TodoEndpointFixture.cs(20,12): error CS1591: Missing XML comment for publicly visible type  +or member 'TodoEndpointFixture.TodoEndpointFixture()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014884: E:\github\McpServer\tests\McpServer.Todo.Validation\TodoEndpointFixture.cs(33,17): error CS1591: Missing XML comment for publicly visible type  +or member 'TodoEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1014889: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'AppendDialogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014890: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'AppendDialogTests.AppendDialogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014891: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'AppendDialogTests.AppendDialog_ToExistingEntry_Returns200WithCount()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014892: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(70,23): error CS1591: Missing XML comment for  +publicly visible type or member 'AppendDialogTests.AppendDialog_MultipleAppends_AccumulatesCount()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014893: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(115,23): error CS1591: Missing XML comment for  +publicly visible type or member 'AppendDialogTests.AppendDialog_NonExistentSession_Returns404()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014894: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014895: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.QuerySessionLogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014896: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_NoFilters_Returns200WithResults()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014897: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(30,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByAgent_Returns200Filtered()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014898: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(57,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByModel_Returns200Filtered()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014899: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(82,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByDateRange_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014900: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(95,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_WithPagination_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014901: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(107,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_NonMatchingAgent_ReturnsEmptyResults()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014902: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(119,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByText_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014903: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014904: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.SubmitSessionLogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014905: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_MinimalSessionLog_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014906: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(44,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_FullSessionLogWithEntries_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014907: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(94,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_UpsertSameSession_Returns201WithUpdatedData()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014908: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(135,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_WithProcessingDialog_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014909: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(11,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014910: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(16,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.SessionLogErrorTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014911: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(19,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_MissingSourceType_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014912: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(37,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_MissingSessionId_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014913: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(55,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_EmptySourceType_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014914: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(70,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_EmptySessionId_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014915: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(85,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.AppendDialog_EmptyItemsList_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014916: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(94,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_InvalidJsonBody_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014917: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(5,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SubmitResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014918: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(7,41): error CS1591: Missing XML comment for publicly  +visible type or member 'SubmitResult.Id' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014919: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(8,53): error CS1591: Missing XML comment for publicly  +visible type or member 'SubmitResult.SourceType' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014920: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(9,52): error CS1591: Missing XML comment for publicly  +visible type or member 'SubmitResult.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014921: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(12,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ErrorResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014922: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(14,48): error CS1591: Missing XML comment for publicly  +visible type or member 'ErrorResult.Error' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014923: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(17,21): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014924: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(19,49): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult.TotalCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014925: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(20,44): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult.Limit' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014926: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(21,45): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult.Offset' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014927: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(22,62): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult.Items' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014928: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(25,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014929: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(27,41): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Id' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014930: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(28,53): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.SourceType' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014931: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(29,52): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014932: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(30,48): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Title' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014933: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(31,48): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Model' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014934: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(32,49): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014935: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(33,49): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.EntryCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014936: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(34,50): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Started' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014937: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(35,54): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.LastUpdated' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014938: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(36,58): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Entries' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014939: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(39,21): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014940: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(41,52): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.RequestId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014941: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(42,52): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.QueryText' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014942: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(43,53): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.QueryTitle' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014943: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(44,51): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.Response' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014944: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(45,49): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014945: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(46,53): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.Tags' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014946: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(47,59): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.Actions' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014947: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(48,72): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.ProcessingDialog' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014948: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(51,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014949: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(53,44): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.Order' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014950: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(54,54): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.Description' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014951: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(55,47): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.Type' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014952: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(56,49): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014953: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(57,51): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.FilePath' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014954: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(60,21): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014955: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(62,52): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto.Timestamp' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014956: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(63,47): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto.Role' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014957: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(64,50): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto.Content' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014958: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(65,51): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto.Category' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014959: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(68,21): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014960: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(70,48): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult.Agent' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014961: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(71,52): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014962: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(72,52): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult.RequestId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014963: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(73,55): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult.TotalDialogCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014964: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(10,21): error CS1591: Missing XML comment  +for publicly visible type or member 'SessionLogLifecycleTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014965: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(15,12): error CS1591: Missing XML comment  +for publicly visible type or member 'SessionLogLifecycleTests.SessionLogLifecycleTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014966: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(18,23): error CS1591: Missing XML comment  +for publicly visible type or member 'SessionLogLifecycleTests.FullLifecycle_Submit_Query_AppendDialog_Requery()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014967: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014968: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.SessionLogRoute' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014969: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(13,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014970: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(14,20): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.ApiKey' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014971: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(16,12): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.SessionLogEndpointFixture()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014972: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(30,17): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1014973: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(34,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointCollection' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1072741: 7:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(9,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1072752: 7:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(14,12): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.ContextEndpointTests(ContextEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1072827: 7:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(19,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Sources_Returns200WithSourcesArray()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1072959: 7:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(31,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_EmptyQuery_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1073084: 7:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(42,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_WithQuery_Returns200WithResults()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1073177: 7:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(54,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_WithSourceTypeFilter_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1073280: 7:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(62,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Search_LimitClamped_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1073380: 7:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(72,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_EmptyQuery_Returns200WithPack()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1073464: 7:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(84,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_WithQueryId_Returns200WithSameQueryId()'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1073515: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.RepoEndpointTests(RepoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1073524: 7:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(95,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.Pack_WithQuery_ReturnsFilteredChunks()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1073620: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(20,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.List_RootPath_Returns200WithEntries()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1073635: 7:6>E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(105,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests.RebuildIndex_Returns200Or500()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1073655: 7:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointCollection' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1073657: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(30,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.List_WithPath_Returns200()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1073671: 7:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1073676: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(42,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.ReadFile_MissingPath_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1073681: 7:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1073686: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(51,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.ReadFile_ExistingFile_Returns200()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1073695: 7:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.ContextRoute' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1073700: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.ReadFile_NonExistentFile_Returns200Or400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1073706: 7:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1073715: 7:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.ContextEndpointFixture()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1073717: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(71,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.WriteFile_MissingPath_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1073730: 7:6>E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1073732: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(79,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.WriteFile_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1073750: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(86,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.WriteFile_ValidPath_Returns200Or400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1073762: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointCollection' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1073771: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1073782: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1073797: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.RepoRoute' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1073823: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1073843: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.RepoEndpointFixture()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1073858: 16:6>E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1075357: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(10,21): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075369: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075380: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialog_ToExistingEntry_Returns200WithCount()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075396: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(70,23): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialog_MultipleAppends_AccumulatesCount()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075418: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(115,23): error CS1591: Missing XML comment for publicly  +visible type or member 'AppendDialogTests.AppendDialog_NonExistentSession_Returns404()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075427: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075444: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.QuerySessionLogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075459: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_NoFilters_Returns200WithResults()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075472: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(30,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByAgent_Returns200Filtered()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075483: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(57,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByModel_Returns200Filtered()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075493: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(82,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByDateRange_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075506: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(95,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_WithPagination_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075516: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(107,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_NonMatchingAgent_ReturnsEmptyResults()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075527: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(119,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByText_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075538: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075560: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.SubmitSessionLogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075575: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_MinimalSessionLog_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075586: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(44,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_FullSessionLogWithEntries_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075593: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(94,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_UpsertSameSession_Returns201WithUpdatedData()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075606: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(135,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_WithProcessingDialog_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075613: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(11,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075626: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(16,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.SessionLogErrorTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075635: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(19,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_MissingSourceType_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075654: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(37,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_MissingSessionId_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075663: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(55,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_EmptySourceType_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075676: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(70,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_EmptySessionId_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075687: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(85,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.AppendDialog_EmptyItemsList_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075695: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(94,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_InvalidJsonBody_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075711: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(5,21): error CS1591: Missing XML comment for publicly visible  +type or member 'SubmitResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075719: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(7,41): error CS1591: Missing XML comment for publicly visible  +type or member 'SubmitResult.Id' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075730: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(8,53): error CS1591: Missing XML comment for publicly visible  +type or member 'SubmitResult.SourceType' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075743: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(9,52): error CS1591: Missing XML comment for publicly visible  +type or member 'SubmitResult.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075753: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(12,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ErrorResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075765: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(14,48): error CS1591: Missing XML comment for publicly  +visible type or member 'ErrorResult.Error' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075778: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(17,21): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075787: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(19,49): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult.TotalCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075795: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(20,44): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult.Limit' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075812: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(21,45): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult.Offset' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075824: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(22,62): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult.Items' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075830: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(13,12): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BucketTests(ToolRegistryFixture)' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1075839: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.ListBuckets_Returns200WithValidStructure()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1075846: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(25,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075855: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(31,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.AddBucket_ValidRequest_Returns201()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1075857: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(27,41): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Id' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075862: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(52,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.AddBucket_Duplicate_Returns409()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1075865: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(28,53): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.SourceType' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075870: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(73,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.RemoveBucket_Existing_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1075874: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(29,52): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075875: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(87,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.RemoveBucket_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1075877: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(30,48): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Title' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075884: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(96,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BrowseBucket_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1075889: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(31,48): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Model' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075892: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(103,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BrowseBucket_Existing_ReturnsResult()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1075896: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(32,49): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075903: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(126,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.InstallFromBucket_NonExistentBucket_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1075909: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(33,49): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.EntryCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075914: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(136,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.SyncBucket_NonExistentBucket_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1075922: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(34,50): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Started' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075923: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(144,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.SyncBucket_Existing_Returns200Or404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1075930: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(35,54): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.LastUpdated' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075934: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(13,12): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.ToolCrudTests(ToolRegistryFixture)' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1075941: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(36,58): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Entries' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075946: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.List_Returns200WithValidStructure()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1075952: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(39,21): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075956: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(29,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.List_ResponseIsJson()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1075957: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(41,52): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.RequestId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075969: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(42,52): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.QueryText' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075970: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(38,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_WithKeyword_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1075980: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(47,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_NonMatchingKeyword_ReturnsEmpty()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1075981: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(43,53): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.QueryTitle' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075991: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(44,51): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.Response' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1075995: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Create_ValidTool_Returns201()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1075998: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(45,49): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1076003: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(92,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Create_DuplicateName_Returns409()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076004: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(46,53): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.Tags' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1076011: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(113,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Get_ExistingTool_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076018: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(47,59): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.Actions' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1076023: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(136,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Get_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076032: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(48,72): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.ProcessingDialog' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1076035: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(143,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Update_ChangeName_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076036: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.GitHubEndpointTests(GitHubEndpointFixture)' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1076040: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(51,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1076045: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(170,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Update_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076047: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(20,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListIssues_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1076050: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(53,44): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.Order' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1076054: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(178,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Delete_ExistingTool_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076056: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(30,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListIssues_WithState_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1076057: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(54,54): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.Description' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1076061: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(198,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Delete_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076062: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(39,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.GetIssue_ExistingNumber_Returns200Or404()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1076065: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(55,47): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.Type' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1076071: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(207,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_ByTag_FindsCreatedTool()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076072: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(50,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CreateIssue_MissingTitle_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1076075: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(56,49): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1076082: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.UpdateIssue_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1076083: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(13,12): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.ToolRegistryErrorTests(ToolRegistryFixture)'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076084: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(57,51): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.FilePath' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1076090: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(69,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CommentOnIssue_MissingBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1076091: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(60,21): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1076092: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(16,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Get_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076097: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(79,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListLabels_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1076099: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(62,52): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto.Timestamp' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1076100: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(23,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Update_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076103: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(90,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListPulls_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1076106: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(63,47): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto.Role' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1076109: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(30,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Delete_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076114: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(100,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListPulls_WithState_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1076115: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(64,50): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto.Content' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1076120: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(37,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.RemoveBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076126: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(109,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CommentOnPull_MissingBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1076129: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(65,51): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto.Category' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1076130: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(44,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.BrowseBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076135: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(119,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CloseIssue_NonExistent_ReturnsBadRequestOr200()'  +[E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1076138: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(68,21): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1076140: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(51,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.SyncBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076143: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(130,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ReopenIssue_NonExistent_ReturnsBadRequestOr200()'  +[E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1076146: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(70,48): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult.Agent' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1076147: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(140,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncFromGitHub_Returns200Or400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1076148: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(58,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.InstallFromBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076153: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(71,52): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1076157: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(150,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncToGitHub_Returns200Or400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1076160: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(66,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Patch_NotSupported_Returns405()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076165: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(160,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncSingleIssue_Returns200Or400Or404()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1076166: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(72,52): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult.RequestId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1076169: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(77,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Get_InvalidIdFormat_Returns404Or400()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076174: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointCollection' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1076176: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(73,55): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult.TotalDialogCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1076179: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(87,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Create_DuplicateName_Returns409()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076181: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1076185: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1076188: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(111,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.AddBucket_Duplicate_Returns409()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076191: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1076194: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests.SessionLogLifecycleTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1076197: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.GhRoute' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1076199: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(130,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Search_WithWorkspace_Returns200()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076204: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogLifecycleTests.FullLifecycle_Submit_Query_AppendDialog_Requery()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1076205: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1076210: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(138,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.List_WithWorkspace_Returns200()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076215: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1076218: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.GitHubEndpointFixture()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1076221: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(3,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076224: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.SessionLogRoute' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1076229: 17:6>E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible type  +or member 'GitHubEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1076232: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(5,16): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Id' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076239: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(13,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1076245: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(6,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076246: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(14,20): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.ApiKey' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1076254: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(7,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Description' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076255: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(16,12): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.SessionLogEndpointFixture()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1076264: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(30,17): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1076265: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(8,25): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Tags' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076276: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(9,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.ParameterSchema' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076278: 20:6>E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(34,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointCollection' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1076286: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(10,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.CommandTemplate' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076296: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(11,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.WorkspacePath' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076309: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(12,27): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.DateTimeCreated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076316: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(13,27): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.DateTimeModified' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076331: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(16,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076339: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(18,26): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult.Tools' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076350: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(19,16): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult.TotalCount' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076366: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(22,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076375: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(24,17): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076385: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(25,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076395: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(26,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Tool' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076407: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(29,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076417: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(31,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Id' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076424: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(32,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076436: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(33,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Owner' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076446: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(34,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Repo' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076459: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(35,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Branch' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076469: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(36,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.ManifestPath' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076476: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(37,27): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.DateTimeCreated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076482: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(38,28): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.DateTimeLastSynced' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076494: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(41,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076505: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(43,28): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult.Buckets' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076512: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(44,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult.TotalCount' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076523: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(47,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076528: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(49,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076536: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(50,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076544: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(51,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Bucket' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076552: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(54,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076559: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(56,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076563: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(57,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Description' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076570: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(58,25): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Tags' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076576: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(59,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.ParameterSchema' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076584: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(60,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.CommandTemplate' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076591: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(61,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.ManifestFile' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076599: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(64,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076608: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(66,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076631: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(67,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076639: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(68,32): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Tools' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076646: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(71,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076654: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(73,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076669: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(74,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076674: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(75,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Updated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076681: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(76,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Added' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076693: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(77,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Unchanged' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076700: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(15,12): error CS1591: Missing XML comment  +for publicly visible type or member 'ToolLifecycleSequenceTests.ToolLifecycleSequenceTests(ToolRegistryFixture, ITestOutputHelper)'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076707: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(18,23): error CS1591: Missing XML comment  +for publicly visible type or member 'ToolLifecycleSequenceTests.FullToolLifecycle_CreateThroughDelete()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076714: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(109,23): error CS1591: Missing XML comment  +for publicly visible type or member 'ToolLifecycleSequenceTests.FullBucketLifecycle_AddThroughRemove()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076722: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(8,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076736: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(9,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.ToolRoute' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076746: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.BucketRoute' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076757: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.Client' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076765: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.ToolRegistryFixture()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076778: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(27,17): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.Dispose()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1076788: 18:6>E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(31,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryCollection' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1078640: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.CreateTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1078645: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(21,22): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1078658: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(23,28): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1078670: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(29,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_ValidRequest_Returns201()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1078680: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(62,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_DuplicateId_Returns409()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1078689: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(77,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1078695: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(91,23): error CS1591: Missing XML comment for publicly visible  +type or member 'CreateTodoTests.Create_WithImplementationTasks_Returns201()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1078702: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.DeleteTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1078712: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(17,23): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.Delete_ExistingItem_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1078717: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(40,23): error CS1591: Missing XML comment for publicly visible  +type or member 'DeleteTodoTests.Delete_NonExistentItem_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1078721: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.GetTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1078725: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1078735: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1078741: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.Get_ValidId_Returns200WithItem()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1078753: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(51,23): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.Get_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1078770: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.QueryTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1078782: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(17,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_NoFilters_Returns200WithValidStructure()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1078793: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(31,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ResponseIsJson()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1078804: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(40,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByPriority_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1078814: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(55,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByDoneStatus_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1078825: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(69,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByKeyword_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1078836: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(81,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_BySection_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1078863: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(95,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ById_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1078874: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(114,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_NonMatchingKeyword_ReturnsEmptyList()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1078881: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.RequirementsTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1078887: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1078894: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1078904: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.Requirements_RegisteredItem_ReturnsResult()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1078911: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.Requirements_NonExistentItem_Returns422()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1078920: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.UpdateTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1078927: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1078934: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1078943: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ChangeTitle_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1078957: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(50,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ToggleDone_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1078965: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(66,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_ChangePriority_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1078974: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(82,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1078983: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(93,23): error CS1591: Missing XML comment for publicly visible  +type or member 'UpdateTodoTests.Update_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1078992: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(18,12): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.TodoErrorTests(TodoEndpointFixture, ITestOutputHelper)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1079003: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(27,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Get_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1079009: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(36,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Update_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1079018: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(46,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Delete_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1079025: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(57,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Create_Duplicate_Returns409()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1079034: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(84,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Create_EmptyBody_ReturnsBadRequest()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1079045: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(97,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Update_NullBody_Returns400OrUnsupportedMedia()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1079054: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(114,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Patch_NotSupported_Returns405()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1079065: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(128,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Query_InvalidPriority_Returns200EmptyOrAll()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1079072: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(140,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Query_MultipleFilters_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1079083: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(6,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Id' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1079092: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(7,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Title' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1079100: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(8,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Section' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1079107: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(9,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Priority' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1079118: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(10,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Done' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1079127: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(11,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Estimate' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1079132: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(12,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Note' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1079138: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(13,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Description' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1079149: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(14,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.TechnicalDetails' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1079157: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(15,32): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.ImplementationTasks' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1079164: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(16,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.CompletedDate' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1079173: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(17,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.DoneSummary' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1079182: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(18,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Remaining' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1079191: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(19,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.PriorityNote' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1079198: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(20,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Reference' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1079207: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(21,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.DependsOn' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1079216: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(22,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.FunctionalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1079223: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(23,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.TechnicalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1079231: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(29,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatTask.Task' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1079240: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(30,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatTask.Done' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1079246: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(36,31): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoQueryResult.Items' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1079252: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(37,16): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoQueryResult.TotalCount' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1079259: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(43,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Success' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1079268: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(44,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1079275: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(45,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Item' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1079288: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(51,17): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.Success' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1079295: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(52,26): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.FunctionalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1079300: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(53,26): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.TechnicalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1079309: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(54,20): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1079319: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(55,20): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.CopilotResponse' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1079327: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(61,20): error CS1591: Missing XML comment for publicly visible type or  +member 'ErrorResponse.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1079334: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\SequenceTests\TodoLifecycleSequenceTests.cs(18,12): error CS1591: Missing XML comment for  +publicly visible type or member 'TodoLifecycleSequenceTests.TodoLifecycleSequenceTests(TodoEndpointFixture, ITestOutputHelper)'  +[E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1079342: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\SequenceTests\TodoLifecycleSequenceTests.cs(25,23): error CS1591: Missing XML comment for  +publicly visible type or member 'TodoLifecycleSequenceTests.FullLifecycle_CreateThroughDelete()'  +[E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1079351: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\TodoEndpointFixture.cs(20,12): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoEndpointFixture.TodoEndpointFixture()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1079360: 21:6>E:\github\McpServer\tests\McpServer.Todo.Validation\TodoEndpointFixture.cs(33,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1128884: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(9,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ContextEndpointTests' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1128885: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(14,12): error CS1591: Missing XML comment for  +publicly visible type or member 'ContextEndpointTests.ContextEndpointTests(ContextEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1128886: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(19,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ContextEndpointTests.Sources_Returns200WithSourcesArray()'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1128887: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(31,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ContextEndpointTests.Search_EmptyQuery_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1128888: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(42,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ContextEndpointTests.Search_WithQuery_Returns200WithResults()'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1128889: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(54,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ContextEndpointTests.Search_WithSourceTypeFilter_Returns200()'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1128890: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(62,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ContextEndpointTests.Search_LimitClamped_Returns200()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1128891: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(72,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ContextEndpointTests.Pack_EmptyQuery_Returns200WithPack()'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1128892: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(84,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ContextEndpointTests.Pack_WithQueryId_Returns200WithSameQueryId()'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1128893: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(95,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ContextEndpointTests.Pack_WithQuery_ReturnsFilteredChunks()'  +[E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1128894: E:\github\McpServer\tests\McpServer.Context.Validation\AtomicTests\ContextEndpointTests.cs(105,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ContextEndpointTests.RebuildIndex_Returns200Or500()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1128895: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointCollection' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1128896: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1128897: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1128898: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.ContextRoute' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1128899: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1128900: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.ContextEndpointFixture()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1128901: E:\github\McpServer\tests\McpServer.Context.Validation\ContextEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible  +type or member 'ContextEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Context.Validation\McpServer.Context.Validation.csproj] +build_results.log:1128906: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.RepoEndpointTests(RepoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1128907: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(20,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.List_RootPath_Returns200WithEntries()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1128908: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(30,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.List_WithPath_Returns200()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1128909: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(42,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.ReadFile_MissingPath_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1128910: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(51,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.ReadFile_ExistingFile_Returns200()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1128911: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.ReadFile_NonExistentFile_Returns200Or400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1128912: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(71,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.WriteFile_MissingPath_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1128913: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(79,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.WriteFile_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1128914: E:\github\McpServer\tests\McpServer.Repo.Validation\AtomicTests\RepoEndpointTests.cs(86,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RepoEndpointTests.WriteFile_ValidPath_Returns200Or400()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1128915: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointCollection' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1128916: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible type or  +member 'RepoEndpointFixture' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1128917: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible type  +or member 'RepoEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1128918: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible type  +or member 'RepoEndpointFixture.RepoRoute' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1128919: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible type  +or member 'RepoEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1128920: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible type  +or member 'RepoEndpointFixture.RepoEndpointFixture()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1128921: E:\github\McpServer\tests\McpServer.Repo.Validation\RepoEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible type  +or member 'RepoEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Repo.Validation\McpServer.Repo.Validation.csproj] +build_results.log:1128926: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'AppendDialogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128927: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'AppendDialogTests.AppendDialogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128928: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'AppendDialogTests.AppendDialog_ToExistingEntry_Returns200WithCount()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128929: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(70,23): error CS1591: Missing XML comment for  +publicly visible type or member 'AppendDialogTests.AppendDialog_MultipleAppends_AccumulatesCount()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128930: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\AppendDialogTests.cs(115,23): error CS1591: Missing XML comment for  +publicly visible type or member 'AppendDialogTests.AppendDialog_NonExistentSession_Returns404()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128931: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128932: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.QuerySessionLogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128933: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_NoFilters_Returns200WithResults()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128934: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(30,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByAgent_Returns200Filtered()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128935: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(57,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByModel_Returns200Filtered()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128936: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(82,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByDateRange_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128937: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(95,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_WithPagination_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128938: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(107,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_NonMatchingAgent_ReturnsEmptyResults()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128939: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\QuerySessionLogTests.cs(119,23): error CS1591: Missing XML comment for  +publicly visible type or member 'QuerySessionLogTests.Query_FilterByText_Returns200()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128940: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(10,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128941: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(15,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.SubmitSessionLogTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128942: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(18,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_MinimalSessionLog_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128943: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(44,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_FullSessionLogWithEntries_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128944: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(94,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_UpsertSameSession_Returns201WithUpdatedData()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128945: E:\github\McpServer\tests\McpServer.SessionLog.Validation\AtomicTests\SubmitSessionLogTests.cs(135,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SubmitSessionLogTests.Submit_WithProcessingDialog_Returns201()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128946: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(11,21): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128947: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(16,12): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.SessionLogErrorTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128948: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(19,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_MissingSourceType_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128949: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(37,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_MissingSessionId_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128950: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(55,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_EmptySourceType_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128951: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(70,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_EmptySessionId_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128952: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(85,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.AppendDialog_EmptyItemsList_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128953: E:\github\McpServer\tests\McpServer.SessionLog.Validation\ErrorTests\SessionLogErrorTests.cs(94,23): error CS1591: Missing XML comment for  +publicly visible type or member 'SessionLogErrorTests.Submit_InvalidJsonBody_Returns400()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128954: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(5,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SubmitResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128955: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(7,41): error CS1591: Missing XML comment for publicly  +visible type or member 'SubmitResult.Id' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128956: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(8,53): error CS1591: Missing XML comment for publicly  +visible type or member 'SubmitResult.SourceType' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128957: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(9,52): error CS1591: Missing XML comment for publicly  +visible type or member 'SubmitResult.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128958: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(12,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ErrorResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128959: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(14,48): error CS1591: Missing XML comment for publicly  +visible type or member 'ErrorResult.Error' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128960: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(17,21): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128961: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(19,49): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult.TotalCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128962: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(20,44): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult.Limit' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128963: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(21,45): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult.Offset' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128964: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(22,62): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryResult.Items' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128965: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(25,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128966: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(27,41): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Id' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128967: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(28,53): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.SourceType' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128968: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(29,52): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128969: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(30,48): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Title' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128970: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(31,48): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Model' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128971: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(32,49): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128972: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(33,49): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.EntryCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128973: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(34,50): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Started' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128974: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(35,54): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.LastUpdated' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128975: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(36,58): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionSummary.Entries' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128976: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(39,21): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128977: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(41,52): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.RequestId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128978: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(42,52): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.QueryText' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128979: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(43,53): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.QueryTitle' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128980: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(44,51): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.Response' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128981: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(45,49): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128982: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(46,53): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.Tags' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128983: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(47,59): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.Actions' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128984: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(48,72): error CS1591: Missing XML comment for publicly  +visible type or member 'EntryDto.ProcessingDialog' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128985: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(51,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128986: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(53,44): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.Order' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128987: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(54,54): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.Description' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128988: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(55,47): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.Type' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128989: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(56,49): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.Status' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128990: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(57,51): error CS1591: Missing XML comment for publicly  +visible type or member 'ActionDto.FilePath' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128991: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(60,21): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128992: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(62,52): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto.Timestamp' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128993: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(63,47): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto.Role' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128994: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(64,50): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto.Content' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128995: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(65,51): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogItemDto.Category' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128996: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(68,21): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128997: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(70,48): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult.Agent' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128998: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(71,52): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult.SessionId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1128999: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(72,52): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult.RequestId' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1129000: E:\github\McpServer\tests\McpServer.SessionLog.Validation\Models\SessionLogModels.cs(73,55): error CS1591: Missing XML comment for publicly  +visible type or member 'DialogAppendResult.TotalDialogCount' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1129001: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(10,21): error CS1591: Missing XML comment  +for publicly visible type or member 'SessionLogLifecycleTests' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1129002: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(15,12): error CS1591: Missing XML comment  +for publicly visible type or member 'SessionLogLifecycleTests.SessionLogLifecycleTests(SessionLogEndpointFixture)'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1129003: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SequenceTests\SessionLogLifecycleTests.cs(18,23): error CS1591: Missing XML comment  +for publicly visible type or member 'SessionLogLifecycleTests.FullLifecycle_Submit_Query_AppendDialog_Requery()'  +[E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1129004: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1129005: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.SessionLogRoute' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1129006: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(13,23): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1129007: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(14,20): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.ApiKey' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1129008: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(16,12): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.SessionLogEndpointFixture()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1129009: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(30,17): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1129010: E:\github\McpServer\tests\McpServer.SessionLog.Validation\SessionLogEndpointFixture.cs(34,21): error CS1591: Missing XML comment for publicly  +visible type or member 'SessionLogEndpointCollection' [E:\github\McpServer\tests\McpServer.SessionLog.Validation\McpServer.SessionLog.Validation.csproj] +build_results.log:1129015: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(13,12): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BucketTests(ToolRegistryFixture)' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129016: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.ListBuckets_Returns200WithValidStructure()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129017: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(31,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.AddBucket_ValidRequest_Returns201()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129018: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(52,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.AddBucket_Duplicate_Returns409()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129019: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(73,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.RemoveBucket_Existing_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129020: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(87,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.RemoveBucket_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129021: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(96,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BrowseBucket_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129022: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(103,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.BrowseBucket_Existing_ReturnsResult()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129023: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(126,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.InstallFromBucket_NonExistentBucket_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129024: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(136,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.SyncBucket_NonExistentBucket_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129025: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\BucketTests.cs(144,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketTests.SyncBucket_Existing_Returns200Or404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129026: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(13,12): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.ToolCrudTests(ToolRegistryFixture)' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129027: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(18,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.List_Returns200WithValidStructure()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129028: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(29,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.List_ResponseIsJson()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129029: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(38,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_WithKeyword_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129030: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(47,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_NonMatchingKeyword_ReturnsEmpty()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129031: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Create_ValidTool_Returns201()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129032: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(92,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Create_DuplicateName_Returns409()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129033: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(113,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Get_ExistingTool_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129034: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(136,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Get_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129035: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(143,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Update_ChangeName_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129036: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(170,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Update_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129037: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(178,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Delete_ExistingTool_Returns200()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129038: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(198,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Delete_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129039: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\AtomicTests\ToolCrudTests.cs(207,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolCrudTests.Search_ByTag_FindsCreatedTool()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129040: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(13,12): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.ToolRegistryErrorTests(ToolRegistryFixture)'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129041: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(16,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Get_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129042: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(23,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Update_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129043: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(30,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Delete_NonExistentTool_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129044: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(37,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.RemoveBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129045: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(44,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.BrowseBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129046: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(51,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.SyncBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129047: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(58,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.InstallFromBucket_NonExistent_Returns404()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129048: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(66,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Patch_NotSupported_Returns405()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129049: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(77,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Get_InvalidIdFormat_Returns404Or400()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129050: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(87,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Create_DuplicateName_Returns409()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129051: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(111,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.AddBucket_Duplicate_Returns409()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129052: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(130,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.Search_WithWorkspace_Returns200()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129053: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ErrorTests\ToolRegistryErrorTests.cs(138,23): error CS1591: Missing XML comment for  +publicly visible type or member 'ToolRegistryErrorTests.List_WithWorkspace_Returns200()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129054: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(3,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129055: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(5,16): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Id' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129056: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(6,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129057: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(7,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Description' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129058: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(8,25): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.Tags' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129059: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(9,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.ParameterSchema' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129060: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(10,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.CommandTemplate' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129061: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(11,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.WorkspacePath' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129062: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(12,27): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.DateTimeCreated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129063: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(13,27): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolDto.DateTimeModified' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129064: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(16,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129065: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(18,26): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult.Tools' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129066: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(19,16): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolSearchResult.TotalCount' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129067: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(22,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129068: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(24,17): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129069: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(25,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129070: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(26,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolMutationResult.Tool' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129071: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(29,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129072: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(31,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Id' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129073: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(32,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129074: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(33,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Owner' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129075: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(34,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Repo' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129076: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(35,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.Branch' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129077: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(36,19): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.ManifestPath' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129078: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(37,27): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.DateTimeCreated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129079: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(38,28): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketDto.DateTimeLastSynced' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129080: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(41,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129081: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(43,28): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult.Buckets' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129082: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(44,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketListResult.TotalCount' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129083: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(47,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129084: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(49,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129085: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(50,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129086: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(51,23): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketMutationResult.Bucket' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129087: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(54,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129088: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(56,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Name' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129089: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(57,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Description' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129090: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(58,25): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.Tags' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129091: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(59,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.ParameterSchema' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129092: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(60,20): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.CommandTemplate' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129093: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(61,19): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolManifest.ManifestFile' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129094: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(64,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129095: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(66,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129096: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(67,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129097: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(68,32): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketBrowseResult.Tools' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129098: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(71,21): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129099: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(73,17): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Success' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129100: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(74,20): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Error' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129101: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(75,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Updated' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129102: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(76,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Added' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129103: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\Models\ToolRegistryModels.cs(77,16): error CS1591: Missing XML comment for publicly  +visible type or member 'BucketSyncResult.Unchanged' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129104: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(15,12): error CS1591: Missing XML  +comment for publicly visible type or member 'ToolLifecycleSequenceTests.ToolLifecycleSequenceTests(ToolRegistryFixture, ITestOutputHelper)'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129105: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(18,23): error CS1591: Missing XML  +comment for publicly visible type or member 'ToolLifecycleSequenceTests.FullToolLifecycle_CreateThroughDelete()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129106: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\SequenceTests\ToolLifecycleSequenceTests.cs(109,23): error CS1591: Missing XML  +comment for publicly visible type or member 'ToolLifecycleSequenceTests.FullBucketLifecycle_AddThroughRemove()'  +[E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129107: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(8,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129108: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(9,25): error CS1591: Missing XML comment for publicly visible  +type or member 'ToolRegistryFixture.ToolRoute' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129109: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(10,25): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolRegistryFixture.BucketRoute' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129110: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(12,23): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolRegistryFixture.Client' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129111: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(14,12): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolRegistryFixture.ToolRegistryFixture()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129112: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(27,17): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolRegistryFixture.Dispose()' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129113: E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\ToolRegistryFixture.cs(31,21): error CS1591: Missing XML comment for publicly  +visible type or member 'ToolRegistryCollection' [E:\github\McpServer\tests\McpServer.ToolRegistry.Validation\McpServer.ToolRegistry.Validation.csproj] +build_results.log:1129118: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.GitHubEndpointTests(GitHubEndpointFixture)' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1129119: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(20,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListIssues_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1129120: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(30,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListIssues_WithState_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1129121: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(39,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.GetIssue_ExistingNumber_Returns200Or404()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1129122: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(50,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CreateIssue_MissingTitle_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1129123: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.UpdateIssue_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1129124: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(69,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CommentOnIssue_MissingBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1129125: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(79,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListLabels_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1129126: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(90,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListPulls_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1129127: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(100,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ListPulls_WithState_Returns200()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1129128: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(109,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CommentOnPull_MissingBody_Returns400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1129129: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(119,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.CloseIssue_NonExistent_ReturnsBadRequestOr200()'  +[E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1129130: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(130,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.ReopenIssue_NonExistent_ReturnsBadRequestOr200()'  +[E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1129131: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(140,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncFromGitHub_Returns200Or400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1129132: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(150,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncToGitHub_Returns200Or400()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1129133: E:\github\McpServer\tests\McpServer.GitHub.Validation\AtomicTests\GitHubEndpointTests.cs(160,23): error CS1591: Missing XML comment for publicly  +visible type or member 'GitHubEndpointTests.SyncSingleIssue_Returns200Or400Or404()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1129134: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(6,21): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointCollection' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1129135: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(8,21): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1129136: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(10,25): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.BaseUrl' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1129137: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(11,25): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.GhRoute' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1129138: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(12,23): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.Client' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1129139: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.GitHubEndpointFixture()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1129140: E:\github\McpServer\tests\McpServer.GitHub.Validation\GitHubEndpointFixture.cs(22,17): error CS1591: Missing XML comment for publicly visible  +type or member 'GitHubEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.GitHub.Validation\McpServer.GitHub.Validation.csproj] +build_results.log:1129145: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'CreateTodoTests.CreateTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129146: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(21,22): error CS1591: Missing XML comment for publicly  +visible type or member 'CreateTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129147: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(23,28): error CS1591: Missing XML comment for publicly  +visible type or member 'CreateTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129148: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(29,23): error CS1591: Missing XML comment for publicly  +visible type or member 'CreateTodoTests.Create_ValidRequest_Returns201()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129149: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(62,23): error CS1591: Missing XML comment for publicly  +visible type or member 'CreateTodoTests.Create_DuplicateId_Returns409()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129150: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(77,23): error CS1591: Missing XML comment for publicly  +visible type or member 'CreateTodoTests.Create_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129151: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\CreateTodoTests.cs(91,23): error CS1591: Missing XML comment for publicly  +visible type or member 'CreateTodoTests.Create_WithImplementationTasks_Returns201()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129152: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(14,12): error CS1591: Missing XML comment for publicly  +visible type or member 'DeleteTodoTests.DeleteTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129153: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(17,23): error CS1591: Missing XML comment for publicly  +visible type or member 'DeleteTodoTests.Delete_ExistingItem_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129154: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\DeleteTodoTests.cs(40,23): error CS1591: Missing XML comment for publicly  +visible type or member 'DeleteTodoTests.Delete_NonExistentItem_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129155: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.GetTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129156: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129157: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129158: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.Get_ValidId_Returns200WithItem()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129159: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\GetTodoTests.cs(51,23): error CS1591: Missing XML comment for publicly visible  +type or member 'GetTodoTests.Get_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129160: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(14,12): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.QueryTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129161: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(17,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_NoFilters_Returns200WithValidStructure()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129162: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(31,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ResponseIsJson()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129163: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(40,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByPriority_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129164: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(55,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByDoneStatus_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129165: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(69,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ByKeyword_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129166: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(81,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_BySection_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129167: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(95,23): error CS1591: Missing XML comment for publicly visible  +type or member 'QueryTodoTests.Query_ById_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129168: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\QueryTodoTests.cs(114,23): error CS1591: Missing XML comment for publicly  +visible type or member 'QueryTodoTests.Query_NonMatchingKeyword_ReturnsEmptyList()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129169: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.RequirementsTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129170: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129171: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129172: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.Requirements_RegisteredItem_ReturnsResult()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129173: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\RequirementsTodoTests.cs(60,23): error CS1591: Missing XML comment for publicly  +visible type or member 'RequirementsTodoTests.Requirements_NonExistentItem_Returns422()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129174: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(15,12): error CS1591: Missing XML comment for publicly  +visible type or member 'UpdateTodoTests.UpdateTodoTests(TodoEndpointFixture)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129175: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(21,28): error CS1591: Missing XML comment for publicly  +visible type or member 'UpdateTodoTests.InitializeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129176: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(28,28): error CS1591: Missing XML comment for publicly  +visible type or member 'UpdateTodoTests.DisposeAsync()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129177: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(34,23): error CS1591: Missing XML comment for publicly  +visible type or member 'UpdateTodoTests.Update_ChangeTitle_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129178: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(50,23): error CS1591: Missing XML comment for publicly  +visible type or member 'UpdateTodoTests.Update_ToggleDone_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129179: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(66,23): error CS1591: Missing XML comment for publicly  +visible type or member 'UpdateTodoTests.Update_ChangePriority_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129180: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(82,23): error CS1591: Missing XML comment for publicly  +visible type or member 'UpdateTodoTests.Update_NonExistentId_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129181: E:\github\McpServer\tests\McpServer.Todo.Validation\AtomicTests\UpdateTodoTests.cs(93,23): error CS1591: Missing XML comment for publicly  +visible type or member 'UpdateTodoTests.Update_NullBody_Returns400()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129182: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(18,12): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.TodoErrorTests(TodoEndpointFixture, ITestOutputHelper)' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129183: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(27,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Get_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129184: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(36,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Update_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129185: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(46,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Delete_NonExistent_Returns404()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129186: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(57,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Create_Duplicate_Returns409()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129187: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(84,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Create_EmptyBody_ReturnsBadRequest()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129188: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(97,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Update_NullBody_Returns400OrUnsupportedMedia()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129189: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(114,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Patch_NotSupported_Returns405()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129190: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(128,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Query_InvalidPriority_Returns200EmptyOrAll()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129191: E:\github\McpServer\tests\McpServer.Todo.Validation\ErrorTests\TodoErrorTests.cs(140,23): error CS1591: Missing XML comment for publicly visible  +type or member 'TodoErrorTests.Query_MultipleFilters_Returns200()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129192: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(6,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Id' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129193: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(7,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Title' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129194: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(8,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Section' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129195: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(9,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Priority' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129196: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(10,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Done' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129197: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(11,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Estimate' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129198: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(12,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Note' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129199: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(13,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Description' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129200: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(14,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.TechnicalDetails' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129201: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(15,32): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.ImplementationTasks' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129202: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(16,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.CompletedDate' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129203: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(17,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.DoneSummary' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129204: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(18,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Remaining' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129205: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(19,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.PriorityNote' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129206: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(20,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.Reference' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129207: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(21,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.DependsOn' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129208: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(22,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.FunctionalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129209: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(23,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatItem.TechnicalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129210: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(29,19): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatTask.Task' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129211: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(30,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoFlatTask.Done' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129212: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(36,31): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoQueryResult.Items' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129213: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(37,16): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoQueryResult.TotalCount' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129214: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(43,17): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Success' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129215: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(44,20): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129216: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(45,26): error CS1591: Missing XML comment for publicly visible type or  +member 'TodoMutationResult.Item' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129217: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(51,17): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.Success' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129218: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(52,26): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.FunctionalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129219: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(53,26): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.TechnicalRequirements' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129220: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(54,20): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129221: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(55,20): error CS1591: Missing XML comment for publicly visible type or  +member 'RequirementsAnalysisResult.CopilotResponse' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129222: E:\github\McpServer\tests\McpServer.Todo.Validation\Models\TodoModels.cs(61,20): error CS1591: Missing XML comment for publicly visible type or  +member 'ErrorResponse.Error' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129223: E:\github\McpServer\tests\McpServer.Todo.Validation\SequenceTests\TodoLifecycleSequenceTests.cs(18,12): error CS1591: Missing XML comment for  +publicly visible type or member 'TodoLifecycleSequenceTests.TodoLifecycleSequenceTests(TodoEndpointFixture, ITestOutputHelper)'  +[E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129224: E:\github\McpServer\tests\McpServer.Todo.Validation\SequenceTests\TodoLifecycleSequenceTests.cs(25,23): error CS1591: Missing XML comment for  +publicly visible type or member 'TodoLifecycleSequenceTests.FullLifecycle_CreateThroughDelete()'  +[E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129225: E:\github\McpServer\tests\McpServer.Todo.Validation\TodoEndpointFixture.cs(20,12): error CS1591: Missing XML comment for publicly visible type  +or member 'TodoEndpointFixture.TodoEndpointFixture()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] +build_results.log:1129226: E:\github\McpServer\tests\McpServer.Todo.Validation\TodoEndpointFixture.cs(33,17): error CS1591: Missing XML comment for publicly visible type  +or member 'TodoEndpointFixture.Dispose()' [E:\github\McpServer\tests\McpServer.Todo.Validation\McpServer.Todo.Validation.csproj] + diff --git a/docs/Project/Functional-Requirements.md b/docs/Project/Functional-Requirements.md index 6c492ca9..66c17658 100644 --- a/docs/Project/Functional-Requirements.md +++ b/docs/Project/Functional-Requirements.md @@ -204,7 +204,7 @@ Per-workspace compliance configuration supporting four ban lists: `BannedLicense The marker prompt shall include mandatory sections for: absolute honesty, correctness above speed, complete decision documentation, professional representation and audit trail (commits, PRs, issues logged in full), and source attribution (web references logged). These are non-configurable and always present. -**Covered by:** `MarkerFileService.DefaultPromptTemplate` +**Covered by:** `templates/prompt-templates.yaml` (default-marker-prompt) ## FR-MCP-036 Audited Copilot Interactions @@ -220,13 +220,13 @@ Every server-initiated Copilot interaction must be session-logged in every affec Agents must follow a session continuity protocol: at session start, read the marker file, query recent session logs (limit=5), query current TODOs, and read Requirements-Matrix.md. During long sessions, post updated session logs every ~10 interactions. Requirements and design decisions must be captured as they emerge, not deferred. -**Covered by:** `MarkerFileService.DefaultPromptTemplate` +**Covered by:** `templates/prompt-templates.yaml` (default-marker-prompt) ## FR-MCP-039 MCP Context Indexing for New Projects All source files from `McpServer.Cqrs`, `McpServer.Cqrs.Mvvm`, `McpServer.UI.Core`, and `McpServer.Director` shall be indexed into the MCP context store for semantic search. The marker prompt lists these projects in the Available Capabilities section. -**Covered by:** `Program.cs` / `McpStdioHost` `PostConfigure` allowlist merge, `appsettings.yaml` `Mcp:RepoAllowlist`, `MarkerFileService.DefaultPromptTemplate` +**Covered by:** `Program.cs` / `McpStdioHost` `PostConfigure` allowlist merge, `appsettings.yaml` `Mcp:RepoAllowlist`, `templates/prompt-templates.yaml` (default-marker-prompt) ## FR-MCP-040 Requirements Document CRUD Management @@ -290,7 +290,7 @@ The server shall provide a global prompt template registry with REST API endpoin ## FR-MCP-050 Template Externalization -The server shall load system prompt templates (marker prompt, TODO prompts, pairing HTML pages) from external YAML files via provider interfaces, with graceful fallback to built-in inline defaults when files are missing. Configuration overrides (`Mcp:MarkerPromptTemplate`, `Mcp:TodoPrompts`) take precedence over file-loaded templates. This enables runtime template customization without recompilation. +The server shall load system prompt templates (marker prompt, TODO prompts, pairing HTML pages) from external YAML files via provider interfaces. The marker prompt template is required to exist in the external file; the server shall fail critically if it is missing. Configuration overrides (`Mcp:MarkerPromptTemplate`, `Mcp:TodoPrompts`) take precedence over file-loaded templates. This enables runtime template customization without recompilation. **Covered by:** `IMarkerPromptProvider`, `FileMarkerPromptProvider`, `ITodoPromptProvider`, `TodoPromptProvider`, `PairingHtmlRenderer` diff --git a/docs/Project/Requirements-Matrix.md b/docs/Project/Requirements-Matrix.md index ef6939b0..031bb8d5 100644 --- a/docs/Project/Requirements-Matrix.md +++ b/docs/Project/Requirements-Matrix.md @@ -47,6 +47,7 @@ Traceability policy: see `Requirements-Traceability-Policy.md`. | TR-MCP-REQ-002 | ✅ Complete | RequirementsDocumentService, RequirementsDocumentParser, RequirementsDocumentRenderer, RequirementsOptions | | TR-MCP-REQ-003 | ✅ Complete | RequirementsController, FwhMcpTools, Program.cs (requirements DI/config) | | TR-MCP-DRY-001 | ✅ Active directive | All code and scripts | +| TR-MCP-DOC-002 | ✅ Active directive | .github/copilot-instructions.md, AGENTS.md | | TR-LOC-001 | 🔲 Planned | — | | FR-MCP-026 | ✅ Complete | OidcAuthOptions, Program.cs (JWT Bearer + AgentManager policy), WorkspaceAuthMiddleware, AgentController, AuthConfigController, Setup-McpKeycloak.ps1, setup-mcp-keycloak.sh, McpServer.Director (AuthCommands, OidcAuthService, LoginDialog) | | FR-MCP-027 | ✅ Complete | Program.cs (startup built-in seeding), AgentController, AgentService, AgentDefaults, AgentDefinitionEntity | @@ -55,13 +56,13 @@ Traceability policy: see `Requirements-Traceability-Policy.md`. | FR-MCP-030 | ✅ Complete | McpServer.Director (Program, DirectorCommands, AuthCommands, InteractiveCommand, McpHttpClient, OidcAuthService, TokenCache, MainScreen, HealthScreen, AgentScreen, TodoScreen, SessionLogScreen, WorkspaceListScreen, WorkspacePolicyScreen, LoginDialog, ViewModelBinder) | | FR-MCP-031 | 🔲 Planned | — | | FR-MCP-032 | 🔲 Planned | — | -| FR-MCP-033 | ✅ Complete | WorkspaceController (POST /mcpserver/workspace/policy), WorkspacePolicyService, WorkspacePolicyDirectiveParser, McpServerMcpTools.workspace_policy_apply | +| FR-MCP-033 | ✅ Complete | WorkspaceController (POST /mcpserver/workspace/policy), WorkspacePolicyService, WorkspacePolicyDirectiveParser, McpServerMcpTools.workspace_policy_apply | | FR-MCP-034 | ✅ Complete | IWorkspaceService, MarkerFileService, WorkspaceModels | -| FR-MCP-035 | ✅ Complete | MarkerFileService.DefaultPromptTemplate | -| FR-MCP-036 | ✅ Complete | AuditedCopilotClient, Program.cs (ICopilotClient decorator), McpStdioHost (ICopilotClient decorator), CopilotServiceCollectionExtensions | +| FR-MCP-035 | ✅ Complete | templates/prompt-templates.yaml | +| FR-MCP-036 | ✅ Complete | AuditedCopilotClient, Program.cs (ICopilotClient decorator), McpStdioHost (ICopilotClient decorator), CopilotServiceCollectionExtensions | | FR-MCP-037 | ✅ Complete | McpServer.Director (Program exec/list-viewmodels), McpServer.Cqrs.Mvvm (IViewModelRegistry) | -| FR-MCP-038 | ✅ Complete | MarkerFileService.DefaultPromptTemplate | -| FR-MCP-039 | ✅ Complete | Program.cs + McpStdioHost PostConfigure, appsettings.yaml RepoAllowlist, MarkerFileService.DefaultPromptTemplate | +| FR-MCP-038 | ✅ Complete | templates/prompt-templates.yaml | +| FR-MCP-039 | ✅ Complete | Program.cs + McpStdioHost PostConfigure, appsettings.yaml RepoAllowlist, templates/prompt-templates.yaml | | FR-MCP-040 | ✅ Complete | RequirementsController, RequirementsDocumentService, IRequirementsRepository | | FR-MCP-041 | ✅ Complete | RequirementsController (/mcpserver/requirements/generate), RequirementsDocumentService, RequirementsDocumentRenderer | | FR-MCP-042 | ✅ Complete | FwhMcpTools (requirements_* tools), RequirementsDocumentService | @@ -72,10 +73,10 @@ Traceability policy: see `Requirements-Traceability-Policy.md`. | TR-MCP-CQRS-001–005 | ✅ Complete | McpServer.Cqrs (Dispatcher, CallContext, CorrelationId, Result, IPipelineBehavior, ILoggerProvider) | | TR-MCP-DIR-001–003 | ✅ Complete | McpServer.Director (System.CommandLine CLI, CQRS dispatch, OIDC auth, exec command, Terminal.Gui interactive mode) | | TR-MCP-COMP-001–003 | ✅ Complete | IWorkspaceService, MarkerFileService | -| TR-MCP-AUDIT-001 | ✅ Complete | AuditedCopilotClient, Program.cs decorator wiring, McpStdioHost decorator wiring | -| TR-MCP-POL-001 | ✅ Complete | WorkspacePolicyService, WorkspacePolicyDirectiveParser, WorkspaceController policy endpoint, McpServerMcpTools.workspace_policy_apply | +| TR-MCP-AUDIT-001 | ✅ Complete | AuditedCopilotClient, Program.cs decorator wiring, McpStdioHost decorator wiring | +| TR-MCP-POL-001 | ✅ Complete | WorkspacePolicyService, WorkspacePolicyDirectiveParser, WorkspaceController policy endpoint, McpServerMcpTools.workspace_policy_apply | | TR-MCP-DTO-001 | ✅ Complete | UnifiedSessionLogDto | -| TR-MCP-CTX-001 | ✅ Complete | Program.cs + McpStdioHost PostConfigure, appsettings.yaml RepoAllowlist, MarkerFileService.DefaultPromptTemplate | +| TR-MCP-CTX-001 | ✅ Complete | Program.cs + McpStdioHost PostConfigure, appsettings.yaml RepoAllowlist, templates/prompt-templates.yaml | | TR-MCP-MT-001 | ✅ Complete | WorkspaceContext, WorkspaceResolutionMiddleware | | TR-MCP-MT-002 | ✅ Complete | WorkspaceResolutionMiddleware, WorkspaceTokenService | | TR-MCP-MT-003 | ✅ Complete | McpDbContext (global query filter), all entities (WorkspaceId) | @@ -127,18 +128,18 @@ Traceability policy: see `Requirements-Traceability-Policy.md`. | TEST-MCP-075 | ✅ Complete | ChannelChangeEventBusTests | | TEST-MCP-076 | ✅ Complete | TodoServiceTests, SqliteTodoServiceTests, SessionLogServiceTests, RepoFileServiceTests | | TEST-MCP-077 | ✅ Complete | EventPublishingServiceTests | -| TEST-MCP-078 | ✅ Complete | EventStreamIntegrationTests | -| TEST-MCP-079 | ✅ Complete | EventStreamIntegrationTests | -| TEST-MCP-080 | ✅ Complete | EventStreamIntegrationTests (positive + non-matching category filter paths verified) | -| FR-MCP-063 | ✅ Complete | GitHubIntegrationOptions, FileGitHubWorkspaceTokenStore, GitHubController, GitHubCliService, ProcessRunner, GitHubClient | -| TR-MCP-GH-001 | ✅ Complete | GitHubIntegrationOptions, Program.cs, McpStdioHost, GitHubController | -| TR-MCP-GH-002 | ✅ Complete | IGitHubWorkspaceTokenStore, FileGitHubWorkspaceTokenStore, GitHubController | -| TR-MCP-GH-003 | ✅ Complete | IProcessRunner, ProcessRunner, GitHubCliService | -| TR-MCP-GH-004 | ✅ Complete | IGitHubCliService, GitHubCliService, GitHubController, McpServer.Client GitHub models/client | -| TEST-MCP-081 | ✅ Complete | GitHubControllerTests.AuthTokenEndpoints_RoundTrip | -| TEST-MCP-082 | ✅ Complete | GitHubControllerTests.OAuthConfig_AndAuthorizeUrlBehavior | -| TEST-MCP-083 | ✅ Complete | GitHubCliServiceTests.ListIssuesAsync_WithStoredWorkspaceToken_UsesProcessRunRequestOverride, FileGitHubWorkspaceTokenStoreTests | -| TEST-MCP-084 | ✅ Complete | GitHubCliServiceTests workflow run tests, GitHubControllerTests.ListWorkflowRuns_ReturnsOk, GitHubClientTests workflow/auth tests | -| TEST-MCP-085 | ✅ Complete | WorkspaceControllerTests.ApplyPolicy_ValidDirective_UpdatesWorkspaceBanList, WorkspaceControllerTests.ApplyPolicy_InvalidDirective_ReturnsBadRequest, WorkspacePolicyServiceTests | -| TEST-MCP-086 | ✅ Complete | AuditedCopilotClientTests, WorkspacePolicyDirectiveParserTests | -| TEST-MCP-087 | ✅ Complete | IngestionAllowlistContractTests, MarkerFileServiceTests.DefaultPromptTemplate_IncludesAvailableCapabilitiesSection | +| TEST-MCP-078 | ✅ Complete | EventStreamIntegrationTests | +| TEST-MCP-079 | ✅ Complete | EventStreamIntegrationTests | +| TEST-MCP-080 | ✅ Complete | EventStreamIntegrationTests (positive + non-matching category filter paths verified) | +| FR-MCP-063 | ✅ Complete | GitHubIntegrationOptions, FileGitHubWorkspaceTokenStore, GitHubController, GitHubCliService, ProcessRunner, GitHubClient | +| TR-MCP-GH-001 | ✅ Complete | GitHubIntegrationOptions, Program.cs, McpStdioHost, GitHubController | +| TR-MCP-GH-002 | ✅ Complete | IGitHubWorkspaceTokenStore, FileGitHubWorkspaceTokenStore, GitHubController | +| TR-MCP-GH-003 | ✅ Complete | IProcessRunner, ProcessRunner, GitHubCliService | +| TR-MCP-GH-004 | ✅ Complete | IGitHubCliService, GitHubCliService, GitHubController, McpServer.Client GitHub models/client | +| TEST-MCP-081 | ✅ Complete | GitHubControllerTests.AuthTokenEndpoints_RoundTrip | +| TEST-MCP-082 | ✅ Complete | GitHubControllerTests.OAuthConfig_AndAuthorizeUrlBehavior | +| TEST-MCP-083 | ✅ Complete | GitHubCliServiceTests.ListIssuesAsync_WithStoredWorkspaceToken_UsesProcessRunRequestOverride, FileGitHubWorkspaceTokenStoreTests | +| TEST-MCP-084 | ✅ Complete | GitHubCliServiceTests workflow run tests, GitHubControllerTests.ListWorkflowRuns_ReturnsOk, GitHubClientTests workflow/auth tests | +| TEST-MCP-085 | ✅ Complete | WorkspaceControllerTests.ApplyPolicy_ValidDirective_UpdatesWorkspaceBanList, WorkspaceControllerTests.ApplyPolicy_InvalidDirective_ReturnsBadRequest, WorkspacePolicyServiceTests | +| TEST-MCP-086 | ✅ Complete | AuditedCopilotClientTests, WorkspacePolicyDirectiveParserTests | +| TEST-MCP-087 | ✅ Complete | IngestionAllowlistContractTests.MarkerPromptTemplate_ContainsAvailableCapabilitiesSection | diff --git a/docs/Project/Technical-Requirements.md b/docs/Project/Technical-Requirements.md index 26a7af0f..40579264 100644 --- a/docs/Project/Technical-Requirements.md +++ b/docs/Project/Technical-Requirements.md @@ -54,7 +54,7 @@ Operational scripts for startup, health checks, packaging, config validation, an ## TR-MCP-WS-005 -**Marker File Service** — `MarkerFileService.WriteMarkerAsync` writes `AGENTS-README-FIRST.yaml` to the workspace root. All markers point to the same shared host port. Uses Handlebars.Net templating with full workspace context. The YAML file contains port, `baseUrl`, all endpoint paths, process PID, `startedAt` timestamp, workspace name, per-workspace auth token (`apiKey`), and a machine-readable `prompt` block. Agents should send `X-Workspace-Path` header for workspace targeting. +**Marker File Service** — `MarkerFileService.WriteMarkerAsync` writes `AGENTS-README-FIRST.yaml` to the workspace root. All markers point to the same shared host port. Uses Handlebars.Net templating with full workspace context. The marker template MUST be loaded from `templates/prompt-templates.yaml` via `PromptTemplateService` (id: `default-marker-prompt`). **CRITICAL**: If the template cannot be loaded (missing file, invalid YAML, or missing ID), the service must log a critical error and shut down the server immediately. Fallback to hardcoded templates is PROHIBITED. The YAML file contains port, `baseUrl`, all endpoint paths, process PID, `startedAt` timestamp, workspace name, per-workspace auth token (`apiKey`), and a machine-readable `prompt` block. Agents should send `X-Workspace-Path` header for workspace targeting. ## TR-MCP-WS-006 @@ -240,9 +240,9 @@ Operational scripts for startup, health checks, packaging, config validation, an ## TR-MCP-COMP-003 -**Session Continuity Protocol** — `DefaultPromptTemplate` includes Requirements Tracking, Design Decision Logging, and Session Continuity sections. Agents must: read marker file at session start, query recent session logs, query TODOs, read Requirements-Matrix.md, post updated session logs every ~10 interactions, and capture requirements/decisions as they emerge. +**Session Continuity Protocol** — The `default-marker-prompt` template (YAML) includes Requirements Tracking, Design Decision Logging, and Session Continuity sections. Agents must: read marker file at session start, query recent session logs, query TODOs, read Requirements-Matrix.md, post updated session logs every ~10 interactions, and capture requirements/decisions as they emerge. -**Covered by:** `MarkerFileService.DefaultPromptTemplate` +**Covered by:** `templates/prompt-templates.yaml` (`default-marker-prompt`), `PromptTemplateService` ## TR-MCP-AUDIT-001 @@ -362,7 +362,7 @@ Operational scripts for startup, health checks, packaging, config validation, an ## TR-MCP-TPL-005 -**System Template Externalization** — Three provider interfaces decouple system prompt templates from inline C# constants: (1) `IMarkerPromptProvider` / `FileMarkerPromptProvider` reads `templates/default-marker-prompt.hbs.yaml` with YAML deserialization and startup caching, returning `null` on file-missing for fallback to `MarkerFileService.DefaultPromptTemplate`. Injected into `WorkspaceProcessManager` with precedence: config override (`Mcp:MarkerPromptTemplate`) > file template > built-in default. (2) `ITodoPromptProvider` / `TodoPromptProvider` looks up templates from `IPromptTemplateService` by well-known IDs (`todo-status-prompt`, `todo-implement-prompt`, `todo-plan-prompt`), falling back to `TodoPromptDefaults` constants. Injected into `TodoPromptService` with precedence: `IOptionsMonitor` > file template > built-in default. (3) `PairingHtmlRenderer` replaces static `PairingHtml` calls with DI-injected instance class, loading templates from `IPromptTemplateService` by well-known IDs (`pairing-login-page`, `pairing-key-page`, `pairing-not-configured-page`) using `string.Replace` token substitution (`{errorBanner}`, `{apiKey}`, `{serverUrl}`), falling back to `PairingHtml` static methods. Template YAML files ship via `.csproj` Content items and are preserved across deployments. +**System Template Externalization** — Three provider interfaces decouple system prompt templates from inline C# constants: (1) `IMarkerPromptProvider` / `FileMarkerPromptProvider` reads `templates/prompt-templates.yaml` via `IPromptTemplateService` (id: `default-marker-prompt`), throwing a critical exception on file-missing. Fallback to `MarkerFileService.DefaultPromptTemplate` is REMOVED. Injected into `WorkspaceProcessManager` with precedence: config override (`Mcp:MarkerPromptTemplate`) > file template. (2) `ITodoPromptProvider` / `TodoPromptProvider` looks up templates from `IPromptTemplateService` by well-known IDs (`todo-status-prompt`, `todo-implement-prompt`, `todo-plan-prompt`), falling back to `TodoPromptDefaults` constants. Injected into `TodoPromptService` with precedence: `IOptionsMonitor` > file template > built-in default. (3) `PairingHtmlRenderer` replaces static `PairingHtml` calls with DI-injected instance class, loading templates from `IPromptTemplateService` by well-known IDs (`pairing-login-page`, `pairing-key-page`, `pairing-not-configured-page`) using `string.Replace` token substitution (`{errorBanner}`, `{apiKey}`, `{serverUrl}`), falling back to `PairingHtml` static methods. Template YAML files ship via `.csproj` Content items and are preserved across deployments. **Covered by:** `IMarkerPromptProvider`, `FileMarkerPromptProvider`, `ITodoPromptProvider`, `TodoPromptProvider`, `PairingHtmlRenderer`, `templates/prompt-templates.yaml` @@ -569,3 +569,11 @@ Presence signaling SHALL be excluded from one-shot sessions. - Maintain a supported UI tooling section covering available user surfaces (including VS extension, Web UI, and Director/TUI where applicable) with current support status. - Keep the documentation in version control under `docs/` so updates are reviewed and traceable with product changes. **Status:** 🔴 Planned + +## TR-MCP-DOC-002 + +**Test XML Documentation Completeness** *(DIRECTIVE)* — All test projects SHALL include XML documentation comments on test classes and test methods. Each test XML doc SHALL explicitly specify: what behavior is being tested, what test data/fixtures are used, why that data/fixtures are used, and which requirement IDs are being validated. No test project is exempt from this requirement. + +**Status:** ✅ Active directive + +**Covered by:** `.github/copilot-instructions.md`, `AGENTS.md` diff --git a/docs/README.md b/docs/README.md index 2451f751..d0af3fb4 100644 --- a/docs/README.md +++ b/docs/README.md @@ -3,7 +3,7 @@ - [MCP Server Guide](MCP-SERVER.md) - [MCP Server User Documentation](USER-GUIDE.md) - [FAQ](FAQ.md) -- [Endpoint Audit](ENDPOINT-AUDIT.md) + - [Client Integration](CLIENT-INTEGRATION.md) - [Context Reference](context/api-capabilities.md) - [Project Requirements](Project/Requirements-Matrix.md) diff --git a/docs/USER-GUIDE.md b/docs/USER-GUIDE.md index e3054b8f..36632d74 100644 --- a/docs/USER-GUIDE.md +++ b/docs/USER-GUIDE.md @@ -110,9 +110,9 @@ Sample session log flow: ```powershell $s = New-McpSessionLog -SourceType "Copilot" -Title "MCP docs update" -Model "gpt-5.3-codex" -$e = Add-McpSessionEntry -Session $s -QueryTitle "Update docs" -QueryText "Create user docs" -Status in_progress -Add-McpAction -Entry $e -Description "Created docs\\USER-GUIDE.md" -Type edit -FilePath "docs/USER-GUIDE.md" -Set-McpSessionEntry -Session $s -Entry $e -Response "Docs complete" -Status completed +$t = Add-McpSessionTurn -Session $s -QueryTitle "Update docs" -QueryText "Create user docs" -Status in_progress +Add-McpAction -Turn $t -Description "Created docs\\USER-GUIDE.md" -Type edit -FilePath "docs/USER-GUIDE.md" +Set-McpSessionTurn -Session $s -Turn $t -Response "Docs complete" -Status completed Update-McpSessionLog -Session $s -Status completed ``` @@ -262,7 +262,7 @@ Submit example: "started": "2026-03-05T16:00:00Z", "lastUpdated": "2026-03-05T16:00:00Z", "status": "in_progress", - "entries": [] + "turns": [] } ``` diff --git a/docs/context/action-types.md b/docs/context/action-types.md index d6cf9440..330cd3cd 100644 --- a/docs/context/action-types.md +++ b/docs/context/action-types.md @@ -1,6 +1,6 @@ # Recognized Action Types -Use these standardized type values when logging actions in session log entries. +Use these standardized type values when logging actions in session log turns. - `edit` — file modification - `create` — new file creation diff --git a/docs/context/session-log-schema.md b/docs/context/session-log-schema.md index 635fc0b0..9402ae36 100644 --- a/docs/context/session-log-schema.md +++ b/docs/context/session-log-schema.md @@ -1,6 +1,7 @@ -# Session Log Schema Reference - -Load this file when you need to create, update, or query session logs. +# Session Log Schema Reference + +Load this file when you need to create, update, or query session logs. +For specific agent operational instructions, follow `AGENTS-README-FIRST.yaml`. ## Endpoints @@ -33,29 +34,29 @@ Load this file when you need to create, update, or query session logs. "started": "string — ISO 8601 timestamp when session began", "lastUpdated": "string — ISO 8601 timestamp of latest activity", "status": "string — 'in_progress' or 'completed'", - "entries": [ "array of RequestEntry objects (see below)" ] -} -``` - -## RequestEntry (each element in `entries`) - -```json -{ + "turns": [ "array of RequestTurn objects (see below)" ] +} +``` + +## RequestTurn (each element in `turns`) + +```json +{ "requestId": "string — required format req--", "timestamp": "string — ISO 8601", "queryText": "string — full user query or task description", "queryTitle": "string — short summary of the query", "response": "string — your response text", "interpretation": "string — your understanding of what was asked", - "status": "string — 'completed' or 'in_progress'", - "model": "string — model used for this entry", - "tokenCount": "integer|null — approximate token count", - "tags": ["string array — e.g. 'refactor', 'bugfix', 'feature'"], - "contextList": ["string array — files or resources referenced"], - "designDecisions": ["string array — decisions made during this interaction"], - "requirementsDiscovered": ["string array — requirement IDs e.g. 'TR-MCP-001'"], - "filesModified": ["string array — file paths changed"], - "blockers": ["string array — issues preventing progress"], + "status": "string — 'completed' or 'in_progress'", + "model": "string — model used for this turn", + "tokenCount": "integer|null — approximate token count", + "tags": ["string array — e.g. 'refactor', 'bugfix', 'feature'"], + "contextList": ["string array — files or resources referenced"], + "designDecisions": ["string array — decisions made during this turn"], + "requirementsDiscovered": ["string array — requirement IDs e.g. 'TR-MCP-001'"], + "filesModified": ["string array — file paths changed"], + "blockers": ["string array — issues preventing progress"], "actions": [ "array of Action objects (see below)" ], "processingDialog": [ "array of DialogItem objects (see below)" ] } @@ -93,17 +94,17 @@ Get-McpSessionLog -Limit 5 # Create session $s = New-McpSessionLog -SourceType "Copilot" -Title "Implementing feature X" -Model "claude-sonnet-4" -# Add entry for each user request -$e = Add-McpSessionEntry -Session $s -QueryTitle "Add auth" -QueryText "Add JWT authentication" - -# Record actions during work -Add-McpAction -Entry $e -Description "Created TokenService" -Type create -FilePath "src/TokenService.cs" - -# Stream reasoning dialog as you work -Send-McpDialog -Session $s -RequestId $e.requestId -Content "Analyzing the issue..." -Category reasoning - -# Complete the entry -Set-McpSessionEntry -Entry $e -Session $s -Response "Done" -Status completed +# Add turn for each user request +$t = Add-McpSessionTurn -Session $s -QueryTitle "Add auth" -QueryText "Add JWT authentication" + +# Record actions during work +Add-McpAction -Turn $t -Description "Created TokenService" -Type create -FilePath "src/TokenService.cs" + +# Stream reasoning dialog as you work +Send-McpDialog -Session $s -RequestId $t.requestId -Content "Analyzing the issue..." -Category reasoning + +# Complete the turn +Set-McpSessionTurn -Turn $t -Session $s -Response "Done" -Status completed # Final push at session end Update-McpSessionLog -Session $s -Status completed @@ -118,10 +119,10 @@ mcp_session_query 5 # Create session mcp_session_create "Copilot" "Implementing feature X" "claude-sonnet-4" -# Add entry, record actions, stream dialog, complete -mcp_session_add_entry "req-001" "Add auth" "Add JWT authentication" "in_progress" -mcp_session_add_action "req-001" "Created TokenService" "create" "src/TokenService.cs" -mcp_session_send_dialog "req-001" "Analyzing the issue..." "reasoning" -mcp_session_update_entry "req-001" "status" "completed" -mcp_session_complete -``` +# Add turn, record actions, stream dialog, complete +mcp_session_add_turn "req-001" "Add auth" "Add JWT authentication" "in_progress" +mcp_session_add_action "req-001" "Created TokenService" "create" "src/TokenService.cs" +mcp_session_send_dialog "req-001" "Analyzing the issue..." "reasoning" +mcp_session_update_turn "req-001" "status" "completed" +mcp_session_complete +``` diff --git a/fix_xml_docs.cs b/fix_xml_docs.cs new file mode 100644 index 00000000..e69de29b diff --git a/src/McpServer.Client/SessionLogClient.cs b/src/McpServer.Client/SessionLogClient.cs index e9df4aeb..64eaff8e 100644 --- a/src/McpServer.Client/SessionLogClient.cs +++ b/src/McpServer.Client/SessionLogClient.cs @@ -55,3 +55,4 @@ public async Task AppendDialogAsync( return await PostAsync(path, items, cancellationToken); } } + diff --git a/src/McpServer.Services/Ingestion/ExternalDocsIngestor.cs b/src/McpServer.Services/Ingestion/ExternalDocsIngestor.cs index 71afdd3e..1cd73f53 100644 --- a/src/McpServer.Services/Ingestion/ExternalDocsIngestor.cs +++ b/src/McpServer.Services/Ingestion/ExternalDocsIngestor.cs @@ -2,6 +2,7 @@ using System.Text; using McpServer.Support.Mcp.Indexing; using McpServer.Support.Mcp.Models; +using McpServer.Support.Mcp.Services; using Microsoft.Extensions.Logging; namespace McpServer.Support.Mcp.Ingestion; @@ -14,19 +15,23 @@ public sealed class ExternalDocsIngestor { private readonly Chunker _chunker; private readonly IngestionOptions _options; + private readonly WorkspaceContext _workspaceContext; private readonly ILogger _logger; /// TR-PLANNED-013: Constructor. /// Chunker for splitting content. /// Ingestion options providing external docs path. + /// Resolved workspace context for per-workspace ingestion. /// Logger instance. public ExternalDocsIngestor(Chunker chunker, Microsoft.Extensions.Options.IOptions options, + WorkspaceContext workspaceContext, ILogger logger) { _logger = logger; _chunker = chunker; _options = options?.Value ?? new IngestionOptions(); + _workspaceContext = workspaceContext ?? throw new ArgumentNullException(nameof(workspaceContext)); } /// FR-SUPPORT-010: Ingests all files under ExternalDocsPath; returns documents and chunks. @@ -35,8 +40,9 @@ public ExternalDocsIngestor(Chunker chunker, Microsoft.Extensions.Options.IOptio public async Task Chunks)>> IngestAsync( CancellationToken cancellationToken = default) { - var repoRoot = Path.GetFullPath(_options.RepoRoot); - var externalPath = Path.Combine(repoRoot, _options.ExternalDocsPath.TrimStart('.', Path.DirectorySeparatorChar)); + var repoRoot = ResolveRepoRoot(); + var externalPath = ResolveExternalDocsDirectory(repoRoot); + var sourceRoot = IsUnderPath(externalPath, repoRoot) ? repoRoot : externalPath; if (!Directory.Exists(externalPath)) { return Array.Empty<(ContextDocument, IReadOnlyList)>(); @@ -52,11 +58,11 @@ public ExternalDocsIngestor(Chunker chunker, Microsoft.Extensions.Options.IOptio var content = await File.ReadAllTextAsync(path, cancellationToken).ConfigureAwait(false); if (content.Length > _options.MaxFileSizeBytes) continue; - var relativePath = Path.GetRelativePath(repoRoot, path).Replace('\\', '/'); + var relativePath = Path.GetRelativePath(sourceRoot, path).Replace('\\', '/'); if (relativePath.Contains("..", StringComparison.Ordinal)) continue; var contentHash = ComputeHash(content); - var documentId = "external-doc:" + relativePath.Replace("/", "-", StringComparison.Ordinal).Replace(":", "-", StringComparison.Ordinal); + var documentId = BuildWorkspaceScopedDocumentId("external-doc", repoRoot, relativePath); var doc = new ContextDocument { Id = documentId, @@ -88,4 +94,40 @@ private static string ComputeHash(string content) var bytes = SHA256.HashData(Encoding.UTF8.GetBytes(content)); return Convert.ToHexString(bytes).ToUpperInvariant(); } + + private string ResolveRepoRoot() + { + var candidate = _workspaceContext.WorkspacePath; + if (string.IsNullOrWhiteSpace(candidate)) + candidate = _options.RepoRoot; + return Path.GetFullPath(candidate); + } + + private string ResolveExternalDocsDirectory(string repoRoot) + { + var externalDocsPath = !string.IsNullOrWhiteSpace(_workspaceContext.ExternalDocsPath) + ? _workspaceContext.ExternalDocsPath! + : _options.ExternalDocsPath; + + return Path.IsPathRooted(externalDocsPath) + ? Path.GetFullPath(externalDocsPath) + : Path.GetFullPath(Path.Combine(repoRoot, externalDocsPath.TrimStart('.', Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar))); + } + + private static bool IsUnderPath(string candidatePath, string rootPath) + { + var normalizedCandidate = Path.GetFullPath(candidatePath).TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar); + var normalizedRoot = Path.GetFullPath(rootPath).TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar); + if (normalizedCandidate.Equals(normalizedRoot, StringComparison.OrdinalIgnoreCase)) + return true; + var rootWithSep = normalizedRoot + Path.DirectorySeparatorChar; + return normalizedCandidate.StartsWith(rootWithSep, StringComparison.OrdinalIgnoreCase); + } + + private static string BuildWorkspaceScopedDocumentId(string sourcePrefix, string workspaceRoot, string relativePath) + { + var scope = ComputeHash(workspaceRoot).Substring(0, 16).ToLowerInvariant(); + var normalizedPath = relativePath.Replace("/", "-", StringComparison.Ordinal).Replace(":", "-", StringComparison.Ordinal); + return $"{sourcePrefix}:{scope}:{normalizedPath}"; + } } diff --git a/src/McpServer.Services/Ingestion/IngestionCoordinator.cs b/src/McpServer.Services/Ingestion/IngestionCoordinator.cs index 9cb5e205..6b8758a5 100644 --- a/src/McpServer.Services/Ingestion/IngestionCoordinator.cs +++ b/src/McpServer.Services/Ingestion/IngestionCoordinator.cs @@ -210,15 +210,39 @@ private async Task UpsertDocumentAndChunksAsync( IReadOnlyList chunks, CancellationToken cancellationToken) { - var existing = await _db.Documents.FindAsync(new object[] { doc.Id }, cancellationToken).ConfigureAwait(false); - if (existing != null) + var existingDocs = await _db.Documents + .Where(d => d.SourceType == doc.SourceType && d.SourceKey == doc.SourceKey) + .ToListAsync(cancellationToken).ConfigureAwait(false); + + if (existingDocs.Count > 0) { - existing.SourceType = doc.SourceType; - existing.SourceKey = doc.SourceKey; - existing.IngestedAt = doc.IngestedAt; - existing.ContentHash = doc.ContentHash; - var toRemove = await _db.Chunks.Where(c => c.DocumentId == doc.Id).ToListAsync(cancellationToken).ConfigureAwait(false); + var existingIds = existingDocs.Select(d => d.Id).ToList(); + var toRemove = await _db.Chunks + .Where(c => existingIds.Contains(c.DocumentId)) + .ToListAsync(cancellationToken) + .ConfigureAwait(false); _db.Chunks.RemoveRange(toRemove); + + if (existingDocs.Count == 1 && existingDocs[0].Id == doc.Id) + { + var existing = existingDocs[0]; + existing.SourceType = doc.SourceType; + existing.SourceKey = doc.SourceKey; + existing.IngestedAt = doc.IngestedAt; + existing.ContentHash = doc.ContentHash; + } + else + { + _db.Documents.RemoveRange(existingDocs); + _db.Documents.Add(new ContextDocumentEntity + { + Id = doc.Id, + SourceType = doc.SourceType, + SourceKey = doc.SourceKey, + IngestedAt = doc.IngestedAt, + ContentHash = doc.ContentHash + }); + } } else { diff --git a/src/McpServer.Services/Ingestion/RepoIngestor.cs b/src/McpServer.Services/Ingestion/RepoIngestor.cs index 16154c1c..2e544c10 100644 --- a/src/McpServer.Services/Ingestion/RepoIngestor.cs +++ b/src/McpServer.Services/Ingestion/RepoIngestor.cs @@ -1,7 +1,9 @@ -using System.Security.Cryptography; +using System.Security.Cryptography; using System.Text; +using System.Text.RegularExpressions; using McpServer.Support.Mcp.Indexing; using McpServer.Support.Mcp.Models; +using McpServer.Support.Mcp.Services; using Microsoft.Extensions.Logging; namespace McpServer.Support.Mcp.Ingestion; @@ -12,22 +14,25 @@ namespace McpServer.Support.Mcp.Ingestion; /// public sealed class RepoIngestor { - private static readonly char[] s_trimSlashChars = { '/' }; private readonly Chunker _chunker; private readonly IngestionOptions _options; + private readonly WorkspaceContext _workspaceContext; private readonly ILogger _logger; /// TR-PLANNED-013: Constructor. /// Chunker for splitting content. /// Ingestion options providing repo root and allowlist. + /// Resolved workspace context for per-workspace ingestion. /// Logger instance. public RepoIngestor(Chunker chunker, Microsoft.Extensions.Options.IOptions options, + WorkspaceContext workspaceContext, ILogger logger) { _logger = logger; _chunker = chunker; _options = options?.Value ?? new IngestionOptions(); + _workspaceContext = workspaceContext ?? throw new ArgumentNullException(nameof(workspaceContext)); } /// TR-PLANNED-013: Ingests allowlisted files under RepoRoot; returns documents and chunks. @@ -36,7 +41,7 @@ public RepoIngestor(Chunker chunker, Microsoft.Extensions.Options.IOptions Chunks)>> IngestAsync( CancellationToken cancellationToken = default) { - var repoRoot = Path.GetFullPath(_options.RepoRoot); + var repoRoot = ResolveRepoRoot(); if (!Directory.Exists(repoRoot)) { return Array.Empty<(ContextDocument, IReadOnlyList)>(); @@ -63,7 +68,7 @@ public RepoIngestor(Chunker chunker, Microsoft.Extensions.Options.IOptions EnumerateAllFilesAsync( private static bool MatchesAllowlist(string relativePath, IReadOnlyList patterns) { + var normalizedPath = relativePath.Replace('\\', '/'); foreach (var p in patterns) { - if (p.Contains("**", StringComparison.Ordinal)) + if (string.IsNullOrWhiteSpace(p)) { - var prefix = p.Replace("**", string.Empty, StringComparison.Ordinal).TrimEnd(s_trimSlashChars); - if (relativePath.StartsWith(prefix, StringComparison.OrdinalIgnoreCase)) return true; + continue; } - else if (p.StartsWith("*.", StringComparison.Ordinal)) + + var pattern = p.Replace('\\', '/').TrimStart('/'); + if (pattern.StartsWith("*.", StringComparison.Ordinal)) { - var suffix = p[1..]; - if (relativePath.EndsWith(suffix, StringComparison.OrdinalIgnoreCase)) return true; + var suffix = pattern[1..]; + if (normalizedPath.EndsWith(suffix, StringComparison.OrdinalIgnoreCase)) + { + return true; + } } - else if (relativePath.StartsWith(p.TrimStart('/'), StringComparison.OrdinalIgnoreCase)) + + if (GlobMatches(normalizedPath, pattern)) { return true; } @@ -161,4 +172,75 @@ private static string ComputeHash(string content) var bytes = SHA256.HashData(Encoding.UTF8.GetBytes(content)); return Convert.ToHexString(bytes).ToUpperInvariant(); } + + private static bool GlobMatches(string path, string pattern) + { + var regexPattern = GlobToRegex(pattern); + return Regex.IsMatch( + path, + regexPattern, + RegexOptions.IgnoreCase | RegexOptions.CultureInvariant); + } + + private static string GlobToRegex(string pattern) + { + var sb = new StringBuilder("^"); + for (var i = 0; i < pattern.Length; i++) + { + var c = pattern[i]; + if (c == '*') + { + var isDoubleStar = i + 1 < pattern.Length && pattern[i + 1] == '*'; + if (isDoubleStar) + { + var followedBySlash = i + 2 < pattern.Length && + (pattern[i + 2] == '/' || pattern[i + 2] == '\\'); + if (followedBySlash) + { + sb.Append("(?:.*/)?"); + i += 2; + } + else + { + sb.Append(".*"); + i += 1; + } + } + else + { + sb.Append("[^/]*"); + } + } + else if (c == '?') + { + sb.Append("[^/]"); + } + else if (c == '/' || c == '\\') + { + sb.Append('/'); + } + else + { + sb.Append(Regex.Escape(c.ToString())); + } + } + + sb.Append('$'); + return sb.ToString(); + } + + private string ResolveRepoRoot() + { + var candidate = _workspaceContext.WorkspacePath; + if (string.IsNullOrWhiteSpace(candidate)) + candidate = _options.RepoRoot; + return Path.GetFullPath(candidate); + } + + private static string BuildWorkspaceScopedDocumentId(string sourcePrefix, string workspaceRoot, string relativePath) + { + var scope = ComputeHash(workspaceRoot).Substring(0, 16).ToLowerInvariant(); + var normalizedPath = relativePath.Replace("/", "-", StringComparison.Ordinal).Replace(":", "-", StringComparison.Ordinal); + return $"{sourcePrefix}:{scope}:{normalizedPath}"; + } } diff --git a/src/McpServer.Services/Ingestion/SessionLogIngestor.cs b/src/McpServer.Services/Ingestion/SessionLogIngestor.cs index 1b2b6c1d..f230ef40 100644 --- a/src/McpServer.Services/Ingestion/SessionLogIngestor.cs +++ b/src/McpServer.Services/Ingestion/SessionLogIngestor.cs @@ -36,6 +36,7 @@ public sealed class SessionLogIngestor { private readonly Chunker _chunker; private readonly IngestionOptions _options; + private readonly WorkspaceContext _workspaceContext; private readonly ISessionLogService _sessionLogService; private readonly ILogger _logger; private static readonly JsonSerializerOptions s_jsonOptions = new() { PropertyNameCaseInsensitive = true }; @@ -43,16 +44,19 @@ public sealed class SessionLogIngestor /// TR-PLANNED-013: Constructor. /// Chunker for splitting content. /// Ingestion options providing sessions path. + /// Resolved workspace context for per-workspace ingestion. /// Service for persisting session logs to 4NF tables. /// Logger for diagnostic output. public SessionLogIngestor( Chunker chunker, Microsoft.Extensions.Options.IOptions options, + WorkspaceContext workspaceContext, ISessionLogService sessionLogService, ILogger logger) { _chunker = chunker; _options = options?.Value ?? new IngestionOptions(); + _workspaceContext = workspaceContext ?? throw new ArgumentNullException(nameof(workspaceContext)); _sessionLogService = sessionLogService ?? throw new ArgumentNullException(nameof(sessionLogService)); _logger = logger ?? throw new ArgumentNullException(nameof(logger)); } @@ -63,11 +67,9 @@ public SessionLogIngestor( public async Task Chunks)>> IngestAsync( CancellationToken cancellationToken = default) { - var repoRoot = Path.GetFullPath(_options.RepoRoot); - var sessionsDir = Path.IsPathRooted(_options.SessionsPath) - ? Path.GetFullPath(_options.SessionsPath) - : Path.GetFullPath(Path.Combine(repoRoot, _options.SessionsPath.TrimStart('.', Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar))); - var sourceRoot = Path.IsPathRooted(_options.SessionsPath) ? sessionsDir : repoRoot; + var repoRoot = ResolveRepoRoot(); + var sessionsDir = ResolveSessionsDirectory(repoRoot); + var sourceRoot = IsUnderPath(sessionsDir, repoRoot) ? repoRoot : sessionsDir; if (!Directory.Exists(sessionsDir)) { return Array.Empty<(ContextDocument, IReadOnlyList)>(); @@ -97,7 +99,7 @@ public SessionLogIngestor( : NormalizeMarkdownSessionLog(content); var contentHash = ComputeHash(content); var relativePath = Path.GetRelativePath(sourceRoot, path).Replace('\\', '/'); - var documentId = "session-log:" + relativePath.Replace("/", "-", StringComparison.Ordinal).Replace(":", "-", StringComparison.Ordinal); + var documentId = BuildWorkspaceScopedDocumentId("session-log", repoRoot, relativePath); var doc = new ContextDocument { Id = documentId, @@ -170,10 +172,8 @@ private static string ComputeHash(string content) /// Import statistics including files scanned, imported, skipped, failed, and total entries. public async Task ImportToSessionLogTablesAsync(CancellationToken cancellationToken = default) { - var repoRoot = Path.GetFullPath(_options.RepoRoot); - var sessionsDir = Path.IsPathRooted(_options.SessionsPath) - ? Path.GetFullPath(_options.SessionsPath) - : Path.GetFullPath(Path.Combine(repoRoot, _options.SessionsPath.TrimStart('.', Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar))); + var repoRoot = ResolveRepoRoot(); + var sessionsDir = ResolveSessionsDirectory(repoRoot); if (!Directory.Exists(sessionsDir)) { _logger.LogWarning("Sessions directory not found: {SessionsDir}", sessionsDir); @@ -338,4 +338,40 @@ public async Task ImportToSessionLogTablesAsync(Cancella return dto; } + + private string ResolveRepoRoot() + { + var candidate = _workspaceContext.WorkspacePath; + if (string.IsNullOrWhiteSpace(candidate)) + candidate = _options.RepoRoot; + return Path.GetFullPath(candidate); + } + + private string ResolveSessionsDirectory(string repoRoot) + { + var sessionsPath = !string.IsNullOrWhiteSpace(_workspaceContext.SessionsPath) + ? _workspaceContext.SessionsPath! + : _options.SessionsPath; + + return Path.IsPathRooted(sessionsPath) + ? Path.GetFullPath(sessionsPath) + : Path.GetFullPath(Path.Combine(repoRoot, sessionsPath.TrimStart('.', Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar))); + } + + private static bool IsUnderPath(string candidatePath, string rootPath) + { + var normalizedCandidate = Path.GetFullPath(candidatePath).TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar); + var normalizedRoot = Path.GetFullPath(rootPath).TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar); + if (normalizedCandidate.Equals(normalizedRoot, StringComparison.OrdinalIgnoreCase)) + return true; + var rootWithSep = normalizedRoot + Path.DirectorySeparatorChar; + return normalizedCandidate.StartsWith(rootWithSep, StringComparison.OrdinalIgnoreCase); + } + + private static string BuildWorkspaceScopedDocumentId(string sourcePrefix, string workspaceRoot, string relativePath) + { + var scope = ComputeHash(workspaceRoot).Substring(0, 16).ToLowerInvariant(); + var normalizedPath = relativePath.Replace("/", "-", StringComparison.Ordinal).Replace(":", "-", StringComparison.Ordinal); + return $"{sourcePrefix}:{scope}:{normalizedPath}"; + } } diff --git a/src/McpServer.Services/Services/FileMarkerPromptProvider.cs b/src/McpServer.Services/Services/FileMarkerPromptProvider.cs index ddadb3ac..82b19771 100644 --- a/src/McpServer.Services/Services/FileMarkerPromptProvider.cs +++ b/src/McpServer.Services/Services/FileMarkerPromptProvider.cs @@ -3,9 +3,8 @@ namespace McpServer.Support.Mcp.Services; /// /// FR-MCP-049, TR-MCP-TPL-001: Reads the marker prompt template from the /// combined prompt-templates.yaml via -/// using the default-marker-prompt template ID. Returns -/// when the template is not found, allowing the caller to fall back to -/// . +/// using the default-marker-prompt template ID. Throws +/// (Critical) if the template is not found. /// public sealed class FileMarkerPromptProvider : IMarkerPromptProvider { @@ -25,29 +24,32 @@ public FileMarkerPromptProvider(IPromptTemplateService templateService, ILogger< } /// - public async Task GetGlobalPromptTemplateAsync(CancellationToken cancellationToken = default) + public async Task GetGlobalPromptTemplateAsync(CancellationToken cancellationToken = default) { if (_loaded) - return _cached; + return _cached!; try { var template = await _templateService.GetByIdAsync(TemplateId, cancellationToken).ConfigureAwait(false); - _cached = template?.Content; - _loaded = true; + + if (template is null) + { + var msg = $"CRITICAL: Marker prompt template '{TemplateId}' not found in prompt-templates.yaml. Server cannot start without it."; + _logger.LogCritical(msg); + throw new InvalidOperationException(msg); + } - if (_cached is not null) - _logger.LogInformation("Loaded marker prompt template '{Id}' ({Length} chars)", TemplateId, _cached.Length); - else - _logger.LogDebug("Marker prompt template '{Id}' not found, using built-in default", TemplateId); + _cached = template.Content; + _loaded = true; + _logger.LogInformation("Loaded marker prompt template '{Id}' ({Length} chars)", TemplateId, _cached.Length); return _cached; } - catch (Exception ex) + catch (Exception ex) when (ex is not InvalidOperationException) { - _logger.LogError(ex, "Failed to load marker prompt template '{Id}'", TemplateId); - _loaded = true; - return null; + _logger.LogCritical(ex, "Failed to load marker prompt template '{Id}'", TemplateId); + throw; } } } diff --git a/src/McpServer.Services/Services/Fts5SearchService.cs b/src/McpServer.Services/Services/Fts5SearchService.cs index a9565a4f..99694c2c 100644 --- a/src/McpServer.Services/Services/Fts5SearchService.cs +++ b/src/McpServer.Services/Services/Fts5SearchService.cs @@ -12,12 +12,14 @@ internal sealed class Fts5SearchService : IContextSearchService { private readonly McpDbContext _db; private readonly ILogger _logger; + private readonly bool _isSqliteProvider; /// TR-PLANNED-013: Constructor for DI. public Fts5SearchService(McpDbContext db, ILogger logger) { _db = db; _logger = logger; + _isSqliteProvider = _db.Database.ProviderName?.Contains("Sqlite", StringComparison.OrdinalIgnoreCase) == true; } /// @@ -31,6 +33,12 @@ public async Task SearchAsync(string query, int limit = 20, return new ContextSearchResult([], []); } + // FTS5 SQL is SQLite-specific. For other providers (e.g., PostgreSQL), use fallback search. + if (!_isSqliteProvider) + { + return await FallbackSearchAsync(q, lim, sourceType, ct).ConfigureAwait(false); + } + // Escape FTS5 special characters and form a simple prefix query var ftsQuery = EscapeFts5Query(q); @@ -128,6 +136,14 @@ LIMIT @limit /// public async Task RebuildAsync(CancellationToken ct = default) { + if (!_isSqliteProvider) + { + _logger.LogInformation( + "Skipping FTS5 rebuild for non-SQLite provider: {ProviderName}", + _db.Database.ProviderName ?? ""); + return; + } + try { var conn = _db.Database.GetDbConnection(); @@ -163,7 +179,10 @@ private async Task FallbackSearchAsync(string query, int li var docIds = await _db.Documents.Where(d => d.SourceType == sourceType).Select(d => d.Id).ToListAsync(ct).ConfigureAwait(false); chunksQuery = chunksQuery.Where(c => docIds.Contains(c.DocumentId)); } - chunksQuery = chunksQuery.Where(c => c.Content != null && c.Content.Contains(query)); + if (_isSqliteProvider) + chunksQuery = chunksQuery.Where(c => c.Content != null && c.Content.Contains(query)); + else + chunksQuery = chunksQuery.Where(c => c.Content != null && EF.Functions.ILike(c.Content, $"%{query}%")); var chunkList = await chunksQuery .OrderBy(c => c.DocumentId) diff --git a/src/McpServer.Services/Services/IMarkerPromptProvider.cs b/src/McpServer.Services/Services/IMarkerPromptProvider.cs index 8a6ea3c2..996db6b3 100644 --- a/src/McpServer.Services/Services/IMarkerPromptProvider.cs +++ b/src/McpServer.Services/Services/IMarkerPromptProvider.cs @@ -3,15 +3,14 @@ namespace McpServer.Support.Mcp.Services; /// /// FR-MCP-049, TR-MCP-TPL-001: Provides the global marker prompt template /// from the combined prompt-templates.yaml via , -/// with graceful fallback to the built-in default. +/// ensuring the required template exists. /// public interface IMarkerPromptProvider { /// /// Returns the marker prompt template loaded from - /// the default-marker-prompt entry in prompt-templates.yaml, - /// or when not found (caller falls back to - /// ). + /// the default-marker-prompt entry in prompt-templates.yaml. + /// Throws if the template is not found. /// - Task GetGlobalPromptTemplateAsync(CancellationToken cancellationToken = default); + Task GetGlobalPromptTemplateAsync(CancellationToken cancellationToken = default); } diff --git a/src/McpServer.Services/Services/MarkerFileService.cs b/src/McpServer.Services/Services/MarkerFileService.cs index 4ab6e4d5..b8de01f6 100644 --- a/src/McpServer.Services/Services/MarkerFileService.cs +++ b/src/McpServer.Services/Services/MarkerFileService.cs @@ -19,128 +19,6 @@ public static class MarkerFileService /// Well-known marker file name placed at the workspace root. public const string MarkerFileName = "AGENTS-README-FIRST.yaml"; - /// - /// Built-in default prompt template using Handlebars syntax. - /// Available context: {{baseUrl}}, {{apiKey}}, {{workspace.*}} (all WorkspaceDto fields). - /// Used when no Mcp:MarkerPromptTemplate is configured. - /// - public const string DefaultPromptTemplate = - """ - You are connected to an MCP Context Server at {{baseUrl}}. Use this server to coordinate your work. - - ## Session Start - - 1. Read this marker file for connection details and API key. - 2. Bootstrap helper modules from the Tool Registry (see docs/context/module-bootstrap.md). - 3. Review recent session history and current TODOs. - 4. Post a session log entry before starting work on the user's request. - - ## Rules - - 1. Post a session log entry before any work on a user request. Update it with results when done. - 2. Use helper modules for session log and TODO operations — they handle workspace routing automatically. Do not use raw API calls. - 3. Write decisions, requirements, and state to the session log, not just conversation. - 4. Follow workspace conventions in AGENTS.md and .github/copilot-instructions.md. - 5. When you need API schemas, module examples, or compliance rules, load them from docs/context/ or use context_search. - 6. Do not fabricate information. Acknowledge mistakes. Distinguish facts from speculation. - 7. Prioritize correctness over speed. Do not ship code you have not verified compiles. - - ## Naming Conventions - - - TODO IDs for new items must be uppercase kebab-case with exactly 3 segments: --### (regex: ^[A-Z]+-[A-Z0-9]+-\d{3}$). - - Valid TODO IDs: PLAN-NAMINGCONVENTIONS-001, MCP-API-042. - - Invalid TODO IDs: plan-api-001, MCP-API-42, MCPAPI001. - - Session IDs must use -- and start with the exact agent/source type prefix. - - Valid Session ID: Copilot-20260304T113901Z-namingconv. - - Invalid Session IDs: copilot-20260304T113901Z-namingconv, Copilot-2026-03-04-namingconv. - - Request IDs must use req-- and be unique within a session. - - Valid Request ID: req-20260304T113901Z-plan-namingconventions-001. - - Invalid Request IDs: req-plan-namingconventions-001, request-20260304T113901Z-task-01. - - ## Workspace - - - Name: {{workspace.Name}} - - Path: {{workspace.WorkspacePath}} - - Primary: {{workspace.IsPrimary}} - - Data Directory: {{workspace.DataDirectory}} - - Todo Path: {{workspace.TodoPath}} - - ## Authentication - - All /mcpserver/* endpoints require a per-workspace auth token: - - Header: X-Api-Key: {{apiKey}} - - Or query param: ?api_key={{apiKey}} - If you receive a 401, re-read this marker file — the token rotates on each server restart. - - ## Where Things Live - - - AGENTS.md — agent conduct, requirements tracking, session continuity, glossary - - .github/copilot-instructions.md — build/test commands, architecture, coding conventions - - docs/context/ — on-demand reference (schemas, module docs, compliance rules, action types) - - docs/Project/ — requirements docs, TODO.yaml, mapping matrices - - templates/ — prompt templates - - ## Context Loading by Task Type - - - Session logging → docs/context/session-log-schema.md + docs/context/module-bootstrap.md - - TODO management → docs/context/todo-schema.md + docs/context/module-bootstrap.md - - API integration → docs/context/api-capabilities.md (or GET {{baseUrl}}/swagger/v1/swagger.json) - - Adding dependencies → docs/context/compliance-rules.md - - Logging actions → docs/context/action-types.md - - ## Available Capabilities - - - src/McpServer.Cqrs/**/*.cs — CQRS contracts, dispatcher pipeline, and result primitives. - - src/McpServer.Cqrs.Mvvm/**/*.cs — MVVM integration layer for command/query-driven UI workflows. - - src/McpServer.UI.Core/**/*.cs — shared UI handlers, view models, and authorization abstractions. - - src/McpServer.Director/**/*.cs — Director CLI/TUI orchestration for workspace and policy operations. - - ## Protocols - - - REST API: {{baseUrl}}/mcpserver/* (requires X-Api-Key). Swagger UI: {{baseUrl}}/swagger - - MCP Streamable HTTP: POST {{baseUrl}}/mcp-transport (no API key required) - - Health: GET {{baseUrl}}/health - - {{#if workspace.BannedLicenses}} - ## Compliance Restrictions - - This workspace has license, origin, or entity restrictions. Read docs/context/compliance-rules.md before adding any dependency. - - Banned licenses: - {{#each workspace.BannedLicenses}} - - {{this}} - {{/each}} - {{/if}} - - {{#if workspace.BannedCountriesOfOrigin}} - Banned countries of origin: - {{#each workspace.BannedCountriesOfOrigin}} - - {{this}} - {{/each}} - {{/if}} - - {{#if workspace.BannedOrganizations}} - Banned organizations: - {{#each workspace.BannedOrganizations}} - - {{this}} - {{/each}} - {{/if}} - - {{#if workspace.BannedIndividuals}} - Banned individuals: - {{#each workspace.BannedIndividuals}} - - {{this}} - {{/each}} - {{/if}} - - ## Before Delivering Output - - Verify: session log is current, decisions are recorded, requirements are tracked, code compiles, action types are correct (see docs/context/action-types.md). - - --- - MCP Server version: {{version}} - """; - private static readonly ISerializer s_yamlSerializer = new SerializerBuilder() .WithNamingConvention(CamelCaseNamingConvention.Instance) .ConfigureDefaultValuesHandling(DefaultValuesHandling.OmitNull) @@ -157,8 +35,8 @@ 7. Prioritize correctness over speed. Do not ship code you have not verified com /// Optional logger for diagnostics. /// Cancellation token. /// - /// Optional global Handlebars prompt template. - /// When or empty, the built-in default prompt is used. + /// Global Handlebars prompt template. + /// Must be provided; otherwise an exception is thrown. /// /// /// Optional per-workspace Handlebars prompt template. @@ -303,11 +181,10 @@ internal static string ResolvePrompt( string? globalPromptTemplate, string? workspacePromptTemplate) { - var globalSource = string.IsNullOrWhiteSpace(globalPromptTemplate) - ? DefaultPromptTemplate - : globalPromptTemplate; + if (string.IsNullOrWhiteSpace(globalPromptTemplate)) + throw new ArgumentException("Global prompt template must be provided.", nameof(globalPromptTemplate)); - var global = RenderHandlebars(globalSource, templateContext); + var global = RenderHandlebars(globalPromptTemplate, templateContext); if (string.IsNullOrWhiteSpace(workspacePromptTemplate)) return global; diff --git a/src/McpServer.Services/Services/SessionLogService.cs b/src/McpServer.Services/Services/SessionLogService.cs index e98eadf8..596f8f03 100644 --- a/src/McpServer.Services/Services/SessionLogService.cs +++ b/src/McpServer.Services/Services/SessionLogService.cs @@ -167,7 +167,7 @@ public async Task AppendProcessingDialogAsync( if (requestIdError is not null) throw new ArgumentException(requestIdError, nameof(requestId)); - var entry = await _db.SessionLogEntries + var entry = await _db.SessionLogTurns .Include(e => e.ProcessingDialog) .FirstOrDefaultAsync(e => e.SessionLog!.SourceType == sourceType @@ -367,14 +367,14 @@ private void UpsertEntries(SessionLogEntity session, List 0) { - _db.SessionLogEntries.RemoveRange(stale); + _db.SessionLogTurns.RemoveRange(stale); } } /// /// Updates an existing entry entity from a DTO, replacing its child collections. /// - private void UpdateEntryFromDto(SessionLogEntryEntity entity, UnifiedRequestEntryDto dto) + private void UpdateEntryFromDto(SessionLogTurnEntity entity, UnifiedRequestEntryDto dto) { entity.Timestamp = ParseDateTimeOffset(dto.Timestamp); entity.Model = dto.Model; @@ -393,11 +393,11 @@ private void UpdateEntryFromDto(SessionLogEntryEntity entity, UnifiedRequestEntr // Replace child collections (cascade delete handles old rows) _db.SessionLogActions.RemoveRange(entity.Actions); - _db.SessionLogEntryTags.RemoveRange(entity.Tags); - _db.SessionLogEntryContexts.RemoveRange(entity.ContextItems); + _db.SessionLogTurnTags.RemoveRange(entity.Tags); + _db.SessionLogTurnContexts.RemoveRange(entity.ContextItems); _db.SessionLogProcessingDialogs.RemoveRange(entity.ProcessingDialog); _db.SessionLogCommits.RemoveRange(entity.Commits); - _db.SessionLogEntryStringLists.RemoveRange(entity.StringListItems); + _db.SessionLogTurnStringLists.RemoveRange(entity.StringListItems); entity.Actions = MapActions(dto.Actions); entity.Tags = MapTags(dto.Tags); @@ -407,7 +407,7 @@ private void UpdateEntryFromDto(SessionLogEntryEntity entity, UnifiedRequestEntr entity.StringListItems = MapStringListItems(dto); } - private static List MapNewEntries(List? entries) + private static List MapNewEntries(List? entries) { if (entries is null or { Count: 0 }) return []; @@ -415,9 +415,9 @@ private static List MapNewEntries(List MapActions(List? a }).ToList() ?? []; } - private static List MapTags(List? tags) + private static List MapTags(List? tags) { - return tags?.Select(t => new SessionLogEntryTagEntity { Tag = t }).ToList() ?? []; + return tags?.Select(t => new SessionLogTurnTagEntity { Tag = t }).ToList() ?? []; } - private static List MapContextItems(List? contextList) + private static List MapContextItems(List? contextList) { - return contextList?.Select((c, i) => new SessionLogEntryContextEntity + return contextList?.Select((c, i) => new SessionLogTurnContextEntity { Ordinal = i, ContextItem = c @@ -497,9 +497,9 @@ private static List MapCommits(List }).ToList() ?? []; } - private static List MapStringListItems(UnifiedRequestEntryDto dto) + private static List MapStringListItems(UnifiedRequestEntryDto dto) { - var items = new List(); + var items = new List(); AddStringListItems(items, "DesignDecision", dto.DesignDecisions); AddStringListItems(items, "Requirement", dto.RequirementsDiscovered); AddStringListItems(items, "FileModified", dto.FilesModified); @@ -507,13 +507,13 @@ private static List MapStringListItems(UnifiedR return items; } - private static void AddStringListItems(List items, string listType, List? values) + private static void AddStringListItems(List items, string listType, List? values) { if (values is not { Count: > 0 }) return; for (int i = 0; i < values.Count; i++) { - items.Add(new SessionLogEntryStringListEntity + items.Add(new SessionLogTurnStringListEntity { ListType = listType, Ordinal = i, @@ -636,7 +636,7 @@ private static UnifiedSessionLogDto MapEntityToDto(SessionLogEntity entity) return JsonSerializer.Deserialize(json); } - private static List? MapStringListToDto(ICollection items, string listType) + private static List? MapStringListToDto(ICollection items, string listType) { var filtered = items.Where(i => i.ListType == listType).OrderBy(i => i.Ordinal).Select(i => i.Value).ToList(); return filtered.Count > 0 ? filtered : null; @@ -679,3 +679,4 @@ await _eventBus.PublishAsync( } } } + diff --git a/src/McpServer.Storage/Entities/SessionLogActionEntity.cs b/src/McpServer.Storage/Entities/SessionLogActionEntity.cs index 62f94d8c..f219ea08 100644 --- a/src/McpServer.Storage/Entities/SessionLogActionEntity.cs +++ b/src/McpServer.Storage/Entities/SessionLogActionEntity.cs @@ -16,7 +16,7 @@ public sealed class SessionLogActionEntity public string WorkspaceId { get; set; } = string.Empty; /// TR-PLANNED-013: Foreign key to parent entry. - public long SessionLogEntryId { get; set; } + public long SessionLogTurnId { get; set; } /// TR-PLANNED-013: Execution order within the request. public int Order { get; set; } @@ -37,5 +37,6 @@ public sealed class SessionLogActionEntity public string? FilePath { get; set; } /// TR-PLANNED-013: Navigation to parent entry. - public SessionLogEntryEntity? SessionLogEntry { get; set; } + public SessionLogTurnEntity? SessionLogTurn { get; set; } } + diff --git a/src/McpServer.Storage/Entities/SessionLogCommitEntity.cs b/src/McpServer.Storage/Entities/SessionLogCommitEntity.cs index 7d2791ca..86785914 100644 --- a/src/McpServer.Storage/Entities/SessionLogCommitEntity.cs +++ b/src/McpServer.Storage/Entities/SessionLogCommitEntity.cs @@ -16,7 +16,7 @@ public sealed class SessionLogCommitEntity public string WorkspaceId { get; set; } = string.Empty; /// TR-PLANNED-013: Foreign key to parent entry. - public long SessionLogEntryId { get; set; } + public long SessionLogTurnId { get; set; } /// Ordinal position within the entry's commit list. public int Ordinal { get; set; } @@ -43,5 +43,6 @@ public sealed class SessionLogCommitEntity public string? FilesChangedJson { get; set; } /// TR-PLANNED-013: Navigation to parent entry. - public SessionLogEntryEntity? SessionLogEntry { get; set; } + public SessionLogTurnEntity? SessionLogTurn { get; set; } } + diff --git a/src/McpServer.Storage/Entities/SessionLogEntity.cs b/src/McpServer.Storage/Entities/SessionLogEntity.cs index b5e01129..322115bf 100644 --- a/src/McpServer.Storage/Entities/SessionLogEntity.cs +++ b/src/McpServer.Storage/Entities/SessionLogEntity.cs @@ -99,5 +99,6 @@ public sealed class SessionLogEntity /// TR-PLANNED-013: Navigation to session log entries. [SuppressMessage("Usage", "CA2227:Collection properties should be read only", Justification = "EF Core navigation collection")] - public ICollection Entries { get; set; } = new List(); + public ICollection Entries { get; set; } = new List(); } + diff --git a/src/McpServer.Storage/Entities/SessionLogProcessingDialogEntity.cs b/src/McpServer.Storage/Entities/SessionLogProcessingDialogEntity.cs index 6b064a39..a615f0d9 100644 --- a/src/McpServer.Storage/Entities/SessionLogProcessingDialogEntity.cs +++ b/src/McpServer.Storage/Entities/SessionLogProcessingDialogEntity.cs @@ -17,7 +17,7 @@ public sealed class SessionLogProcessingDialogEntity public string WorkspaceId { get; set; } = string.Empty; /// TR-PLANNED-013: Foreign key to parent entry. - public long SessionLogEntryId { get; set; } + public long SessionLogTurnId { get; set; } /// TR-PLANNED-013: Ordinal position within the dialog sequence. public int Ordinal { get; set; } @@ -39,5 +39,6 @@ public sealed class SessionLogProcessingDialogEntity public string? Category { get; set; } /// TR-PLANNED-013: Navigation to parent entry. - public SessionLogEntryEntity? SessionLogEntry { get; set; } + public SessionLogTurnEntity? SessionLogTurn { get; set; } } + diff --git a/src/McpServer.Storage/Entities/SessionLogEntryContextEntity.cs b/src/McpServer.Storage/Entities/SessionLogTurnContextEntity.cs similarity index 86% rename from src/McpServer.Storage/Entities/SessionLogEntryContextEntity.cs rename to src/McpServer.Storage/Entities/SessionLogTurnContextEntity.cs index dcefb031..607954da 100644 --- a/src/McpServer.Storage/Entities/SessionLogEntryContextEntity.cs +++ b/src/McpServer.Storage/Entities/SessionLogTurnContextEntity.cs @@ -6,7 +6,7 @@ namespace McpServer.Support.Mcp.Storage.Entities; /// TR-PLANNED-013: 4NF context item entity. One row per context reference on a session log entry. /// FR-SUPPORT-010: Eliminates multi-valued dependency on context list. /// -public sealed class SessionLogEntryContextEntity +public sealed class SessionLogTurnContextEntity { /// TR-PLANNED-013: Auto-generated primary key. [Key] @@ -16,7 +16,7 @@ public sealed class SessionLogEntryContextEntity public string WorkspaceId { get; set; } = string.Empty; /// TR-PLANNED-013: Foreign key to parent entry. - public long SessionLogEntryId { get; set; } + public long SessionLogTurnId { get; set; } /// TR-PLANNED-013: Ordinal position within the context list. public int Ordinal { get; set; } @@ -27,5 +27,6 @@ public sealed class SessionLogEntryContextEntity public required string ContextItem { get; set; } /// TR-PLANNED-013: Navigation to parent entry. - public SessionLogEntryEntity? SessionLogEntry { get; set; } + public SessionLogTurnEntity? SessionLogTurn { get; set; } } + diff --git a/src/McpServer.Storage/Entities/SessionLogEntryEntity.cs b/src/McpServer.Storage/Entities/SessionLogTurnEntity.cs similarity index 91% rename from src/McpServer.Storage/Entities/SessionLogEntryEntity.cs rename to src/McpServer.Storage/Entities/SessionLogTurnEntity.cs index b1f550b2..469f09b2 100644 --- a/src/McpServer.Storage/Entities/SessionLogEntryEntity.cs +++ b/src/McpServer.Storage/Entities/SessionLogTurnEntity.cs @@ -7,7 +7,7 @@ namespace McpServer.Support.Mcp.Storage.Entities; /// TR-PLANNED-013: 4NF session log entry entity. One row per request/response pair. /// FR-SUPPORT-010: Child of . /// -public sealed class SessionLogEntryEntity +public sealed class SessionLogTurnEntity { /// TR-PLANNED-013: Auto-generated primary key. [Key] @@ -78,11 +78,11 @@ public sealed class SessionLogEntryEntity /// TR-PLANNED-013: Navigation to tags. [SuppressMessage("Usage", "CA2227:Collection properties should be read only", Justification = "EF Core navigation collection")] - public ICollection Tags { get; set; } = new List(); + public ICollection Tags { get; set; } = new List(); /// TR-PLANNED-013: Navigation to context items. [SuppressMessage("Usage", "CA2227:Collection properties should be read only", Justification = "EF Core navigation collection")] - public ICollection ContextItems { get; set; } = new List(); + public ICollection ContextItems { get; set; } = new List(); /// TR-PLANNED-013: Navigation to processing dialog items. The AI model can independently append entries. [SuppressMessage("Usage", "CA2227:Collection properties should be read only", Justification = "EF Core navigation collection")] @@ -94,5 +94,6 @@ public sealed class SessionLogEntryEntity /// TR-PLANNED-013: Navigation to generic string-list items (design decisions, requirements, files modified, blockers). [SuppressMessage("Usage", "CA2227:Collection properties should be read only", Justification = "EF Core navigation collection")] - public ICollection StringListItems { get; set; } = new List(); + public ICollection StringListItems { get; set; } = new List(); } + diff --git a/src/McpServer.Storage/Entities/SessionLogEntryStringListEntity.cs b/src/McpServer.Storage/Entities/SessionLogTurnStringListEntity.cs similarity index 88% rename from src/McpServer.Storage/Entities/SessionLogEntryStringListEntity.cs rename to src/McpServer.Storage/Entities/SessionLogTurnStringListEntity.cs index b360e83e..35e853d7 100644 --- a/src/McpServer.Storage/Entities/SessionLogEntryStringListEntity.cs +++ b/src/McpServer.Storage/Entities/SessionLogTurnStringListEntity.cs @@ -7,7 +7,7 @@ namespace McpServer.Support.Mcp.Storage.Entities; /// Stores DesignDecisions, RequirementsDiscovered, FilesModified, and Blockers. /// FR-SUPPORT-010: Eliminates multi-valued dependency on string-list properties. /// -public sealed class SessionLogEntryStringListEntity +public sealed class SessionLogTurnStringListEntity { /// TR-PLANNED-013: Auto-generated primary key. [Key] @@ -17,7 +17,7 @@ public sealed class SessionLogEntryStringListEntity public string WorkspaceId { get; set; } = string.Empty; /// TR-PLANNED-013: Foreign key to parent entry. - public long SessionLogEntryId { get; set; } + public long SessionLogTurnId { get; set; } /// Discriminator identifying which list this item belongs to (DesignDecision, Requirement, FileModified, Blocker). [Required] @@ -31,5 +31,6 @@ public sealed class SessionLogEntryStringListEntity public required string Value { get; set; } /// TR-PLANNED-013: Navigation to parent entry. - public SessionLogEntryEntity? SessionLogEntry { get; set; } + public SessionLogTurnEntity? SessionLogTurn { get; set; } } + diff --git a/src/McpServer.Storage/Entities/SessionLogEntryTagEntity.cs b/src/McpServer.Storage/Entities/SessionLogTurnTagEntity.cs similarity index 84% rename from src/McpServer.Storage/Entities/SessionLogEntryTagEntity.cs rename to src/McpServer.Storage/Entities/SessionLogTurnTagEntity.cs index 2c852b78..82c4976a 100644 --- a/src/McpServer.Storage/Entities/SessionLogEntryTagEntity.cs +++ b/src/McpServer.Storage/Entities/SessionLogTurnTagEntity.cs @@ -6,7 +6,7 @@ namespace McpServer.Support.Mcp.Storage.Entities; /// TR-PLANNED-013: 4NF tag entity. One row per tag on a session log entry. /// FR-SUPPORT-010: Eliminates multi-valued dependency on tags. /// -public sealed class SessionLogEntryTagEntity +public sealed class SessionLogTurnTagEntity { /// TR-PLANNED-013: Auto-generated primary key. [Key] @@ -16,7 +16,7 @@ public sealed class SessionLogEntryTagEntity public string WorkspaceId { get; set; } = string.Empty; /// TR-PLANNED-013: Foreign key to parent entry. - public long SessionLogEntryId { get; set; } + public long SessionLogTurnId { get; set; } /// TR-PLANNED-013: Tag value. [Required] @@ -24,5 +24,6 @@ public sealed class SessionLogEntryTagEntity public required string Tag { get; set; } /// TR-PLANNED-013: Navigation to parent entry. - public SessionLogEntryEntity? SessionLogEntry { get; set; } + public SessionLogTurnEntity? SessionLogTurn { get; set; } } + diff --git a/src/McpServer.Storage/McpDbContext.cs b/src/McpServer.Storage/McpDbContext.cs index 449f3b8c..5984098a 100644 --- a/src/McpServer.Storage/McpDbContext.cs +++ b/src/McpServer.Storage/McpDbContext.cs @@ -34,16 +34,16 @@ public McpDbContext(DbContextOptions options, WorkspaceContext? wo public DbSet SessionLogs => Set(); /// TR-PLANNED-013: Session log entries (MVP-SUPPORT-011). - public DbSet SessionLogEntries => Set(); + public DbSet SessionLogTurns => Set(); /// TR-PLANNED-013: Session log entry actions (MVP-SUPPORT-011). public DbSet SessionLogActions => Set(); /// TR-PLANNED-013: Session log entry tags (MVP-SUPPORT-011). - public DbSet SessionLogEntryTags => Set(); + public DbSet SessionLogTurnTags => Set(); /// TR-PLANNED-013: Session log entry context items (MVP-SUPPORT-011). - public DbSet SessionLogEntryContexts => Set(); + public DbSet SessionLogTurnContexts => Set(); /// TR-PLANNED-013: Session log entry processing dialog items (MVP-SUPPORT-011). public DbSet SessionLogProcessingDialogs => Set(); @@ -52,7 +52,7 @@ public McpDbContext(DbContextOptions options, WorkspaceContext? wo public DbSet SessionLogCommits => Set(); /// TR-PLANNED-013: Session log entry string-list items (design decisions, requirements, files modified, blockers). - public DbSet SessionLogEntryStringLists => Set(); + public DbSet SessionLogTurnStringLists => Set(); /// Tool definitions discoverable by keyword search. public DbSet ToolDefinitions => Set(); @@ -100,7 +100,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) e.HasIndex(x => x.LastUpdated); }); - modelBuilder.Entity(e => + modelBuilder.Entity(e => { e.HasIndex(x => new { x.SessionLogId, x.RequestId }).IsUnique(); e.HasOne(x => x.SessionLog) @@ -111,51 +111,51 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(e => { - e.HasOne(x => x.SessionLogEntry) + e.HasOne(x => x.SessionLogTurn) .WithMany(x => x.Actions) - .HasForeignKey(x => x.SessionLogEntryId) + .HasForeignKey(x => x.SessionLogTurnId) .OnDelete(DeleteBehavior.Cascade); }); - modelBuilder.Entity(e => + modelBuilder.Entity(e => { - e.HasOne(x => x.SessionLogEntry) + e.HasOne(x => x.SessionLogTurn) .WithMany(x => x.Tags) - .HasForeignKey(x => x.SessionLogEntryId) + .HasForeignKey(x => x.SessionLogTurnId) .OnDelete(DeleteBehavior.Cascade); }); - modelBuilder.Entity(e => + modelBuilder.Entity(e => { - e.HasOne(x => x.SessionLogEntry) + e.HasOne(x => x.SessionLogTurn) .WithMany(x => x.ContextItems) - .HasForeignKey(x => x.SessionLogEntryId) + .HasForeignKey(x => x.SessionLogTurnId) .OnDelete(DeleteBehavior.Cascade); }); modelBuilder.Entity(e => { - e.HasOne(x => x.SessionLogEntry) + e.HasOne(x => x.SessionLogTurn) .WithMany(x => x.ProcessingDialog) - .HasForeignKey(x => x.SessionLogEntryId) + .HasForeignKey(x => x.SessionLogTurnId) .OnDelete(DeleteBehavior.Cascade); }); modelBuilder.Entity(e => { - e.HasOne(x => x.SessionLogEntry) + e.HasOne(x => x.SessionLogTurn) .WithMany(x => x.Commits) - .HasForeignKey(x => x.SessionLogEntryId) + .HasForeignKey(x => x.SessionLogTurnId) .OnDelete(DeleteBehavior.Cascade); }); - modelBuilder.Entity(e => + modelBuilder.Entity(e => { - e.HasOne(x => x.SessionLogEntry) + e.HasOne(x => x.SessionLogTurn) .WithMany(x => x.StringListItems) - .HasForeignKey(x => x.SessionLogEntryId) + .HasForeignKey(x => x.SessionLogTurnId) .OnDelete(DeleteBehavior.Cascade); - e.HasIndex(x => new { x.SessionLogEntryId, x.ListType }); + e.HasIndex(x => new { x.SessionLogTurnId, x.ListType }); }); modelBuilder.Entity(e => @@ -211,13 +211,13 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity().HasQueryFilter(e => _workspaceId == "" || e.WorkspaceId == _workspaceId); modelBuilder.Entity().HasQueryFilter(e => _workspaceId == "" || e.WorkspaceId == _workspaceId); modelBuilder.Entity().HasQueryFilter(e => _workspaceId == "" || e.WorkspaceId == _workspaceId); - modelBuilder.Entity().HasQueryFilter(e => _workspaceId == "" || e.WorkspaceId == _workspaceId); + modelBuilder.Entity().HasQueryFilter(e => _workspaceId == "" || e.WorkspaceId == _workspaceId); modelBuilder.Entity().HasQueryFilter(e => _workspaceId == "" || e.WorkspaceId == _workspaceId); - modelBuilder.Entity().HasQueryFilter(e => _workspaceId == "" || e.WorkspaceId == _workspaceId); - modelBuilder.Entity().HasQueryFilter(e => _workspaceId == "" || e.WorkspaceId == _workspaceId); + modelBuilder.Entity().HasQueryFilter(e => _workspaceId == "" || e.WorkspaceId == _workspaceId); + modelBuilder.Entity().HasQueryFilter(e => _workspaceId == "" || e.WorkspaceId == _workspaceId); modelBuilder.Entity().HasQueryFilter(e => _workspaceId == "" || e.WorkspaceId == _workspaceId); modelBuilder.Entity().HasQueryFilter(e => _workspaceId == "" || e.WorkspaceId == _workspaceId); - modelBuilder.Entity().HasQueryFilter(e => _workspaceId == "" || e.WorkspaceId == _workspaceId); + modelBuilder.Entity().HasQueryFilter(e => _workspaceId == "" || e.WorkspaceId == _workspaceId); modelBuilder.Entity().HasQueryFilter(e => _workspaceId == "" || e.WorkspaceId == _workspaceId); modelBuilder.Entity().HasQueryFilter(e => _workspaceId == "" || e.WorkspaceId == _workspaceId); modelBuilder.Entity().HasQueryFilter(e => _workspaceId == "" || e.WorkspaceId == _workspaceId); @@ -229,10 +229,10 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity().HasIndex(e => e.WorkspaceId); modelBuilder.Entity().HasIndex(e => e.WorkspaceId); modelBuilder.Entity().HasIndex(e => e.WorkspaceId); - modelBuilder.Entity().HasIndex(e => e.WorkspaceId); + modelBuilder.Entity().HasIndex(e => e.WorkspaceId); modelBuilder.Entity().HasIndex(e => e.WorkspaceId); - modelBuilder.Entity().HasIndex(e => e.WorkspaceId); - modelBuilder.Entity().HasIndex(e => e.WorkspaceId); + modelBuilder.Entity().HasIndex(e => e.WorkspaceId); + modelBuilder.Entity().HasIndex(e => e.WorkspaceId); modelBuilder.Entity().HasIndex(e => e.WorkspaceId); modelBuilder.Entity().HasIndex(e => e.WorkspaceId); modelBuilder.Entity().HasIndex(e => e.WorkspaceId); @@ -299,3 +299,4 @@ private void SanitizeStrings() } } } + diff --git a/src/McpServer.Storage/Migrations/20260212160034_AddSessionLogTables.Designer.cs b/src/McpServer.Storage/Migrations/20260212160034_AddSessionLogTables.Designer.cs index b4954e6c..b23b3133 100644 --- a/src/McpServer.Storage/Migrations/20260212160034_AddSessionLogTables.Designer.cs +++ b/src/McpServer.Storage/Migrations/20260212160034_AddSessionLogTables.Designer.cs @@ -99,7 +99,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("Order") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Status") @@ -112,7 +112,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.ToTable("SessionLogActions"); }); @@ -206,7 +206,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.ToTable("SessionLogs"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnContextEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -220,17 +220,17 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("Ordinal") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); - b.ToTable("SessionLogEntryContexts"); + b.ToTable("SessionLogTurnContexts"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -294,16 +294,16 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasIndex("SessionLogId", "RequestId") .IsUnique(); - b.ToTable("SessionLogEntries"); + b.ToTable("SessionLogTurns"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnTagEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Tag") @@ -313,9 +313,9 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); - b.ToTable("SessionLogEntryTags"); + b.ToTable("SessionLogTurnTags"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.ContextChunkEntity", b => @@ -331,27 +331,27 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogActionEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("Actions") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnContextEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("ContextItems") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntity", "SessionLog") .WithMany("Entries") @@ -362,15 +362,15 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Navigation("SessionLog"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnTagEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("Tags") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.ContextDocumentEntity", b => @@ -383,7 +383,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Navigation("Entries"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.Navigation("Actions"); @@ -395,3 +395,4 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) } } } + diff --git a/src/McpServer.Storage/Migrations/20260212160034_AddSessionLogTables.cs b/src/McpServer.Storage/Migrations/20260212160034_AddSessionLogTables.cs index 7ffa2d01..febcbe38 100644 --- a/src/McpServer.Storage/Migrations/20260212160034_AddSessionLogTables.cs +++ b/src/McpServer.Storage/Migrations/20260212160034_AddSessionLogTables.cs @@ -45,7 +45,7 @@ protected override void Up(MigrationBuilder migrationBuilder) }); migrationBuilder.CreateTable( - name: "SessionLogEntries", + name: "SessionLogTurns", columns: table => new { Id = table.Column(type: "INTEGER", nullable: false) @@ -69,9 +69,9 @@ protected override void Up(MigrationBuilder migrationBuilder) }, constraints: table => { - table.PrimaryKey("PK_SessionLogEntries", x => x.Id); + table.PrimaryKey("PK_SessionLogTurns", x => x.Id); table.ForeignKey( - name: "FK_SessionLogEntries_SessionLogs_SessionLogId", + name: "FK_SessionLogTurns_SessionLogs_SessionLogId", column: x => x.SessionLogId, principalTable: "SessionLogs", principalColumn: "Id", @@ -84,7 +84,7 @@ protected override void Up(MigrationBuilder migrationBuilder) { Id = table.Column(type: "INTEGER", nullable: false) .Annotation("Sqlite:Autoincrement", true), - SessionLogEntryId = table.Column(type: "INTEGER", nullable: false), + SessionLogTurnId = table.Column(type: "INTEGER", nullable: false), Order = table.Column(type: "INTEGER", nullable: false), Description = table.Column(type: "TEXT", nullable: true), Type = table.Column(type: "TEXT", maxLength: 64, nullable: true), @@ -95,74 +95,74 @@ protected override void Up(MigrationBuilder migrationBuilder) { table.PrimaryKey("PK_SessionLogActions", x => x.Id); table.ForeignKey( - name: "FK_SessionLogActions_SessionLogEntries_SessionLogEntryId", - column: x => x.SessionLogEntryId, - principalTable: "SessionLogEntries", + name: "FK_SessionLogActions_SessionLogTurns_SessionLogTurnId", + column: x => x.SessionLogTurnId, + principalTable: "SessionLogTurns", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( - name: "SessionLogEntryContexts", + name: "SessionLogTurnContexts", columns: table => new { Id = table.Column(type: "INTEGER", nullable: false) .Annotation("Sqlite:Autoincrement", true), - SessionLogEntryId = table.Column(type: "INTEGER", nullable: false), + SessionLogTurnId = table.Column(type: "INTEGER", nullable: false), Ordinal = table.Column(type: "INTEGER", nullable: false), ContextItem = table.Column(type: "TEXT", maxLength: 2048, nullable: false) }, constraints: table => { - table.PrimaryKey("PK_SessionLogEntryContexts", x => x.Id); + table.PrimaryKey("PK_SessionLogTurnContexts", x => x.Id); table.ForeignKey( - name: "FK_SessionLogEntryContexts_SessionLogEntries_SessionLogEntryId", - column: x => x.SessionLogEntryId, - principalTable: "SessionLogEntries", + name: "FK_SessionLogTurnContexts_SessionLogTurns_SessionLogTurnId", + column: x => x.SessionLogTurnId, + principalTable: "SessionLogTurns", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( - name: "SessionLogEntryTags", + name: "SessionLogTurnTags", columns: table => new { Id = table.Column(type: "INTEGER", nullable: false) .Annotation("Sqlite:Autoincrement", true), - SessionLogEntryId = table.Column(type: "INTEGER", nullable: false), + SessionLogTurnId = table.Column(type: "INTEGER", nullable: false), Tag = table.Column(type: "TEXT", maxLength: 256, nullable: false) }, constraints: table => { - table.PrimaryKey("PK_SessionLogEntryTags", x => x.Id); + table.PrimaryKey("PK_SessionLogTurnTags", x => x.Id); table.ForeignKey( - name: "FK_SessionLogEntryTags_SessionLogEntries_SessionLogEntryId", - column: x => x.SessionLogEntryId, - principalTable: "SessionLogEntries", + name: "FK_SessionLogTurnTags_SessionLogTurns_SessionLogTurnId", + column: x => x.SessionLogTurnId, + principalTable: "SessionLogTurns", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateIndex( - name: "IX_SessionLogActions_SessionLogEntryId", + name: "IX_SessionLogActions_SessionLogTurnId", table: "SessionLogActions", - column: "SessionLogEntryId"); + column: "SessionLogTurnId"); migrationBuilder.CreateIndex( - name: "IX_SessionLogEntries_SessionLogId_RequestId", - table: "SessionLogEntries", + name: "IX_SessionLogTurns_SessionLogId_RequestId", + table: "SessionLogTurns", columns: new[] { "SessionLogId", "RequestId" }, unique: true); migrationBuilder.CreateIndex( - name: "IX_SessionLogEntryContexts_SessionLogEntryId", - table: "SessionLogEntryContexts", - column: "SessionLogEntryId"); + name: "IX_SessionLogTurnContexts_SessionLogTurnId", + table: "SessionLogTurnContexts", + column: "SessionLogTurnId"); migrationBuilder.CreateIndex( - name: "IX_SessionLogEntryTags_SessionLogEntryId", - table: "SessionLogEntryTags", - column: "SessionLogEntryId"); + name: "IX_SessionLogTurnTags_SessionLogTurnId", + table: "SessionLogTurnTags", + column: "SessionLogTurnId"); migrationBuilder.CreateIndex( name: "IX_SessionLogs_LastUpdated", @@ -193,16 +193,17 @@ protected override void Down(MigrationBuilder migrationBuilder) name: "SessionLogActions"); migrationBuilder.DropTable( - name: "SessionLogEntryContexts"); + name: "SessionLogTurnContexts"); migrationBuilder.DropTable( - name: "SessionLogEntryTags"); + name: "SessionLogTurnTags"); migrationBuilder.DropTable( - name: "SessionLogEntries"); + name: "SessionLogTurns"); migrationBuilder.DropTable( name: "SessionLogs"); } } } + diff --git a/src/McpServer.Storage/Migrations/20260212165804_AddSessionLogContentHash.Designer.cs b/src/McpServer.Storage/Migrations/20260212165804_AddSessionLogContentHash.Designer.cs index 3c5e193a..566c7d88 100644 --- a/src/McpServer.Storage/Migrations/20260212165804_AddSessionLogContentHash.Designer.cs +++ b/src/McpServer.Storage/Migrations/20260212165804_AddSessionLogContentHash.Designer.cs @@ -99,7 +99,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("Order") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Status") @@ -112,7 +112,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.ToTable("SessionLogActions"); }); @@ -210,7 +210,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.ToTable("SessionLogs"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnContextEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -224,17 +224,17 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("Ordinal") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); - b.ToTable("SessionLogEntryContexts"); + b.ToTable("SessionLogTurnContexts"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -298,16 +298,16 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasIndex("SessionLogId", "RequestId") .IsUnique(); - b.ToTable("SessionLogEntries"); + b.ToTable("SessionLogTurns"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnTagEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Tag") @@ -317,9 +317,9 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); - b.ToTable("SessionLogEntryTags"); + b.ToTable("SessionLogTurnTags"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.ContextChunkEntity", b => @@ -335,27 +335,27 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogActionEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("Actions") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnContextEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("ContextItems") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntity", "SessionLog") .WithMany("Entries") @@ -366,15 +366,15 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Navigation("SessionLog"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnTagEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("Tags") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.ContextDocumentEntity", b => @@ -387,7 +387,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Navigation("Entries"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.Navigation("Actions"); @@ -399,3 +399,4 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) } } } + diff --git a/src/McpServer.Storage/Migrations/20260212170806_AddSessionLogSourceFilePath.Designer.cs b/src/McpServer.Storage/Migrations/20260212170806_AddSessionLogSourceFilePath.Designer.cs index febf3e99..a9ced41a 100644 --- a/src/McpServer.Storage/Migrations/20260212170806_AddSessionLogSourceFilePath.Designer.cs +++ b/src/McpServer.Storage/Migrations/20260212170806_AddSessionLogSourceFilePath.Designer.cs @@ -99,7 +99,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("Order") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Status") @@ -112,7 +112,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.ToTable("SessionLogActions"); }); @@ -214,7 +214,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.ToTable("SessionLogs"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnContextEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -228,17 +228,17 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("Ordinal") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); - b.ToTable("SessionLogEntryContexts"); + b.ToTable("SessionLogTurnContexts"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -302,16 +302,16 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasIndex("SessionLogId", "RequestId") .IsUnique(); - b.ToTable("SessionLogEntries"); + b.ToTable("SessionLogTurns"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnTagEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Tag") @@ -321,9 +321,9 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); - b.ToTable("SessionLogEntryTags"); + b.ToTable("SessionLogTurnTags"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.ContextChunkEntity", b => @@ -339,27 +339,27 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogActionEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("Actions") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnContextEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("ContextItems") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntity", "SessionLog") .WithMany("Entries") @@ -370,15 +370,15 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Navigation("SessionLog"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnTagEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("Tags") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.ContextDocumentEntity", b => @@ -391,7 +391,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Navigation("Entries"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.Navigation("Actions"); @@ -403,3 +403,4 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) } } } + diff --git a/src/McpServer.Storage/Migrations/20260212172109_AddProcessingDialog.Designer.cs b/src/McpServer.Storage/Migrations/20260212172109_AddProcessingDialog.Designer.cs index 809a68ea..2eae80fc 100644 --- a/src/McpServer.Storage/Migrations/20260212172109_AddProcessingDialog.Designer.cs +++ b/src/McpServer.Storage/Migrations/20260212172109_AddProcessingDialog.Designer.cs @@ -99,7 +99,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("Order") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Status") @@ -112,7 +112,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.ToTable("SessionLogActions"); }); @@ -214,7 +214,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.ToTable("SessionLogs"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnContextEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -228,17 +228,17 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("Ordinal") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); - b.ToTable("SessionLogEntryContexts"); + b.ToTable("SessionLogTurnContexts"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -302,16 +302,16 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasIndex("SessionLogId", "RequestId") .IsUnique(); - b.ToTable("SessionLogEntries"); + b.ToTable("SessionLogTurns"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnTagEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Tag") @@ -321,9 +321,9 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); - b.ToTable("SessionLogEntryTags"); + b.ToTable("SessionLogTurnTags"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogProcessingDialogEntity", b => @@ -348,7 +348,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) .HasMaxLength(64) .HasColumnType("TEXT"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Timestamp") @@ -356,7 +356,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.ToTable("SessionLogProcessingDialogs"); }); @@ -374,27 +374,27 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogActionEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("Actions") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnContextEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("ContextItems") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntity", "SessionLog") .WithMany("Entries") @@ -405,26 +405,26 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Navigation("SessionLog"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnTagEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("Tags") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogProcessingDialogEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("ProcessingDialog") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.ContextDocumentEntity", b => @@ -437,7 +437,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Navigation("Entries"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.Navigation("Actions"); @@ -451,3 +451,4 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) } } } + diff --git a/src/McpServer.Storage/Migrations/20260212172109_AddProcessingDialog.cs b/src/McpServer.Storage/Migrations/20260212172109_AddProcessingDialog.cs index de992187..48b7c0af 100644 --- a/src/McpServer.Storage/Migrations/20260212172109_AddProcessingDialog.cs +++ b/src/McpServer.Storage/Migrations/20260212172109_AddProcessingDialog.cs @@ -18,7 +18,7 @@ protected override void Up(MigrationBuilder migrationBuilder) { Id = table.Column(type: "INTEGER", nullable: false) .Annotation("Sqlite:Autoincrement", true), - SessionLogEntryId = table.Column(type: "INTEGER", nullable: false), + SessionLogTurnId = table.Column(type: "INTEGER", nullable: false), Ordinal = table.Column(type: "INTEGER", nullable: false), Timestamp = table.Column(type: "TEXT", nullable: false), Role = table.Column(type: "TEXT", maxLength: 64, nullable: false), @@ -29,17 +29,17 @@ protected override void Up(MigrationBuilder migrationBuilder) { table.PrimaryKey("PK_SessionLogProcessingDialogs", x => x.Id); table.ForeignKey( - name: "FK_SessionLogProcessingDialogs_SessionLogEntries_SessionLogEntryId", - column: x => x.SessionLogEntryId, - principalTable: "SessionLogEntries", + name: "FK_SessionLogProcessingDialogs_SessionLogTurns_SessionLogTurnId", + column: x => x.SessionLogTurnId, + principalTable: "SessionLogTurns", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateIndex( - name: "IX_SessionLogProcessingDialogs_SessionLogEntryId", + name: "IX_SessionLogProcessingDialogs_SessionLogTurnId", table: "SessionLogProcessingDialogs", - column: "SessionLogEntryId"); + column: "SessionLogTurnId"); } /// @@ -50,3 +50,4 @@ protected override void Down(MigrationBuilder migrationBuilder) } } } + diff --git a/src/McpServer.Storage/Migrations/20260221034628_AddWorkspaceEntity.Designer.cs b/src/McpServer.Storage/Migrations/20260221034628_AddWorkspaceEntity.Designer.cs index 005e41b4..a435399a 100644 --- a/src/McpServer.Storage/Migrations/20260221034628_AddWorkspaceEntity.Designer.cs +++ b/src/McpServer.Storage/Migrations/20260221034628_AddWorkspaceEntity.Designer.cs @@ -1,4 +1,4 @@ -// +// using System; using McpServer.Support.Mcp.Storage; using Microsoft.EntityFrameworkCore; @@ -102,7 +102,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("Order") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Status") @@ -115,7 +115,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.ToTable("SessionLogActions"); }); @@ -217,7 +217,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.ToTable("SessionLogs"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnContextEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -231,17 +231,17 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("Ordinal") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); - b.ToTable("SessionLogEntryContexts"); + b.ToTable("SessionLogTurnContexts"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -305,16 +305,16 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasIndex("SessionLogId", "RequestId") .IsUnique(); - b.ToTable("SessionLogEntries"); + b.ToTable("SessionLogTurns"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnTagEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Tag") @@ -324,9 +324,9 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); - b.ToTable("SessionLogEntryTags"); + b.ToTable("SessionLogTurnTags"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogProcessingDialogEntity", b => @@ -351,7 +351,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) .HasMaxLength(64) .HasColumnType("TEXT"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Timestamp") @@ -359,7 +359,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.ToTable("SessionLogProcessingDialogs"); }); @@ -418,27 +418,27 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogActionEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("Actions") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnContextEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("ContextItems") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntity", "SessionLog") .WithMany("Entries") @@ -449,26 +449,26 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Navigation("SessionLog"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnTagEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("Tags") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogProcessingDialogEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("ProcessingDialog") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.ContextDocumentEntity", b => @@ -481,7 +481,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Navigation("Entries"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.Navigation("Actions"); @@ -495,3 +495,4 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) } } } + diff --git a/src/McpServer.Storage/Migrations/20260221040625_AddToolRegistryAndBuckets.Designer.cs b/src/McpServer.Storage/Migrations/20260221040625_AddToolRegistryAndBuckets.Designer.cs index a78c6dab..07378b44 100644 --- a/src/McpServer.Storage/Migrations/20260221040625_AddToolRegistryAndBuckets.Designer.cs +++ b/src/McpServer.Storage/Migrations/20260221040625_AddToolRegistryAndBuckets.Designer.cs @@ -1,4 +1,4 @@ -// +// using System; using McpServer.Support.Mcp.Storage; using Microsoft.EntityFrameworkCore; @@ -102,7 +102,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("Order") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Status") @@ -115,7 +115,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.ToTable("SessionLogActions"); }); @@ -217,7 +217,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.ToTable("SessionLogs"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnContextEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -231,17 +231,17 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("Ordinal") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); - b.ToTable("SessionLogEntryContexts"); + b.ToTable("SessionLogTurnContexts"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -305,16 +305,16 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasIndex("SessionLogId", "RequestId") .IsUnique(); - b.ToTable("SessionLogEntries"); + b.ToTable("SessionLogTurns"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnTagEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Tag") @@ -324,9 +324,9 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); - b.ToTable("SessionLogEntryTags"); + b.ToTable("SessionLogTurnTags"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogProcessingDialogEntity", b => @@ -351,7 +351,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) .HasMaxLength(64) .HasColumnType("TEXT"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Timestamp") @@ -359,7 +359,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.ToTable("SessionLogProcessingDialogs"); }); @@ -535,27 +535,27 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogActionEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("Actions") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnContextEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("ContextItems") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntity", "SessionLog") .WithMany("Entries") @@ -566,26 +566,26 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Navigation("SessionLog"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnTagEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("Tags") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogProcessingDialogEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("ProcessingDialog") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.ToolDefinitionEntity", b => @@ -619,7 +619,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Navigation("Entries"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.Navigation("Actions"); @@ -638,3 +638,4 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) } } } + diff --git a/src/McpServer.Storage/Migrations/20260224205442_PendingModelSync.Designer.cs b/src/McpServer.Storage/Migrations/20260224205442_PendingModelSync.Designer.cs index 1e544172..dea23143 100644 --- a/src/McpServer.Storage/Migrations/20260224205442_PendingModelSync.Designer.cs +++ b/src/McpServer.Storage/Migrations/20260224205442_PendingModelSync.Designer.cs @@ -1,4 +1,4 @@ -// +// using System; using McpServer.Support.Mcp.Storage; using Microsoft.EntityFrameworkCore; @@ -267,7 +267,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("Order") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Status") @@ -280,7 +280,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.ToTable("SessionLogActions"); }); @@ -382,7 +382,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.ToTable("SessionLogs"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnContextEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -396,17 +396,17 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("Ordinal") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); - b.ToTable("SessionLogEntryContexts"); + b.ToTable("SessionLogTurnContexts"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -470,16 +470,16 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasIndex("SessionLogId", "RequestId") .IsUnique(); - b.ToTable("SessionLogEntries"); + b.ToTable("SessionLogTurns"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnTagEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Tag") @@ -489,9 +489,9 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); - b.ToTable("SessionLogEntryTags"); + b.ToTable("SessionLogTurnTags"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogProcessingDialogEntity", b => @@ -516,7 +516,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) .HasMaxLength(64) .HasColumnType("TEXT"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Timestamp") @@ -524,7 +524,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.ToTable("SessionLogProcessingDialogs"); }); @@ -670,27 +670,27 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogActionEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("Actions") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnContextEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("ContextItems") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntity", "SessionLog") .WithMany("Entries") @@ -701,26 +701,26 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Navigation("SessionLog"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnTagEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("Tags") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogProcessingDialogEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("ProcessingDialog") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.ToolDefinitionTagEntity", b => @@ -749,7 +749,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Navigation("Entries"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.Navigation("Actions"); @@ -768,3 +768,4 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) } } } + diff --git a/src/McpServer.Storage/Migrations/20260226113035_AddWorkspaceIdMultiTenant.Designer.cs b/src/McpServer.Storage/Migrations/20260226113035_AddWorkspaceIdMultiTenant.Designer.cs index e24cf33f..d87b7020 100644 --- a/src/McpServer.Storage/Migrations/20260226113035_AddWorkspaceIdMultiTenant.Designer.cs +++ b/src/McpServer.Storage/Migrations/20260226113035_AddWorkspaceIdMultiTenant.Designer.cs @@ -1,4 +1,4 @@ -// +// using System; using McpServer.Support.Mcp.Storage; using Microsoft.EntityFrameworkCore; @@ -297,7 +297,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("Order") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Status") @@ -314,7 +314,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.HasIndex("WorkspaceId"); @@ -424,7 +424,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.ToTable("SessionLogs"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnContextEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -438,7 +438,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("Ordinal") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("WorkspaceId") @@ -447,14 +447,14 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.HasIndex("WorkspaceId"); - b.ToTable("SessionLogEntryContexts"); + b.ToTable("SessionLogTurnContexts"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -524,16 +524,16 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasIndex("SessionLogId", "RequestId") .IsUnique(); - b.ToTable("SessionLogEntries"); + b.ToTable("SessionLogTurns"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnTagEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Tag") @@ -547,11 +547,11 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.HasIndex("WorkspaceId"); - b.ToTable("SessionLogEntryTags"); + b.ToTable("SessionLogTurnTags"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogProcessingDialogEntity", b => @@ -576,7 +576,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) .HasMaxLength(64) .HasColumnType("TEXT"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Timestamp") @@ -588,7 +588,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.HasIndex("WorkspaceId"); @@ -754,27 +754,27 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogActionEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("Actions") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnContextEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("ContextItems") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntity", "SessionLog") .WithMany("Entries") @@ -785,26 +785,26 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Navigation("SessionLog"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnTagEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("Tags") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogProcessingDialogEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("ProcessingDialog") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.ToolDefinitionTagEntity", b => @@ -833,7 +833,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Navigation("Entries"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.Navigation("Actions"); @@ -852,3 +852,4 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) } } } + diff --git a/src/McpServer.Storage/Migrations/20260226113035_AddWorkspaceIdMultiTenant.cs b/src/McpServer.Storage/Migrations/20260226113035_AddWorkspaceIdMultiTenant.cs index 88e1ee1e..2564ef1f 100644 --- a/src/McpServer.Storage/Migrations/20260226113035_AddWorkspaceIdMultiTenant.cs +++ b/src/McpServer.Storage/Migrations/20260226113035_AddWorkspaceIdMultiTenant.cs @@ -1,4 +1,4 @@ -using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Migrations; #nullable disable @@ -47,21 +47,21 @@ protected override void Up(MigrationBuilder migrationBuilder) migrationBuilder.AddColumn( name: "WorkspaceId", - table: "SessionLogEntryTags", + table: "SessionLogTurnTags", type: "TEXT", nullable: false, defaultValue: ""); migrationBuilder.AddColumn( name: "WorkspaceId", - table: "SessionLogEntryContexts", + table: "SessionLogTurnContexts", type: "TEXT", nullable: false, defaultValue: ""); migrationBuilder.AddColumn( name: "WorkspaceId", - table: "SessionLogEntries", + table: "SessionLogTurns", type: "TEXT", nullable: false, defaultValue: ""); @@ -134,18 +134,18 @@ protected override void Up(MigrationBuilder migrationBuilder) column: "WorkspaceId"); migrationBuilder.CreateIndex( - name: "IX_SessionLogEntryTags_WorkspaceId", - table: "SessionLogEntryTags", + name: "IX_SessionLogTurnTags_WorkspaceId", + table: "SessionLogTurnTags", column: "WorkspaceId"); migrationBuilder.CreateIndex( - name: "IX_SessionLogEntryContexts_WorkspaceId", - table: "SessionLogEntryContexts", + name: "IX_SessionLogTurnContexts_WorkspaceId", + table: "SessionLogTurnContexts", column: "WorkspaceId"); migrationBuilder.CreateIndex( - name: "IX_SessionLogEntries_WorkspaceId", - table: "SessionLogEntries", + name: "IX_SessionLogTurns_WorkspaceId", + table: "SessionLogTurns", column: "WorkspaceId"); migrationBuilder.CreateIndex( @@ -203,16 +203,16 @@ protected override void Down(MigrationBuilder migrationBuilder) table: "SessionLogProcessingDialogs"); migrationBuilder.DropIndex( - name: "IX_SessionLogEntryTags_WorkspaceId", - table: "SessionLogEntryTags"); + name: "IX_SessionLogTurnTags_WorkspaceId", + table: "SessionLogTurnTags"); migrationBuilder.DropIndex( - name: "IX_SessionLogEntryContexts_WorkspaceId", - table: "SessionLogEntryContexts"); + name: "IX_SessionLogTurnContexts_WorkspaceId", + table: "SessionLogTurnContexts"); migrationBuilder.DropIndex( - name: "IX_SessionLogEntries_WorkspaceId", - table: "SessionLogEntries"); + name: "IX_SessionLogTurns_WorkspaceId", + table: "SessionLogTurns"); migrationBuilder.DropIndex( name: "IX_SessionLogActions_WorkspaceId", @@ -260,15 +260,15 @@ protected override void Down(MigrationBuilder migrationBuilder) migrationBuilder.DropColumn( name: "WorkspaceId", - table: "SessionLogEntryTags"); + table: "SessionLogTurnTags"); migrationBuilder.DropColumn( name: "WorkspaceId", - table: "SessionLogEntryContexts"); + table: "SessionLogTurnContexts"); migrationBuilder.DropColumn( name: "WorkspaceId", - table: "SessionLogEntries"); + table: "SessionLogTurns"); migrationBuilder.DropColumn( name: "WorkspaceId", @@ -296,3 +296,4 @@ protected override void Down(MigrationBuilder migrationBuilder) } } } + diff --git a/src/McpServer.Storage/Migrations/20260301111848_AddSessionLogCommitsAndStringLists.Designer.cs b/src/McpServer.Storage/Migrations/20260301111848_AddSessionLogCommitsAndStringLists.Designer.cs index fea2d47d..c7d2a116 100644 --- a/src/McpServer.Storage/Migrations/20260301111848_AddSessionLogCommitsAndStringLists.Designer.cs +++ b/src/McpServer.Storage/Migrations/20260301111848_AddSessionLogCommitsAndStringLists.Designer.cs @@ -1,4 +1,4 @@ -// +// using System; using McpServer.Support.Mcp.Storage; using Microsoft.EntityFrameworkCore; @@ -297,7 +297,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("Order") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Status") @@ -314,7 +314,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.HasIndex("WorkspaceId"); @@ -347,7 +347,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("Ordinal") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Sha") @@ -360,7 +360,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.ToTable("SessionLogCommits"); }); @@ -468,7 +468,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.ToTable("SessionLogs"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnContextEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -482,7 +482,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("Ordinal") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("WorkspaceId") @@ -491,14 +491,14 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.HasIndex("WorkspaceId"); - b.ToTable("SessionLogEntryContexts"); + b.ToTable("SessionLogTurnContexts"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -568,10 +568,10 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasIndex("SessionLogId", "RequestId") .IsUnique(); - b.ToTable("SessionLogEntries"); + b.ToTable("SessionLogTurns"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryStringListEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnStringListEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -585,7 +585,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("Ordinal") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Value") @@ -598,18 +598,18 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId", "ListType"); + b.HasIndex("SessionLogTurnId", "ListType"); - b.ToTable("SessionLogEntryStringLists"); + b.ToTable("SessionLogTurnStringLists"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnTagEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Tag") @@ -623,11 +623,11 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.HasIndex("WorkspaceId"); - b.ToTable("SessionLogEntryTags"); + b.ToTable("SessionLogTurnTags"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogProcessingDialogEntity", b => @@ -652,7 +652,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) .HasMaxLength(64) .HasColumnType("TEXT"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Timestamp") @@ -664,7 +664,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.HasIndex("WorkspaceId"); @@ -830,38 +830,38 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogActionEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("Actions") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogCommitEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("Commits") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnContextEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("ContextItems") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntity", "SessionLog") .WithMany("Entries") @@ -872,37 +872,37 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Navigation("SessionLog"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryStringListEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnStringListEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("StringListItems") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnTagEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("Tags") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogProcessingDialogEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("ProcessingDialog") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.ToolDefinitionTagEntity", b => @@ -931,7 +931,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Navigation("Entries"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.Navigation("Actions"); @@ -954,3 +954,4 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) } } } + diff --git a/src/McpServer.Storage/Migrations/20260301111848_AddSessionLogCommitsAndStringLists.cs b/src/McpServer.Storage/Migrations/20260301111848_AddSessionLogCommitsAndStringLists.cs index 827ceff2..cd5b8cc7 100644 --- a/src/McpServer.Storage/Migrations/20260301111848_AddSessionLogCommitsAndStringLists.cs +++ b/src/McpServer.Storage/Migrations/20260301111848_AddSessionLogCommitsAndStringLists.cs @@ -1,4 +1,4 @@ -using System; +using System; using Microsoft.EntityFrameworkCore.Migrations; #nullable disable @@ -11,10 +11,10 @@ public partial class AddSessionLogCommitsAndStringLists : Migration private static readonly string[] s_postgresIdentityTables = { "SessionLogs", - "SessionLogEntries", + "SessionLogTurns", "SessionLogActions", - "SessionLogEntryContexts", - "SessionLogEntryTags", + "SessionLogTurnContexts", + "SessionLogTurnTags", "SessionLogProcessingDialogs", "ToolBuckets", "ToolDefinitions", @@ -22,14 +22,14 @@ public partial class AddSessionLogCommitsAndStringLists : Migration "AgentEventLogs", "AgentWorkspaces", "SessionLogCommits", - "SessionLogEntryStringLists", + "SessionLogTurnStringLists", }; private static readonly (string Table, string Column)[] s_postgresTimestampColumns = { ("AgentEventLogs", "Timestamp"), ("SessionLogCommits", "CommitTimestamp"), - ("SessionLogEntries", "Timestamp"), + ("SessionLogTurns", "Timestamp"), ("SessionLogProcessingDialogs", "Timestamp"), ("SessionLogs", "Started"), ("SessionLogs", "LastUpdated"), @@ -44,7 +44,7 @@ private static readonly (string Table, string Column)[] s_postgresBooleanColumns { ("AgentDefinitions", "IsBuiltIn"), ("AgentWorkspaces", "Enabled"), - ("SessionLogEntries", "IsPremium"), + ("SessionLogTurns", "IsPremium"), }; /// @@ -57,7 +57,7 @@ protected override void Up(MigrationBuilder migrationBuilder) Id = table.Column(type: "INTEGER", nullable: false) .Annotation("Sqlite:Autoincrement", true), WorkspaceId = table.Column(type: "TEXT", nullable: false), - SessionLogEntryId = table.Column(type: "INTEGER", nullable: false), + SessionLogTurnId = table.Column(type: "INTEGER", nullable: false), Ordinal = table.Column(type: "INTEGER", nullable: false), Sha = table.Column(type: "TEXT", maxLength: 64, nullable: true), Branch = table.Column(type: "TEXT", maxLength: 256, nullable: true), @@ -70,45 +70,45 @@ protected override void Up(MigrationBuilder migrationBuilder) { table.PrimaryKey("PK_SessionLogCommits", x => x.Id); table.ForeignKey( - name: "FK_SessionLogCommits_SessionLogEntries_SessionLogEntryId", - column: x => x.SessionLogEntryId, - principalTable: "SessionLogEntries", + name: "FK_SessionLogCommits_SessionLogTurns_SessionLogTurnId", + column: x => x.SessionLogTurnId, + principalTable: "SessionLogTurns", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( - name: "SessionLogEntryStringLists", + name: "SessionLogTurnStringLists", columns: table => new { Id = table.Column(type: "INTEGER", nullable: false) .Annotation("Sqlite:Autoincrement", true), WorkspaceId = table.Column(type: "TEXT", nullable: false), - SessionLogEntryId = table.Column(type: "INTEGER", nullable: false), + SessionLogTurnId = table.Column(type: "INTEGER", nullable: false), ListType = table.Column(type: "TEXT", maxLength: 32, nullable: false), Ordinal = table.Column(type: "INTEGER", nullable: false), Value = table.Column(type: "TEXT", nullable: false) }, constraints: table => { - table.PrimaryKey("PK_SessionLogEntryStringLists", x => x.Id); + table.PrimaryKey("PK_SessionLogTurnStringLists", x => x.Id); table.ForeignKey( - name: "FK_SessionLogEntryStringLists_SessionLogEntries_SessionLogEntryId", - column: x => x.SessionLogEntryId, - principalTable: "SessionLogEntries", + name: "FK_SessionLogTurnStringLists_SessionLogTurns_SessionLogTurnId", + column: x => x.SessionLogTurnId, + principalTable: "SessionLogTurns", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateIndex( - name: "IX_SessionLogCommits_SessionLogEntryId", + name: "IX_SessionLogCommits_SessionLogTurnId", table: "SessionLogCommits", - column: "SessionLogEntryId"); + column: "SessionLogTurnId"); migrationBuilder.CreateIndex( - name: "IX_SessionLogEntryStringLists_SessionLogEntryId_ListType", - table: "SessionLogEntryStringLists", - columns: new[] { "SessionLogEntryId", "ListType" }); + name: "IX_SessionLogTurnStringLists_SessionLogTurnId_ListType", + table: "SessionLogTurnStringLists", + columns: new[] { "SessionLogTurnId", "ListType" }); if (ActiveProvider.Contains("Npgsql", StringComparison.Ordinal)) { @@ -136,7 +136,7 @@ protected override void Down(MigrationBuilder migrationBuilder) name: "SessionLogCommits"); migrationBuilder.DropTable( - name: "SessionLogEntryStringLists"); + name: "SessionLogTurnStringLists"); } private static void EnsurePostgresIdentity(MigrationBuilder migrationBuilder, string tableName) @@ -207,3 +207,4 @@ FROM information_schema.columns } } } + diff --git a/src/McpServer.Storage/Migrations/McpDbContextModelSnapshot.cs b/src/McpServer.Storage/Migrations/McpDbContextModelSnapshot.cs index 1969b018..53969596 100644 --- a/src/McpServer.Storage/Migrations/McpDbContextModelSnapshot.cs +++ b/src/McpServer.Storage/Migrations/McpDbContextModelSnapshot.cs @@ -1,4 +1,4 @@ -// +// using System; using McpServer.Support.Mcp.Storage; using Microsoft.EntityFrameworkCore; @@ -294,7 +294,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.Property("Order") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Status") @@ -311,7 +311,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.HasIndex("WorkspaceId"); @@ -344,7 +344,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.Property("Ordinal") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Sha") @@ -357,7 +357,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.ToTable("SessionLogCommits"); }); @@ -465,7 +465,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.ToTable("SessionLogs"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnContextEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -479,7 +479,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.Property("Ordinal") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("WorkspaceId") @@ -488,14 +488,14 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.HasIndex("WorkspaceId"); - b.ToTable("SessionLogEntryContexts"); + b.ToTable("SessionLogTurnContexts"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -565,10 +565,10 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasIndex("SessionLogId", "RequestId") .IsUnique(); - b.ToTable("SessionLogEntries"); + b.ToTable("SessionLogTurns"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryStringListEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnStringListEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -582,7 +582,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.Property("Ordinal") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Value") @@ -595,18 +595,18 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId", "ListType"); + b.HasIndex("SessionLogTurnId", "ListType"); - b.ToTable("SessionLogEntryStringLists"); + b.ToTable("SessionLogTurnStringLists"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnTagEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Tag") @@ -620,11 +620,11 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.HasIndex("WorkspaceId"); - b.ToTable("SessionLogEntryTags"); + b.ToTable("SessionLogTurnTags"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogProcessingDialogEntity", b => @@ -649,7 +649,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) .HasMaxLength(64) .HasColumnType("TEXT"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Timestamp") @@ -661,7 +661,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.HasIndex("WorkspaceId"); @@ -827,38 +827,38 @@ protected override void BuildModel(ModelBuilder modelBuilder) modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogActionEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("Actions") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogCommitEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("Commits") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnContextEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("ContextItems") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntity", "SessionLog") .WithMany("Entries") @@ -869,37 +869,37 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.Navigation("SessionLog"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryStringListEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnStringListEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("StringListItems") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnTagEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("Tags") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogProcessingDialogEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("ProcessingDialog") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.ToolDefinitionTagEntity", b => @@ -928,7 +928,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.Navigation("Entries"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.Navigation("Actions"); @@ -951,3 +951,4 @@ protected override void BuildModel(ModelBuilder modelBuilder) } } } + diff --git a/src/McpServer.Support.Mcp/Controllers/ContextController.cs b/src/McpServer.Support.Mcp/Controllers/ContextController.cs index 014f122b..02cc3dfd 100644 --- a/src/McpServer.Support.Mcp/Controllers/ContextController.cs +++ b/src/McpServer.Support.Mcp/Controllers/ContextController.cs @@ -119,11 +119,14 @@ public async Task> GetPackAsync([FromBody] ContextPack var limit = Math.Clamp(request?.Limit ?? 20, 1, 100); var query = (request?.Query ?? string.Empty).Trim(); - IQueryable chunksQuery = _db.Chunks.AsNoTracking(); - if (!string.IsNullOrEmpty(query)) - { - chunksQuery = chunksQuery.Where(c => c.Content != null && c.Content.Contains(query)); - } + IQueryable chunksQuery = _db.Chunks.AsNoTracking(); + if (!string.IsNullOrEmpty(query)) + { + var isSqlite = _db.Database.ProviderName?.Contains("Sqlite", StringComparison.OrdinalIgnoreCase) == true; + chunksQuery = isSqlite + ? chunksQuery.Where(c => c.Content != null && c.Content.Contains(query)) + : chunksQuery.Where(c => c.Content != null && EF.Functions.ILike(c.Content, $"%{query}%")); + } var chunkEntities = await chunksQuery .OrderBy(c => c.DocumentId) .ThenBy(c => c.ChunkIndex) diff --git a/src/McpServer.Support.Mcp/Controllers/WorkspaceController.cs b/src/McpServer.Support.Mcp/Controllers/WorkspaceController.cs index f626647e..491309e7 100644 --- a/src/McpServer.Support.Mcp/Controllers/WorkspaceController.cs +++ b/src/McpServer.Support.Mcp/Controllers/WorkspaceController.cs @@ -23,25 +23,28 @@ public sealed class WorkspaceController : ControllerBase private readonly IWorkspaceService _workspaceService; private readonly IWorkspacePolicyService _workspacePolicyService; private readonly IWorkspaceProcessManager _processManager; - private readonly IConfiguration _configuration; - private readonly IWebHostEnvironment _env; - private readonly IOptionsMonitor _promptOptions; + private readonly IConfiguration _configuration; + private readonly IWebHostEnvironment _env; + private readonly IOptionsMonitor _promptOptions; + private readonly IMarkerPromptProvider _markerPromptProvider; /// Initializes a new instance of the class. - public WorkspaceController( - IWorkspaceService workspaceService, - IWorkspacePolicyService workspacePolicyService, - IWorkspaceProcessManager processManager, - IConfiguration configuration, - IWebHostEnvironment env, - IOptionsMonitor promptOptions) - { - _workspaceService = workspaceService; - _workspacePolicyService = workspacePolicyService; - _processManager = processManager; - _configuration = configuration; - _env = env; - _promptOptions = promptOptions; + public WorkspaceController( + IWorkspaceService workspaceService, + IWorkspacePolicyService workspacePolicyService, + IWorkspaceProcessManager processManager, + IConfiguration configuration, + IWebHostEnvironment env, + IOptionsMonitor promptOptions, + IMarkerPromptProvider markerPromptProvider) + { + _workspaceService = workspaceService; + _workspacePolicyService = workspacePolicyService; + _processManager = processManager; + _configuration = configuration; + _env = env; + _promptOptions = promptOptions; + _markerPromptProvider = markerPromptProvider; } /// @@ -266,8 +269,19 @@ public async Task> GetGlobalPromptAsync(Cancell var template = _promptOptions.CurrentValue.MarkerPromptTemplate; var isDefault = string.IsNullOrWhiteSpace(template); + + string effectiveTemplate; + if (isDefault) + { + effectiveTemplate = await _markerPromptProvider.GetGlobalPromptTemplateAsync(ct).ConfigureAwait(false); + } + else + { + effectiveTemplate = template!; + } + return Ok(new GlobalPromptResult( - Template: isDefault ? MarkerFileService.DefaultPromptTemplate : template!, + Template: effectiveTemplate, IsDefault: isDefault)); } @@ -326,8 +340,18 @@ await PublishChangeSafeAsync( ct).ConfigureAwait(false); var isDefault = newTemplate is null; + string effectiveTemplate; + if (isDefault) + { + effectiveTemplate = await _markerPromptProvider.GetGlobalPromptTemplateAsync(ct).ConfigureAwait(false); + } + else + { + effectiveTemplate = newTemplate!; + } + return Ok(new GlobalPromptResult( - Template: isDefault ? MarkerFileService.DefaultPromptTemplate : newTemplate!, + Template: effectiveTemplate, IsDefault: isDefault)); } diff --git a/src/McpServer.Support.Mcp/Ingestion/ExternalDocsIngestor.cs b/src/McpServer.Support.Mcp/Ingestion/ExternalDocsIngestor.cs index d9117a76..0044c0d9 100644 --- a/src/McpServer.Support.Mcp/Ingestion/ExternalDocsIngestor.cs +++ b/src/McpServer.Support.Mcp/Ingestion/ExternalDocsIngestor.cs @@ -1,8 +1,9 @@ -using System.Security.Cryptography; -using System.Text; -using McpServer.Support.Mcp.Indexing; -using McpServer.Support.Mcp.Models; -using Microsoft.Extensions.Logging; +using System.Security.Cryptography; +using System.Text; +using McpServer.Support.Mcp.Indexing; +using McpServer.Support.Mcp.Models; +using McpServer.Support.Mcp.Services; +using Microsoft.Extensions.Logging; namespace McpServer.Support.Mcp.Ingestion; @@ -10,37 +11,41 @@ namespace McpServer.Support.Mcp.Ingestion; /// TR-PLANNED-013: Ingests external docs from cached path (e.g. docs/external). /// FR-SUPPORT-010: Only cached copies under ExternalDocsPath are indexed. /// -public sealed class ExternalDocsIngestor -{ - private readonly Chunker _chunker; - private readonly IngestionOptions _options; - private readonly ILogger _logger; +public sealed class ExternalDocsIngestor +{ + private readonly Chunker _chunker; + private readonly IngestionOptions _options; + private readonly WorkspaceContext _workspaceContext; + private readonly ILogger _logger; /// TR-PLANNED-013: Constructor. /// Chunker for splitting content. /// Ingestion options providing external docs path. /// Logger instance. - public ExternalDocsIngestor(Chunker chunker, Microsoft.Extensions.Options.IOptions options, - ILogger logger) - { - _logger = logger; - _chunker = chunker; - _options = options?.Value ?? new IngestionOptions(); - } + public ExternalDocsIngestor(Chunker chunker, Microsoft.Extensions.Options.IOptions options, + WorkspaceContext workspaceContext, + ILogger logger) + { + _logger = logger; + _chunker = chunker; + _options = options?.Value ?? new IngestionOptions(); + _workspaceContext = workspaceContext ?? throw new ArgumentNullException(nameof(workspaceContext)); + } /// FR-SUPPORT-010: Ingests all files under ExternalDocsPath; returns documents and chunks. /// Token to cancel the operation. /// List of ingested documents with their chunks. - public async Task Chunks)>> IngestAsync( - CancellationToken cancellationToken = default) - { - var repoRoot = Path.GetFullPath(_options.RepoRoot); - var externalPath = Path.Combine(repoRoot, _options.ExternalDocsPath.TrimStart('.', Path.DirectorySeparatorChar)); - if (!Directory.Exists(externalPath)) - { - return Array.Empty<(ContextDocument, IReadOnlyList)>(); - } + public async Task Chunks)>> IngestAsync( + CancellationToken cancellationToken = default) + { + var repoRoot = ResolveRepoRoot(); + var externalPath = ResolveExternalDocsDirectory(repoRoot); + var sourceRoot = IsUnderPath(externalPath, repoRoot) ? repoRoot : externalPath; + if (!Directory.Exists(externalPath)) + { + return Array.Empty<(ContextDocument, IReadOnlyList)>(); + } var results = new List<(ContextDocument Doc, IReadOnlyList Chunks)>(); @@ -52,15 +57,15 @@ public ExternalDocsIngestor(Chunker chunker, Microsoft.Extensions.Options.IOptio var content = await File.ReadAllTextAsync(path, cancellationToken).ConfigureAwait(false); if (content.Length > _options.MaxFileSizeBytes) continue; - var relativePath = Path.GetRelativePath(repoRoot, path).Replace('\\', '/'); - if (relativePath.Contains("..", StringComparison.Ordinal)) continue; - - var contentHash = ComputeHash(content); - var documentId = "external-doc:" + relativePath.Replace("/", "-", StringComparison.Ordinal).Replace(":", "-", StringComparison.Ordinal); - var doc = new ContextDocument - { - Id = documentId, - SourceType = "external-doc", + var relativePath = Path.GetRelativePath(sourceRoot, path).Replace('\\', '/'); + if (relativePath.Contains("..", StringComparison.Ordinal)) continue; + + var contentHash = ComputeHash(content); + var documentId = BuildWorkspaceScopedDocumentId("external-doc", repoRoot, relativePath); + var doc = new ContextDocument + { + Id = documentId, + SourceType = "external-doc", SourceKey = relativePath, IngestedAt = DateTime.UtcNow, ContentHash = contentHash @@ -83,9 +88,45 @@ public ExternalDocsIngestor(Chunker chunker, Microsoft.Extensions.Options.IOptio return results; } - private static string ComputeHash(string content) - { - var bytes = SHA256.HashData(Encoding.UTF8.GetBytes(content)); - return Convert.ToHexString(bytes).ToUpperInvariant(); - } -} + private static string ComputeHash(string content) + { + var bytes = SHA256.HashData(Encoding.UTF8.GetBytes(content)); + return Convert.ToHexString(bytes).ToUpperInvariant(); + } + + private string ResolveRepoRoot() + { + var candidate = _workspaceContext.WorkspacePath; + if (string.IsNullOrWhiteSpace(candidate)) + candidate = _options.RepoRoot; + return Path.GetFullPath(candidate); + } + + private string ResolveExternalDocsDirectory(string repoRoot) + { + var externalDocsPath = !string.IsNullOrWhiteSpace(_workspaceContext.ExternalDocsPath) + ? _workspaceContext.ExternalDocsPath! + : _options.ExternalDocsPath; + + return Path.IsPathRooted(externalDocsPath) + ? Path.GetFullPath(externalDocsPath) + : Path.GetFullPath(Path.Combine(repoRoot, externalDocsPath.TrimStart('.', Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar))); + } + + private static bool IsUnderPath(string candidatePath, string rootPath) + { + var normalizedCandidate = Path.GetFullPath(candidatePath).TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar); + var normalizedRoot = Path.GetFullPath(rootPath).TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar); + if (normalizedCandidate.Equals(normalizedRoot, StringComparison.OrdinalIgnoreCase)) + return true; + var rootWithSep = normalizedRoot + Path.DirectorySeparatorChar; + return normalizedCandidate.StartsWith(rootWithSep, StringComparison.OrdinalIgnoreCase); + } + + private static string BuildWorkspaceScopedDocumentId(string sourcePrefix, string workspaceRoot, string relativePath) + { + var scope = ComputeHash(workspaceRoot).Substring(0, 16).ToLowerInvariant(); + var normalizedPath = relativePath.Replace("/", "-", StringComparison.Ordinal).Replace(":", "-", StringComparison.Ordinal); + return $"{sourcePrefix}:{scope}:{normalizedPath}"; + } +} diff --git a/src/McpServer.Support.Mcp/Ingestion/IngestionCoordinator.cs b/src/McpServer.Support.Mcp/Ingestion/IngestionCoordinator.cs index b2357978..85e2070a 100644 --- a/src/McpServer.Support.Mcp/Ingestion/IngestionCoordinator.cs +++ b/src/McpServer.Support.Mcp/Ingestion/IngestionCoordinator.cs @@ -205,32 +205,56 @@ private void StoreSyncResult(SyncRunResult result) _syncStatusStore.SetLast(wsId, result); } - private async Task UpsertDocumentAndChunksAsync( - Models.ContextDocument doc, - IReadOnlyList chunks, - CancellationToken cancellationToken) - { - var existing = await _db.Documents.FindAsync(new object[] { doc.Id }, cancellationToken).ConfigureAwait(false); - if (existing != null) - { - existing.SourceType = doc.SourceType; - existing.SourceKey = doc.SourceKey; - existing.IngestedAt = doc.IngestedAt; - existing.ContentHash = doc.ContentHash; - var toRemove = await _db.Chunks.Where(c => c.DocumentId == doc.Id).ToListAsync(cancellationToken).ConfigureAwait(false); - _db.Chunks.RemoveRange(toRemove); - } - else - { - _db.Documents.Add(new ContextDocumentEntity - { - Id = doc.Id, - SourceType = doc.SourceType, - SourceKey = doc.SourceKey, - IngestedAt = doc.IngestedAt, - ContentHash = doc.ContentHash - }); - } + private async Task UpsertDocumentAndChunksAsync( + Models.ContextDocument doc, + IReadOnlyList chunks, + CancellationToken cancellationToken) + { + var existingDocs = await _db.Documents + .Where(d => d.SourceType == doc.SourceType && d.SourceKey == doc.SourceKey) + .ToListAsync(cancellationToken).ConfigureAwait(false); + + if (existingDocs.Count > 0) + { + var existingIds = existingDocs.Select(d => d.Id).ToList(); + var toRemove = await _db.Chunks + .Where(c => existingIds.Contains(c.DocumentId)) + .ToListAsync(cancellationToken) + .ConfigureAwait(false); + _db.Chunks.RemoveRange(toRemove); + + if (existingDocs.Count == 1 && existingDocs[0].Id == doc.Id) + { + var existing = existingDocs[0]; + existing.SourceType = doc.SourceType; + existing.SourceKey = doc.SourceKey; + existing.IngestedAt = doc.IngestedAt; + existing.ContentHash = doc.ContentHash; + } + else + { + _db.Documents.RemoveRange(existingDocs); + _db.Documents.Add(new ContextDocumentEntity + { + Id = doc.Id, + SourceType = doc.SourceType, + SourceKey = doc.SourceKey, + IngestedAt = doc.IngestedAt, + ContentHash = doc.ContentHash + }); + } + } + else + { + _db.Documents.Add(new ContextDocumentEntity + { + Id = doc.Id, + SourceType = doc.SourceType, + SourceKey = doc.SourceKey, + IngestedAt = doc.IngestedAt, + ContentHash = doc.ContentHash + }); + } var chunkEntities = new List(); foreach (var c in chunks) diff --git a/src/McpServer.Support.Mcp/Ingestion/RepoIngestor.cs b/src/McpServer.Support.Mcp/Ingestion/RepoIngestor.cs index beb8b88d..68a6b01a 100644 --- a/src/McpServer.Support.Mcp/Ingestion/RepoIngestor.cs +++ b/src/McpServer.Support.Mcp/Ingestion/RepoIngestor.cs @@ -1,164 +1,246 @@ -using System.Security.Cryptography; -using System.Text; -using McpServer.Support.Mcp.Indexing; -using McpServer.Support.Mcp.Models; -using Microsoft.Extensions.Logging; - -namespace McpServer.Support.Mcp.Ingestion; - -/// -/// TR-PLANNED-013: Ingests repository files under allowlist; computes hashes and chunks. -/// FR-SUPPORT-010: Path allowlist and repo root only. -/// -public sealed class RepoIngestor -{ - private static readonly char[] s_trimSlashChars = { '/' }; - private readonly Chunker _chunker; - private readonly IngestionOptions _options; - private readonly ILogger _logger; - - - /// TR-PLANNED-013: Constructor. - /// Chunker for splitting content. - /// Ingestion options providing repo root and allowlist. - /// Logger instance. - public RepoIngestor(Chunker chunker, Microsoft.Extensions.Options.IOptions options, - ILogger logger) - { - _logger = logger; - _chunker = chunker; - _options = options?.Value ?? new IngestionOptions(); - } - - /// TR-PLANNED-013: Ingests allowlisted files under RepoRoot; returns documents and chunks. - /// Token to cancel the operation. - /// List of ingested documents with their chunks. - public async Task Chunks)>> IngestAsync( - CancellationToken cancellationToken = default) - { - var repoRoot = Path.GetFullPath(_options.RepoRoot); - if (!Directory.Exists(repoRoot)) - { - return Array.Empty<(ContextDocument, IReadOnlyList)>(); - } - - var results = new List<(ContextDocument Doc, IReadOnlyList Chunks)>(); - var allowlist = _options.RepoAllowlist; - - await foreach (var path in EnumerateAllowlistedFilesAsync(repoRoot, allowlist, cancellationToken).ConfigureAwait(false)) - { - cancellationToken.ThrowIfCancellationRequested(); - try - { - var content = await File.ReadAllTextAsync(path, cancellationToken).ConfigureAwait(false); - if (content.Length > _options.MaxFileSizeBytes) - { - continue; - } - - var relativePath = Path.GetRelativePath(repoRoot, path).Replace('\\', '/'); - if (IsPathTraversal(relativePath)) - { - continue; - } - - var contentHash = ComputeHash(content); - var documentId = "repo:" + relativePath.Replace("/", "-", StringComparison.Ordinal).Replace(":", "-", StringComparison.Ordinal); - var doc = new ContextDocument - { - Id = documentId, - SourceType = "repo", - SourceKey = relativePath, - IngestedAt = DateTime.UtcNow, - ContentHash = contentHash - }; - var chunks = _chunker.Chunk(documentId, content); - results.Add((doc, chunks)); - } - catch (IOException ex) - { - _logger.LogWarning("{ExceptionDetail}", ex.ToString()); - // Skip unreadable files - } - catch (UnauthorizedAccessException ex) - { - _logger.LogWarning("{ExceptionDetail}", ex.ToString()); - // Skip inaccessible files - } - } - - return results; - } - - private static async IAsyncEnumerable EnumerateAllowlistedFilesAsync( - string repoRoot, - IReadOnlyList? allowlist, - [System.Runtime.CompilerServices.EnumeratorCancellation] CancellationToken cancellationToken) - { - var seen = new HashSet(StringComparer.OrdinalIgnoreCase); - await foreach (var file in EnumerateAllFilesAsync(repoRoot, cancellationToken).ConfigureAwait(false)) - { - var relative = Path.GetRelativePath(repoRoot, file).Replace('\\', '/'); - if (allowlist != null && allowlist.Count > 0 && !MatchesAllowlist(relative, allowlist)) - { - continue; - } - if (seen.Add(relative)) - { - yield return file; - } - } - } - - private static async IAsyncEnumerable EnumerateAllFilesAsync( - string dir, - [System.Runtime.CompilerServices.EnumeratorCancellation] CancellationToken cancellationToken) - { - foreach (var path in Directory.EnumerateFiles(dir, "*.*", SearchOption.AllDirectories)) - { - cancellationToken.ThrowIfCancellationRequested(); - var name = Path.GetFileName(path); - if (name.StartsWith('.') || name == "mcp.db" || - path.Contains("bin", StringComparison.Ordinal) || path.Contains("obj", StringComparison.Ordinal)) - { - continue; - } - yield return path; - } - await Task.CompletedTask.ConfigureAwait(false); - } - - private static bool MatchesAllowlist(string relativePath, IReadOnlyList patterns) - { - foreach (var p in patterns) - { - if (p.Contains("**", StringComparison.Ordinal)) - { - var prefix = p.Replace("**", string.Empty, StringComparison.Ordinal).TrimEnd(s_trimSlashChars); - if (relativePath.StartsWith(prefix, StringComparison.OrdinalIgnoreCase)) return true; - } - else if (p.StartsWith("*.", StringComparison.Ordinal)) - { - var suffix = p[1..]; - if (relativePath.EndsWith(suffix, StringComparison.OrdinalIgnoreCase)) return true; - } - else if (relativePath.StartsWith(p.TrimStart('/'), StringComparison.OrdinalIgnoreCase)) - { - return true; - } - } - return false; - } - - private static bool IsPathTraversal(string relativePath) - { - return relativePath.Contains("..", StringComparison.Ordinal) || - Path.IsPathRooted(relativePath); - } - - private static string ComputeHash(string content) - { - var bytes = SHA256.HashData(Encoding.UTF8.GetBytes(content)); - return Convert.ToHexString(bytes).ToUpperInvariant(); - } +using System.Security.Cryptography; +using System.Text; +using System.Text.RegularExpressions; +using McpServer.Support.Mcp.Indexing; +using McpServer.Support.Mcp.Models; +using McpServer.Support.Mcp.Services; +using Microsoft.Extensions.Logging; + +namespace McpServer.Support.Mcp.Ingestion; + +/// +/// TR-PLANNED-013: Ingests repository files under allowlist; computes hashes and chunks. +/// FR-SUPPORT-010: Path allowlist and repo root only. +/// +public sealed class RepoIngestor +{ + private readonly Chunker _chunker; + private readonly IngestionOptions _options; + private readonly WorkspaceContext _workspaceContext; + private readonly ILogger _logger; + + + /// TR-PLANNED-013: Constructor. + /// Chunker for splitting content. + /// Ingestion options providing repo root and allowlist. + /// Resolved workspace context for per-workspace ingestion. + /// Logger instance. + public RepoIngestor(Chunker chunker, Microsoft.Extensions.Options.IOptions options, + WorkspaceContext workspaceContext, + ILogger logger) + { + _logger = logger; + _chunker = chunker; + _options = options?.Value ?? new IngestionOptions(); + _workspaceContext = workspaceContext ?? throw new ArgumentNullException(nameof(workspaceContext)); + } + + /// TR-PLANNED-013: Ingests allowlisted files under RepoRoot; returns documents and chunks. + /// Token to cancel the operation. + /// List of ingested documents with their chunks. + public async Task Chunks)>> IngestAsync( + CancellationToken cancellationToken = default) + { + var repoRoot = ResolveRepoRoot(); + if (!Directory.Exists(repoRoot)) + { + return Array.Empty<(ContextDocument, IReadOnlyList)>(); + } + + var results = new List<(ContextDocument Doc, IReadOnlyList Chunks)>(); + var allowlist = _options.RepoAllowlist; + + await foreach (var path in EnumerateAllowlistedFilesAsync(repoRoot, allowlist, cancellationToken).ConfigureAwait(false)) + { + cancellationToken.ThrowIfCancellationRequested(); + try + { + var content = await File.ReadAllTextAsync(path, cancellationToken).ConfigureAwait(false); + if (content.Length > _options.MaxFileSizeBytes) + { + continue; + } + + var relativePath = Path.GetRelativePath(repoRoot, path).Replace('\\', '/'); + if (IsPathTraversal(relativePath)) + { + continue; + } + + var contentHash = ComputeHash(content); + var documentId = BuildWorkspaceScopedDocumentId("repo", repoRoot, relativePath); + var doc = new ContextDocument + { + Id = documentId, + SourceType = "repo", + SourceKey = relativePath, + IngestedAt = DateTime.UtcNow, + ContentHash = contentHash + }; + var chunks = _chunker.Chunk(documentId, content); + results.Add((doc, chunks)); + } + catch (IOException ex) + { + _logger.LogWarning("{ExceptionDetail}", ex.ToString()); + // Skip unreadable files + } + catch (UnauthorizedAccessException ex) + { + _logger.LogWarning("{ExceptionDetail}", ex.ToString()); + // Skip inaccessible files + } + } + + return results; + } + + private static async IAsyncEnumerable EnumerateAllowlistedFilesAsync( + string repoRoot, + IReadOnlyList? allowlist, + [System.Runtime.CompilerServices.EnumeratorCancellation] CancellationToken cancellationToken) + { + var seen = new HashSet(StringComparer.OrdinalIgnoreCase); + await foreach (var file in EnumerateAllFilesAsync(repoRoot, cancellationToken).ConfigureAwait(false)) + { + var relative = Path.GetRelativePath(repoRoot, file).Replace('\\', '/'); + if (allowlist != null && allowlist.Count > 0 && !MatchesAllowlist(relative, allowlist)) + { + continue; + } + if (seen.Add(relative)) + { + yield return file; + } + } + } + + private static async IAsyncEnumerable EnumerateAllFilesAsync( + string dir, + [System.Runtime.CompilerServices.EnumeratorCancellation] CancellationToken cancellationToken) + { + foreach (var path in Directory.EnumerateFiles(dir, "*.*", SearchOption.AllDirectories)) + { + cancellationToken.ThrowIfCancellationRequested(); + var name = Path.GetFileName(path); + if (name.StartsWith('.') || name == "mcp.db" || + path.Contains("bin", StringComparison.Ordinal) || path.Contains("obj", StringComparison.Ordinal)) + { + continue; + } + yield return path; + } + await Task.CompletedTask.ConfigureAwait(false); + } + + private static bool MatchesAllowlist(string relativePath, IReadOnlyList patterns) + { + var normalizedPath = relativePath.Replace('\\', '/'); + foreach (var p in patterns) + { + if (string.IsNullOrWhiteSpace(p)) + { + continue; + } + + var pattern = p.Replace('\\', '/').TrimStart('/'); + if (pattern.StartsWith("*.", StringComparison.Ordinal)) + { + var suffix = pattern[1..]; + if (normalizedPath.EndsWith(suffix, StringComparison.OrdinalIgnoreCase)) + { + return true; + } + } + + if (GlobMatches(normalizedPath, pattern)) + { + return true; + } + } + return false; + } + + private static bool IsPathTraversal(string relativePath) + { + return relativePath.Contains("..", StringComparison.Ordinal) || + Path.IsPathRooted(relativePath); + } + + private static string ComputeHash(string content) + { + var bytes = SHA256.HashData(Encoding.UTF8.GetBytes(content)); + return Convert.ToHexString(bytes).ToUpperInvariant(); + } + + private static bool GlobMatches(string path, string pattern) + { + var regexPattern = GlobToRegex(pattern); + return Regex.IsMatch( + path, + regexPattern, + RegexOptions.IgnoreCase | RegexOptions.CultureInvariant); + } + + private static string GlobToRegex(string pattern) + { + var sb = new StringBuilder("^"); + for (var i = 0; i < pattern.Length; i++) + { + var c = pattern[i]; + if (c == '*') + { + var isDoubleStar = i + 1 < pattern.Length && pattern[i + 1] == '*'; + if (isDoubleStar) + { + var followedBySlash = i + 2 < pattern.Length && + (pattern[i + 2] == '/' || pattern[i + 2] == '\\'); + if (followedBySlash) + { + sb.Append("(?:.*/)?"); + i += 2; + } + else + { + sb.Append(".*"); + i += 1; + } + } + else + { + sb.Append("[^/]*"); + } + } + else if (c == '?') + { + sb.Append("[^/]"); + } + else if (c == '/' || c == '\\') + { + sb.Append('/'); + } + else + { + sb.Append(Regex.Escape(c.ToString())); + } + } + + sb.Append('$'); + return sb.ToString(); + } + + private string ResolveRepoRoot() + { + var candidate = _workspaceContext.WorkspacePath; + if (string.IsNullOrWhiteSpace(candidate)) + candidate = _options.RepoRoot; + return Path.GetFullPath(candidate); + } + + private static string BuildWorkspaceScopedDocumentId(string sourcePrefix, string workspaceRoot, string relativePath) + { + var scope = ComputeHash(workspaceRoot).Substring(0, 16).ToLowerInvariant(); + var normalizedPath = relativePath.Replace("/", "-", StringComparison.Ordinal).Replace(":", "-", StringComparison.Ordinal); + return $"{sourcePrefix}:{scope}:{normalizedPath}"; + } } diff --git a/src/McpServer.Support.Mcp/Ingestion/SessionLogIngestor.cs b/src/McpServer.Support.Mcp/Ingestion/SessionLogIngestor.cs index a8d8c160..e6b0d3e2 100644 --- a/src/McpServer.Support.Mcp/Ingestion/SessionLogIngestor.cs +++ b/src/McpServer.Support.Mcp/Ingestion/SessionLogIngestor.cs @@ -32,46 +32,47 @@ public sealed record SessionLogImportResult /// TR-PLANNED-013: Ingests session logs from docs/sessions/, normalizes to UnifiedModel. /// FR-SUPPORT-010: Supports .md and .json session log files. /// -public sealed class SessionLogIngestor -{ - private readonly Chunker _chunker; - private readonly IngestionOptions _options; - private readonly ISessionLogService _sessionLogService; - private readonly ILogger _logger; - private static readonly JsonSerializerOptions s_jsonOptions = new() { PropertyNameCaseInsensitive = true }; +public sealed class SessionLogIngestor +{ + private readonly Chunker _chunker; + private readonly IngestionOptions _options; + private readonly WorkspaceContext _workspaceContext; + private readonly ISessionLogService _sessionLogService; + private readonly ILogger _logger; + private static readonly JsonSerializerOptions s_jsonOptions = new() { PropertyNameCaseInsensitive = true }; /// TR-PLANNED-013: Constructor. /// Chunker for splitting content. /// Ingestion options providing sessions path. /// Service for persisting session logs to 4NF tables. /// Logger for diagnostic output. - public SessionLogIngestor( - Chunker chunker, - Microsoft.Extensions.Options.IOptions options, - ISessionLogService sessionLogService, - ILogger logger) - { - _chunker = chunker; - _options = options?.Value ?? new IngestionOptions(); - _sessionLogService = sessionLogService ?? throw new ArgumentNullException(nameof(sessionLogService)); - _logger = logger ?? throw new ArgumentNullException(nameof(logger)); - } + public SessionLogIngestor( + Chunker chunker, + Microsoft.Extensions.Options.IOptions options, + WorkspaceContext workspaceContext, + ISessionLogService sessionLogService, + ILogger logger) + { + _chunker = chunker; + _options = options?.Value ?? new IngestionOptions(); + _workspaceContext = workspaceContext ?? throw new ArgumentNullException(nameof(workspaceContext)); + _sessionLogService = sessionLogService ?? throw new ArgumentNullException(nameof(sessionLogService)); + _logger = logger ?? throw new ArgumentNullException(nameof(logger)); + } /// FR-SUPPORT-010: Ingests all session logs under SessionsPath; returns documents and chunks. /// Token to cancel the operation. /// List of ingested documents with their chunks. - public async Task Chunks)>> IngestAsync( - CancellationToken cancellationToken = default) - { - var repoRoot = Path.GetFullPath(_options.RepoRoot); - var sessionsDir = Path.IsPathRooted(_options.SessionsPath) - ? Path.GetFullPath(_options.SessionsPath) - : Path.GetFullPath(Path.Combine(repoRoot, _options.SessionsPath.TrimStart('.', Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar))); - var sourceRoot = Path.IsPathRooted(_options.SessionsPath) ? sessionsDir : repoRoot; - if (!Directory.Exists(sessionsDir)) - { - return Array.Empty<(ContextDocument, IReadOnlyList)>(); - } + public async Task Chunks)>> IngestAsync( + CancellationToken cancellationToken = default) + { + var repoRoot = ResolveRepoRoot(); + var sessionsDir = ResolveSessionsDirectory(repoRoot); + var sourceRoot = IsUnderPath(sessionsDir, repoRoot) ? repoRoot : sessionsDir; + if (!Directory.Exists(sessionsDir)) + { + return Array.Empty<(ContextDocument, IReadOnlyList)>(); + } var results = new List<(ContextDocument Doc, IReadOnlyList Chunks)>(); @@ -92,16 +93,16 @@ public SessionLogIngestor( continue; } - var normalized = ext.Equals(".JSON", StringComparison.Ordinal) - ? NormalizeJsonSessionLog(content) - : NormalizeMarkdownSessionLog(content); - var contentHash = ComputeHash(content); - var relativePath = Path.GetRelativePath(sourceRoot, path).Replace('\\', '/'); - var documentId = "session-log:" + relativePath.Replace("/", "-", StringComparison.Ordinal).Replace(":", "-", StringComparison.Ordinal); - var doc = new ContextDocument - { - Id = documentId, - SourceType = "session-log", + var normalized = ext.Equals(".JSON", StringComparison.Ordinal) + ? NormalizeJsonSessionLog(content) + : NormalizeMarkdownSessionLog(content); + var contentHash = ComputeHash(content); + var relativePath = Path.GetRelativePath(sourceRoot, path).Replace('\\', '/'); + var documentId = BuildWorkspaceScopedDocumentId("session-log", repoRoot, relativePath); + var doc = new ContextDocument + { + Id = documentId, + SourceType = "session-log", SourceKey = relativePath, IngestedAt = DateTime.UtcNow, ContentHash = contentHash @@ -168,17 +169,15 @@ private static string ComputeHash(string content) /// /// Cancellation token. /// Import statistics including files scanned, imported, skipped, failed, and total entries. - public async Task ImportToSessionLogTablesAsync(CancellationToken cancellationToken = default) - { - var repoRoot = Path.GetFullPath(_options.RepoRoot); - var sessionsDir = Path.IsPathRooted(_options.SessionsPath) - ? Path.GetFullPath(_options.SessionsPath) - : Path.GetFullPath(Path.Combine(repoRoot, _options.SessionsPath.TrimStart('.', Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar))); - if (!Directory.Exists(sessionsDir)) - { - _logger.LogWarning("Sessions directory not found: {SessionsDir}", sessionsDir); - return new SessionLogImportResult(); - } + public async Task ImportToSessionLogTablesAsync(CancellationToken cancellationToken = default) + { + var repoRoot = ResolveRepoRoot(); + var sessionsDir = ResolveSessionsDirectory(repoRoot); + if (!Directory.Exists(sessionsDir)) + { + _logger.LogWarning("Sessions directory not found: {SessionsDir}", sessionsDir); + return new SessionLogImportResult(); + } var imported = 0; var skipped = 0; @@ -336,6 +335,42 @@ public async Task ImportToSessionLogTablesAsync(Cancella dto.Entries = JsonSerializer.Deserialize>(entries.GetRawText(), s_jsonOptions); } - return dto; - } -} + return dto; + } + + private string ResolveRepoRoot() + { + var candidate = _workspaceContext.WorkspacePath; + if (string.IsNullOrWhiteSpace(candidate)) + candidate = _options.RepoRoot; + return Path.GetFullPath(candidate); + } + + private string ResolveSessionsDirectory(string repoRoot) + { + var sessionsPath = !string.IsNullOrWhiteSpace(_workspaceContext.SessionsPath) + ? _workspaceContext.SessionsPath! + : _options.SessionsPath; + + return Path.IsPathRooted(sessionsPath) + ? Path.GetFullPath(sessionsPath) + : Path.GetFullPath(Path.Combine(repoRoot, sessionsPath.TrimStart('.', Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar))); + } + + private static bool IsUnderPath(string candidatePath, string rootPath) + { + var normalizedCandidate = Path.GetFullPath(candidatePath).TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar); + var normalizedRoot = Path.GetFullPath(rootPath).TrimEnd(Path.DirectorySeparatorChar, Path.AltDirectorySeparatorChar); + if (normalizedCandidate.Equals(normalizedRoot, StringComparison.OrdinalIgnoreCase)) + return true; + var rootWithSep = normalizedRoot + Path.DirectorySeparatorChar; + return normalizedCandidate.StartsWith(rootWithSep, StringComparison.OrdinalIgnoreCase); + } + + private static string BuildWorkspaceScopedDocumentId(string sourcePrefix, string workspaceRoot, string relativePath) + { + var scope = ComputeHash(workspaceRoot).Substring(0, 16).ToLowerInvariant(); + var normalizedPath = relativePath.Replace("/", "-", StringComparison.Ordinal).Replace(":", "-", StringComparison.Ordinal); + return $"{sourcePrefix}:{scope}:{normalizedPath}"; + } +} diff --git a/src/McpServer.Support.Mcp/McpStdio/McpServerMcpTools.cs b/src/McpServer.Support.Mcp/McpStdio/McpServerMcpTools.cs index 7802824d..9175c9fc 100644 --- a/src/McpServer.Support.Mcp/McpStdio/McpServerMcpTools.cs +++ b/src/McpServer.Support.Mcp/McpStdio/McpServerMcpTools.cs @@ -36,7 +36,8 @@ public sealed class FwhMcpTools private readonly IGitHubCliService _gitHubCliService; private readonly IRequirementsDocumentService _requirementsDocumentService; private readonly IProcessRunner _processRunner; - private readonly IHttpContextAccessor _httpContextAccessor; + private readonly IHttpContextAccessor _httpContextAccessor; + private readonly WorkspaceContext _workspaceContext; private readonly IWorkspaceService _workspaceService; private readonly IWorkspacePolicyService _workspacePolicyService; private readonly TodoServiceResolver _todoServiceResolver; @@ -55,9 +56,10 @@ public FwhMcpTools(McpDbContext db, ITodoPromptService todoPromptService, ISessionLogService sessionLogService, IGitHubCliService gitHubCliService, - IRequirementsDocumentService requirementsDocumentService, + IRequirementsDocumentService requirementsDocumentService, IProcessRunner processRunner, IHttpContextAccessor httpContextAccessor, + WorkspaceContext workspaceContext, IWorkspaceService workspaceService, IWorkspacePolicyService workspacePolicyService, TodoServiceResolver todoServiceResolver, @@ -74,10 +76,11 @@ public FwhMcpTools(McpDbContext db, _workspaceAccessor = workspaceAccessor; _todoPromptService = todoPromptService; _sessionLogService = sessionLogService; - _gitHubCliService = gitHubCliService; + _gitHubCliService = gitHubCliService; _requirementsDocumentService = requirementsDocumentService; _processRunner = processRunner; _httpContextAccessor = httpContextAccessor; + _workspaceContext = workspaceContext; _workspaceService = workspaceService; _workspacePolicyService = workspacePolicyService; _todoServiceResolver = todoServiceResolver; @@ -91,9 +94,17 @@ public FwhMcpTools(McpDbContext db, /// private void ApplyWorkspaceOverride(string workspacePath) { + _workspaceContext.WorkspacePath = workspacePath; + _workspaceContext.SessionsPath = Path.Combine(workspacePath, "docs", "sessions"); + _workspaceContext.ExternalDocsPath = Path.Combine(workspacePath, "docs", "external"); + var ctx = _httpContextAccessor.HttpContext?.RequestServices.GetService(); if (ctx is not null) + { ctx.WorkspacePath = workspacePath; + ctx.SessionsPath = _workspaceContext.SessionsPath; + ctx.ExternalDocsPath = _workspaceContext.ExternalDocsPath; + } _db.OverrideWorkspaceId(workspacePath); } @@ -1410,3 +1421,4 @@ public async Task PromptTemplateTest( } } } + diff --git a/src/McpServer.Support.Mcp/McpStdio/McpStdioHost.cs b/src/McpServer.Support.Mcp/McpStdio/McpStdioHost.cs index f962831e..42660b6b 100644 --- a/src/McpServer.Support.Mcp/McpStdio/McpStdioHost.cs +++ b/src/McpServer.Support.Mcp/McpStdio/McpStdioHost.cs @@ -79,6 +79,13 @@ public static async Task RunAsync(string[] args, CancellationToken cancellationT "src/McpServer.Cqrs.Mvvm/**/*.cs", "src/McpServer.UI.Core/**/*.cs", "src/McpServer.Director/**/*.cs", + "docs/README.md", + "docs/MCP-SERVER.md", + "docs/USER-GUIDE.md", + "docs/FAQ.md", + "docs/CLIENT-INTEGRATION.md", + "docs/RELEASE-CHECKLIST.md", + "docs/Operations/**/*.md", }; builder.Services.PostConfigure(options => { diff --git a/src/McpServer.Support.Mcp/Program.cs b/src/McpServer.Support.Mcp/Program.cs index 6d806a0e..bd345adb 100644 --- a/src/McpServer.Support.Mcp/Program.cs +++ b/src/McpServer.Support.Mcp/Program.cs @@ -200,6 +200,13 @@ bool IsStdioTransportRequested(string[] a) "src/McpServer.Cqrs.Mvvm/**/*.cs", "src/McpServer.UI.Core/**/*.cs", "src/McpServer.Director/**/*.cs", + "docs/README.md", + "docs/MCP-SERVER.md", + "docs/USER-GUIDE.md", + "docs/FAQ.md", + "docs/CLIENT-INTEGRATION.md", + "docs/RELEASE-CHECKLIST.md", + "docs/Operations/**/*.md", }; builder.Services.PostConfigure(options => { diff --git a/src/McpServer.Support.Mcp/Services/FileMarkerPromptProvider.cs b/src/McpServer.Support.Mcp/Services/FileMarkerPromptProvider.cs index a35bb418..6b9279f7 100644 --- a/src/McpServer.Support.Mcp/Services/FileMarkerPromptProvider.cs +++ b/src/McpServer.Support.Mcp/Services/FileMarkerPromptProvider.cs @@ -25,29 +25,32 @@ public FileMarkerPromptProvider(IPromptTemplateService templateService, ILogger< } /// - public async Task GetGlobalPromptTemplateAsync(CancellationToken cancellationToken = default) + public async Task GetGlobalPromptTemplateAsync(CancellationToken cancellationToken = default) { if (_loaded) - return _cached; + return _cached!; try { var template = await _templateService.GetByIdAsync(TemplateId, cancellationToken).ConfigureAwait(false); - _cached = template?.Content; - _loaded = true; + + if (template is null) + { + var msg = $"CRITICAL: Marker prompt template '{TemplateId}' not found in prompt-templates.yaml. Server cannot start without it."; + _logger.LogCritical(msg); + throw new InvalidOperationException(msg); + } - if (_cached is not null) - _logger.LogInformation("Loaded marker prompt template '{Id}' ({Length} chars)", TemplateId, _cached.Length); - else - _logger.LogDebug("Marker prompt template '{Id}' not found, using built-in default", TemplateId); + _cached = template.Content; + _loaded = true; + _logger.LogInformation("Loaded marker prompt template '{Id}' ({Length} chars)", TemplateId, _cached.Length); return _cached; } - catch (Exception ex) + catch (Exception ex) when (ex is not InvalidOperationException) { - _logger.LogError(ex, "Failed to load marker prompt template '{Id}'", TemplateId); - _loaded = true; - return null; + _logger.LogCritical(ex, "Failed to load marker prompt template '{Id}'", TemplateId); + throw; } } } diff --git a/src/McpServer.Support.Mcp/Services/Fts5SearchService.cs b/src/McpServer.Support.Mcp/Services/Fts5SearchService.cs index 695bfeb0..7dd36faa 100644 --- a/src/McpServer.Support.Mcp/Services/Fts5SearchService.cs +++ b/src/McpServer.Support.Mcp/Services/Fts5SearchService.cs @@ -8,17 +8,19 @@ namespace McpServer.Support.Mcp.Services; /// TR-PLANNED-013: FTS5 full-text search implementation using SQLite's FTS5 module. /// FR-SUPPORT-010: BM25 ranking, snippet extraction, optional sourceType filter. /// -internal sealed class Fts5SearchService : IContextSearchService -{ - private readonly McpDbContext _db; - private readonly ILogger _logger; +internal sealed class Fts5SearchService : IContextSearchService +{ + private readonly McpDbContext _db; + private readonly ILogger _logger; + private readonly bool _isSqliteProvider; /// TR-PLANNED-013: Constructor for DI. - public Fts5SearchService(McpDbContext db, ILogger logger) - { - _db = db; - _logger = logger; - } + public Fts5SearchService(McpDbContext db, ILogger logger) + { + _db = db; + _logger = logger; + _isSqliteProvider = _db.Database.ProviderName?.Contains("Sqlite", StringComparison.OrdinalIgnoreCase) == true; + } /// public async Task SearchAsync(string query, int limit = 20, string? sourceType = null, CancellationToken ct = default) @@ -26,13 +28,19 @@ public async Task SearchAsync(string query, int limit = 20, var q = (query ?? string.Empty).Trim(); var lim = Math.Clamp(limit, 1, 100); - if (string.IsNullOrEmpty(q)) - { - return new ContextSearchResult([], []); - } - - // Escape FTS5 special characters and form a simple prefix query - var ftsQuery = EscapeFts5Query(q); + if (string.IsNullOrEmpty(q)) + { + return new ContextSearchResult([], []); + } + + // FTS5 SQL is SQLite-specific. For other providers (e.g., PostgreSQL), use fallback search. + if (!_isSqliteProvider) + { + return await FallbackSearchAsync(q, lim, sourceType, ct).ConfigureAwait(false); + } + + // Escape FTS5 special characters and form a simple prefix query + var ftsQuery = EscapeFts5Query(q); try { @@ -126,11 +134,19 @@ LIMIT @limit } /// - public async Task RebuildAsync(CancellationToken ct = default) - { - try - { - var conn = _db.Database.GetDbConnection(); + public async Task RebuildAsync(CancellationToken ct = default) + { + if (!_isSqliteProvider) + { + _logger.LogInformation( + "Skipping FTS5 rebuild for non-SQLite provider: {ProviderName}", + _db.Database.ProviderName ?? ""); + return; + } + + try + { + var conn = _db.Database.GetDbConnection(); await conn.OpenAsync(ct).ConfigureAwait(false); // Repopulate FTS5 index from Chunks table @@ -155,15 +171,18 @@ public async Task RebuildAsync(CancellationToken ct = default) } } - private async Task FallbackSearchAsync(string query, int limit, string? sourceType, CancellationToken ct) - { - var chunksQuery = _db.Chunks.AsNoTracking(); - if (!string.IsNullOrEmpty(sourceType)) - { - var docIds = await _db.Documents.Where(d => d.SourceType == sourceType).Select(d => d.Id).ToListAsync(ct).ConfigureAwait(false); - chunksQuery = chunksQuery.Where(c => docIds.Contains(c.DocumentId)); - } - chunksQuery = chunksQuery.Where(c => c.Content != null && c.Content.Contains(query)); + private async Task FallbackSearchAsync(string query, int limit, string? sourceType, CancellationToken ct) + { + var chunksQuery = _db.Chunks.AsNoTracking(); + if (!string.IsNullOrEmpty(sourceType)) + { + var docIds = await _db.Documents.Where(d => d.SourceType == sourceType).Select(d => d.Id).ToListAsync(ct).ConfigureAwait(false); + chunksQuery = chunksQuery.Where(c => docIds.Contains(c.DocumentId)); + } + if (_isSqliteProvider) + chunksQuery = chunksQuery.Where(c => c.Content != null && c.Content.Contains(query)); + else + chunksQuery = chunksQuery.Where(c => c.Content != null && EF.Functions.ILike(c.Content, $"%{query}%")); var chunkList = await chunksQuery .OrderBy(c => c.DocumentId) diff --git a/src/McpServer.Support.Mcp/Services/IMarkerPromptProvider.cs b/src/McpServer.Support.Mcp/Services/IMarkerPromptProvider.cs index c53d5c46..5d631327 100644 --- a/src/McpServer.Support.Mcp/Services/IMarkerPromptProvider.cs +++ b/src/McpServer.Support.Mcp/Services/IMarkerPromptProvider.cs @@ -2,16 +2,15 @@ namespace McpServer.Support.Mcp.Services; /// /// FR-MCP-049, TR-MCP-TPL-001: Provides the global marker prompt template -/// from the combined prompt-templates.yaml via , -/// with graceful fallback to the built-in default. +/// from the combined prompt-templates.yaml via . +/// Throws a critical exception if the template is missing. /// public interface IMarkerPromptProvider { /// /// Returns the marker prompt template loaded from - /// the default-marker-prompt entry in prompt-templates.yaml, - /// or when not found (caller falls back to - /// ). + /// the default-marker-prompt entry in prompt-templates.yaml. + /// Throws if the template is not found. /// - Task GetGlobalPromptTemplateAsync(CancellationToken cancellationToken = default); + Task GetGlobalPromptTemplateAsync(CancellationToken cancellationToken = default); } diff --git a/src/McpServer.Support.Mcp/Services/MarkerFileService.cs b/src/McpServer.Support.Mcp/Services/MarkerFileService.cs index 08526a30..54fe229d 100644 --- a/src/McpServer.Support.Mcp/Services/MarkerFileService.cs +++ b/src/McpServer.Support.Mcp/Services/MarkerFileService.cs @@ -19,128 +19,6 @@ public static class MarkerFileService /// Well-known marker file name placed at the workspace root. public const string MarkerFileName = "AGENTS-README-FIRST.yaml"; - /// - /// Built-in default prompt template using Handlebars syntax. - /// Available context: {{baseUrl}}, {{apiKey}}, {{workspace.*}} (all WorkspaceDto fields). - /// Used when no Mcp:MarkerPromptTemplate is configured. - /// - public const string DefaultPromptTemplate = - """ - You are connected to an MCP Context Server at {{baseUrl}}. Use this server to coordinate your work. - - ## Session Start - - 1. Read this marker file for connection details and API key. - 2. Bootstrap helper modules from the Tool Registry (see docs/context/module-bootstrap.md). - 3. Review recent session history and current TODOs. - 4. Post a session log entry before starting work on the user's request. - - ## Rules - - 1. Post a session log entry before any work on a user request. Update it with results when done. - 2. Use helper modules for session log and TODO operations — they handle workspace routing automatically. Do not use raw API calls. - 3. Write decisions, requirements, and state to the session log, not just conversation. - 4. Follow workspace conventions in AGENTS.md and .github/copilot-instructions.md. - 5. When you need API schemas, module examples, or compliance rules, load them from docs/context/ or use context_search. - 6. Do not fabricate information. Acknowledge mistakes. Distinguish facts from speculation. - 7. Prioritize correctness over speed. Do not ship code you have not verified compiles. - - ## Naming Conventions - - - TODO IDs for new items must be uppercase kebab-case with exactly 3 segments: --### (regex: ^[A-Z]+-[A-Z0-9]+-\d{3}$). - - Valid TODO IDs: PLAN-NAMINGCONVENTIONS-001, MCP-API-042. - - Invalid TODO IDs: plan-api-001, MCP-API-42, MCPAPI001. - - Session IDs must use -- and start with the exact agent/source type prefix. - - Valid Session ID: Copilot-20260304T113901Z-namingconv. - - Invalid Session IDs: copilot-20260304T113901Z-namingconv, Copilot-2026-03-04-namingconv. - - Request IDs must use req-- and be unique within a session. - - Valid Request ID: req-20260304T113901Z-plan-namingconventions-001. - - Invalid Request IDs: req-plan-namingconventions-001, request-20260304T113901Z-task-01. - - ## Workspace - - - Name: {{workspace.Name}} - - Path: {{workspace.WorkspacePath}} - - Primary: {{workspace.IsPrimary}} - - Data Directory: {{workspace.DataDirectory}} - - Todo Path: {{workspace.TodoPath}} - - ## Authentication - - All /mcpserver/* endpoints require a per-workspace auth token: - - Header: X-Api-Key: {{apiKey}} - - Or query param: ?api_key={{apiKey}} - If you receive a 401, re-read this marker file — the token rotates on each server restart. - - ## Where Things Live - - - AGENTS.md — agent conduct, requirements tracking, session continuity, glossary - - .github/copilot-instructions.md — build/test commands, architecture, coding conventions - - docs/context/ — on-demand reference (schemas, module docs, compliance rules, action types) - - docs/Project/ — requirements docs, TODO.yaml, mapping matrices - - templates/ — prompt templates - - ## Context Loading by Task Type - - - Session logging → docs/context/session-log-schema.md + docs/context/module-bootstrap.md - - TODO management → docs/context/todo-schema.md + docs/context/module-bootstrap.md - - API integration → docs/context/api-capabilities.md (or GET {{baseUrl}}/swagger/v1/swagger.json) - - Adding dependencies → docs/context/compliance-rules.md - - Logging actions → docs/context/action-types.md - - ## Available Capabilities - - - src/McpServer.Cqrs/**/*.cs — CQRS contracts, dispatcher pipeline, and result primitives. - - src/McpServer.Cqrs.Mvvm/**/*.cs — MVVM integration layer for command/query-driven UI workflows. - - src/McpServer.UI.Core/**/*.cs — shared UI handlers, view models, and authorization abstractions. - - src/McpServer.Director/**/*.cs — Director CLI/TUI orchestration for workspace and policy operations. - - ## Protocols - - - REST API: {{baseUrl}}/mcpserver/* (requires X-Api-Key). Swagger UI: {{baseUrl}}/swagger - - MCP Streamable HTTP: POST {{baseUrl}}/mcp-transport (no API key required) - - Health: GET {{baseUrl}}/health - - {{#if workspace.BannedLicenses}} - ## Compliance Restrictions - - This workspace has license, origin, or entity restrictions. Read docs/context/compliance-rules.md before adding any dependency. - - Banned licenses: - {{#each workspace.BannedLicenses}} - - {{this}} - {{/each}} - {{/if}} - - {{#if workspace.BannedCountriesOfOrigin}} - Banned countries of origin: - {{#each workspace.BannedCountriesOfOrigin}} - - {{this}} - {{/each}} - {{/if}} - - {{#if workspace.BannedOrganizations}} - Banned organizations: - {{#each workspace.BannedOrganizations}} - - {{this}} - {{/each}} - {{/if}} - - {{#if workspace.BannedIndividuals}} - Banned individuals: - {{#each workspace.BannedIndividuals}} - - {{this}} - {{/each}} - {{/if}} - - ## Before Delivering Output - - Verify: session log is current, decisions are recorded, requirements are tracked, code compiles, action types are correct (see docs/context/action-types.md). - - --- - MCP Server version: {{version}} - """; - private static readonly ISerializer s_yamlSerializer = new SerializerBuilder() .WithNamingConvention(CamelCaseNamingConvention.Instance) .ConfigureDefaultValuesHandling(DefaultValuesHandling.OmitNull) @@ -157,8 +35,8 @@ 7. Prioritize correctness over speed. Do not ship code you have not verified com /// Optional logger for diagnostics. /// Cancellation token. /// - /// Optional global Handlebars prompt template. - /// When or empty, the built-in default prompt is used. + /// Global Handlebars prompt template. + /// Must be provided; otherwise an exception is thrown. /// /// /// Optional per-workspace Handlebars prompt template. @@ -303,11 +181,10 @@ internal static string ResolvePrompt( string? globalPromptTemplate, string? workspacePromptTemplate) { - var globalSource = string.IsNullOrWhiteSpace(globalPromptTemplate) - ? DefaultPromptTemplate - : globalPromptTemplate; + if (string.IsNullOrWhiteSpace(globalPromptTemplate)) + throw new ArgumentException("Global prompt template must be provided.", nameof(globalPromptTemplate)); - var global = RenderHandlebars(globalSource, templateContext); + var global = RenderHandlebars(globalPromptTemplate, templateContext); if (string.IsNullOrWhiteSpace(workspacePromptTemplate)) return global; diff --git a/src/McpServer.Support.Mcp/Services/SessionLogService.cs b/src/McpServer.Support.Mcp/Services/SessionLogService.cs index 39bb66b9..e68b435c 100644 --- a/src/McpServer.Support.Mcp/Services/SessionLogService.cs +++ b/src/McpServer.Support.Mcp/Services/SessionLogService.cs @@ -167,7 +167,7 @@ public async Task AppendProcessingDialogAsync( if (requestIdError is not null) throw new ArgumentException(requestIdError, nameof(requestId)); - var entry = await _db.SessionLogEntries + var entry = await _db.SessionLogTurns .Include(e => e.ProcessingDialog) .FirstOrDefaultAsync(e => e.SessionLog!.SourceType == sourceType @@ -367,14 +367,14 @@ private void UpsertEntries(SessionLogEntity session, List 0) { - _db.SessionLogEntries.RemoveRange(stale); + _db.SessionLogTurns.RemoveRange(stale); } } /// /// Updates an existing entry entity from a DTO, replacing its child collections. /// - private void UpdateEntryFromDto(SessionLogEntryEntity entity, UnifiedRequestEntryDto dto) + private void UpdateEntryFromDto(SessionLogTurnEntity entity, UnifiedRequestEntryDto dto) { entity.Timestamp = ParseDateTimeOffset(dto.Timestamp); entity.Model = dto.Model; @@ -393,11 +393,11 @@ private void UpdateEntryFromDto(SessionLogEntryEntity entity, UnifiedRequestEntr // Replace child collections (cascade delete handles old rows) _db.SessionLogActions.RemoveRange(entity.Actions); - _db.SessionLogEntryTags.RemoveRange(entity.Tags); - _db.SessionLogEntryContexts.RemoveRange(entity.ContextItems); + _db.SessionLogTurnTags.RemoveRange(entity.Tags); + _db.SessionLogTurnContexts.RemoveRange(entity.ContextItems); _db.SessionLogProcessingDialogs.RemoveRange(entity.ProcessingDialog); _db.SessionLogCommits.RemoveRange(entity.Commits); - _db.SessionLogEntryStringLists.RemoveRange(entity.StringListItems); + _db.SessionLogTurnStringLists.RemoveRange(entity.StringListItems); entity.Actions = MapActions(dto.Actions); entity.Tags = MapTags(dto.Tags); @@ -407,7 +407,7 @@ private void UpdateEntryFromDto(SessionLogEntryEntity entity, UnifiedRequestEntr entity.StringListItems = MapStringListItems(dto); } - private static List MapNewEntries(List? entries) + private static List MapNewEntries(List? entries) { if (entries is null or { Count: 0 }) return []; @@ -415,9 +415,9 @@ private static List MapNewEntries(List MapActions(List? a }).ToList() ?? []; } - private static List MapTags(List? tags) + private static List MapTags(List? tags) { - return tags?.Select(t => new SessionLogEntryTagEntity { Tag = t }).ToList() ?? []; + return tags?.Select(t => new SessionLogTurnTagEntity { Tag = t }).ToList() ?? []; } - private static List MapContextItems(List? contextList) + private static List MapContextItems(List? contextList) { - return contextList?.Select((c, i) => new SessionLogEntryContextEntity + return contextList?.Select((c, i) => new SessionLogTurnContextEntity { Ordinal = i, ContextItem = c @@ -497,9 +497,9 @@ private static List MapCommits(List }).ToList() ?? []; } - private static List MapStringListItems(UnifiedRequestEntryDto dto) + private static List MapStringListItems(UnifiedRequestEntryDto dto) { - var items = new List(); + var items = new List(); AddStringListItems(items, "DesignDecision", dto.DesignDecisions); AddStringListItems(items, "Requirement", dto.RequirementsDiscovered); AddStringListItems(items, "FileModified", dto.FilesModified); @@ -507,13 +507,13 @@ private static List MapStringListItems(UnifiedR return items; } - private static void AddStringListItems(List items, string listType, List? values) + private static void AddStringListItems(List items, string listType, List? values) { if (values is not { Count: > 0 }) return; for (int i = 0; i < values.Count; i++) { - items.Add(new SessionLogEntryStringListEntity + items.Add(new SessionLogTurnStringListEntity { ListType = listType, Ordinal = i, @@ -636,7 +636,7 @@ private static UnifiedSessionLogDto MapEntityToDto(SessionLogEntity entity) return JsonSerializer.Deserialize(json); } - private static List? MapStringListToDto(ICollection items, string listType) + private static List? MapStringListToDto(ICollection items, string listType) { var filtered = items.Where(i => i.ListType == listType).OrderBy(i => i.Ordinal).Select(i => i.Value).ToList(); return filtered.Count > 0 ? filtered : null; @@ -679,3 +679,4 @@ await _eventBus.PublishAsync( } } } + diff --git a/src/McpServer.Support.Mcp/Services/TodoPromptDefaults.cs b/src/McpServer.Support.Mcp/Services/TodoPromptDefaults.cs index 083aab65..6ed2fa3a 100644 --- a/src/McpServer.Support.Mcp/Services/TodoPromptDefaults.cs +++ b/src/McpServer.Support.Mcp/Services/TodoPromptDefaults.cs @@ -45,8 +45,11 @@ remaining estimate and note accordingly. -H "Content-Type: application/json" \ -d '{"done": true}' - 4. Update the session log throughout. Run to completion, do not wait for user. - """; + 4. Update the session log throughout and persist after each meaningful update. + Include detailed turn metadata: interpretation, response/status, actions with file paths, + filesModified, designDecisions, requirementsDiscovered, blockers, and contextList. + Run to completion, do not wait for user. + """; /// Default plan prompt template. public const string PlanPrompt = diff --git a/src/McpServer.Support.Mcp/Storage/Entities/SessionLogActionEntity.cs b/src/McpServer.Support.Mcp/Storage/Entities/SessionLogActionEntity.cs index 88256195..7cea15b1 100644 --- a/src/McpServer.Support.Mcp/Storage/Entities/SessionLogActionEntity.cs +++ b/src/McpServer.Support.Mcp/Storage/Entities/SessionLogActionEntity.cs @@ -16,7 +16,7 @@ public sealed class SessionLogActionEntity public string WorkspaceId { get; set; } = string.Empty; /// TR-PLANNED-013: Foreign key to parent entry. - public long SessionLogEntryId { get; set; } + public long SessionLogTurnId { get; set; } /// TR-PLANNED-013: Execution order within the request. public int Order { get; set; } @@ -37,5 +37,6 @@ public sealed class SessionLogActionEntity public string? FilePath { get; set; } /// TR-PLANNED-013: Navigation to parent entry. - public SessionLogEntryEntity? SessionLogEntry { get; set; } + public SessionLogTurnEntity? SessionLogTurn { get; set; } } + diff --git a/src/McpServer.Support.Mcp/Storage/Entities/SessionLogCommitEntity.cs b/src/McpServer.Support.Mcp/Storage/Entities/SessionLogCommitEntity.cs index 133dacfd..ac066d87 100644 --- a/src/McpServer.Support.Mcp/Storage/Entities/SessionLogCommitEntity.cs +++ b/src/McpServer.Support.Mcp/Storage/Entities/SessionLogCommitEntity.cs @@ -16,7 +16,7 @@ public sealed class SessionLogCommitEntity public string WorkspaceId { get; set; } = string.Empty; /// TR-PLANNED-013: Foreign key to parent entry. - public long SessionLogEntryId { get; set; } + public long SessionLogTurnId { get; set; } /// Ordinal position within the entry's commit list. public int Ordinal { get; set; } @@ -43,5 +43,6 @@ public sealed class SessionLogCommitEntity public string? FilesChangedJson { get; set; } /// TR-PLANNED-013: Navigation to parent entry. - public SessionLogEntryEntity? SessionLogEntry { get; set; } + public SessionLogTurnEntity? SessionLogTurn { get; set; } } + diff --git a/src/McpServer.Support.Mcp/Storage/Entities/SessionLogEntity.cs b/src/McpServer.Support.Mcp/Storage/Entities/SessionLogEntity.cs index dbfb2eb3..ce73422f 100644 --- a/src/McpServer.Support.Mcp/Storage/Entities/SessionLogEntity.cs +++ b/src/McpServer.Support.Mcp/Storage/Entities/SessionLogEntity.cs @@ -99,5 +99,6 @@ public sealed class SessionLogEntity /// TR-PLANNED-013: Navigation to session log entries. [SuppressMessage("Usage", "CA2227:Collection properties should be read only", Justification = "EF Core navigation collection")] - public ICollection Entries { get; set; } = new List(); + public ICollection Entries { get; set; } = new List(); } + diff --git a/src/McpServer.Support.Mcp/Storage/Entities/SessionLogProcessingDialogEntity.cs b/src/McpServer.Support.Mcp/Storage/Entities/SessionLogProcessingDialogEntity.cs index c095b2c5..ec4f8a23 100644 --- a/src/McpServer.Support.Mcp/Storage/Entities/SessionLogProcessingDialogEntity.cs +++ b/src/McpServer.Support.Mcp/Storage/Entities/SessionLogProcessingDialogEntity.cs @@ -17,7 +17,7 @@ public sealed class SessionLogProcessingDialogEntity public string WorkspaceId { get; set; } = string.Empty; /// TR-PLANNED-013: Foreign key to parent entry. - public long SessionLogEntryId { get; set; } + public long SessionLogTurnId { get; set; } /// TR-PLANNED-013: Ordinal position within the dialog sequence. public int Ordinal { get; set; } @@ -39,5 +39,6 @@ public sealed class SessionLogProcessingDialogEntity public string? Category { get; set; } /// TR-PLANNED-013: Navigation to parent entry. - public SessionLogEntryEntity? SessionLogEntry { get; set; } + public SessionLogTurnEntity? SessionLogTurn { get; set; } } + diff --git a/src/McpServer.Support.Mcp/Storage/Entities/SessionLogEntryContextEntity.cs b/src/McpServer.Support.Mcp/Storage/Entities/SessionLogTurnContextEntity.cs similarity index 84% rename from src/McpServer.Support.Mcp/Storage/Entities/SessionLogEntryContextEntity.cs rename to src/McpServer.Support.Mcp/Storage/Entities/SessionLogTurnContextEntity.cs index 6c34da96..607954da 100644 --- a/src/McpServer.Support.Mcp/Storage/Entities/SessionLogEntryContextEntity.cs +++ b/src/McpServer.Support.Mcp/Storage/Entities/SessionLogTurnContextEntity.cs @@ -1,31 +1,32 @@ -using System.ComponentModel.DataAnnotations; - -namespace McpServer.Support.Mcp.Storage.Entities; - -/// -/// TR-PLANNED-013: 4NF context item entity. One row per context reference on a session log entry. -/// FR-SUPPORT-010: Eliminates multi-valued dependency on context list. -/// -public sealed class SessionLogEntryContextEntity -{ - /// TR-PLANNED-013: Auto-generated primary key. - [Key] - public long Id { get; set; } - - /// TR-MCP-MT-003: Workspace discriminator for multi-tenant data isolation. - public string WorkspaceId { get; set; } = string.Empty; - - /// TR-PLANNED-013: Foreign key to parent entry. - public long SessionLogEntryId { get; set; } - - /// TR-PLANNED-013: Ordinal position within the context list. - public int Ordinal { get; set; } - - /// TR-PLANNED-013: Context item value (path, URL, or reference). - [Required] - [MaxLength(2048)] - public required string ContextItem { get; set; } - - /// TR-PLANNED-013: Navigation to parent entry. - public SessionLogEntryEntity? SessionLogEntry { get; set; } -} +using System.ComponentModel.DataAnnotations; + +namespace McpServer.Support.Mcp.Storage.Entities; + +/// +/// TR-PLANNED-013: 4NF context item entity. One row per context reference on a session log entry. +/// FR-SUPPORT-010: Eliminates multi-valued dependency on context list. +/// +public sealed class SessionLogTurnContextEntity +{ + /// TR-PLANNED-013: Auto-generated primary key. + [Key] + public long Id { get; set; } + + /// TR-MCP-MT-003: Workspace discriminator for multi-tenant data isolation. + public string WorkspaceId { get; set; } = string.Empty; + + /// TR-PLANNED-013: Foreign key to parent entry. + public long SessionLogTurnId { get; set; } + + /// TR-PLANNED-013: Ordinal position within the context list. + public int Ordinal { get; set; } + + /// TR-PLANNED-013: Context item value (path, URL, or reference). + [Required] + [MaxLength(2048)] + public required string ContextItem { get; set; } + + /// TR-PLANNED-013: Navigation to parent entry. + public SessionLogTurnEntity? SessionLogTurn { get; set; } +} + diff --git a/src/McpServer.Support.Mcp/Storage/Entities/SessionLogEntryEntity.cs b/src/McpServer.Support.Mcp/Storage/Entities/SessionLogTurnEntity.cs similarity index 89% rename from src/McpServer.Support.Mcp/Storage/Entities/SessionLogEntryEntity.cs rename to src/McpServer.Support.Mcp/Storage/Entities/SessionLogTurnEntity.cs index cbfe5572..469f09b2 100644 --- a/src/McpServer.Support.Mcp/Storage/Entities/SessionLogEntryEntity.cs +++ b/src/McpServer.Support.Mcp/Storage/Entities/SessionLogTurnEntity.cs @@ -1,98 +1,99 @@ -using System.ComponentModel.DataAnnotations; -using System.Diagnostics.CodeAnalysis; - -namespace McpServer.Support.Mcp.Storage.Entities; - -/// -/// TR-PLANNED-013: 4NF session log entry entity. One row per request/response pair. -/// FR-SUPPORT-010: Child of . -/// -public sealed class SessionLogEntryEntity -{ - /// TR-PLANNED-013: Auto-generated primary key. - [Key] - public long Id { get; set; } - - /// TR-MCP-MT-003: Workspace discriminator for multi-tenant data isolation. - public string WorkspaceId { get; set; } = string.Empty; - - /// TR-PLANNED-013: Foreign key to parent session. - public long SessionLogId { get; set; } - - /// TR-PLANNED-013: Unique request identifier within the session. - [MaxLength(256)] - public string? RequestId { get; set; } - - /// TR-PLANNED-013: Timestamp of the request (UTC). - public DateTimeOffset? Timestamp { get; set; } - - /// TR-PLANNED-013: AI model used for this entry. - [MaxLength(128)] - public string? Model { get; set; } - - /// TR-PLANNED-013: Model provider (e.g. OpenAI, Anthropic). - [MaxLength(128)] - public string? ModelProvider { get; set; } - - /// TR-PLANNED-013: Full user query text. - public string? QueryText { get; set; } - - /// TR-PLANNED-013: Short title summarizing the query. - [MaxLength(1024)] - public string? QueryTitle { get; set; } - - /// TR-PLANNED-013: Agent response text. - public string? Response { get; set; } - - /// TR-PLANNED-013: Agent interpretation of the request. - public string? Interpretation { get; set; } - - /// TR-PLANNED-013: Entry status (e.g. completed, in_progress). - [MaxLength(64)] - public string? Status { get; set; } - - /// TR-PLANNED-013: Token count for this entry. - public int? TokenCount { get; set; } - - /// TR-PLANNED-013: Failure note if the entry failed. - public string? FailureNote { get; set; } - - /// TR-PLANNED-013: Success score for this entry. - public double? Score { get; set; } - - /// TR-PLANNED-013: Whether this was a premium request. - public bool? IsPremium { get; set; } - - /// TR-PLANNED-013: Raw context data serialized as JSON text. - public string? RawContextJson { get; set; } - - /// TR-PLANNED-013: Original entry before normalization serialized as JSON text. - public string? OriginalEntryJson { get; set; } - - /// TR-PLANNED-013: Navigation to parent session. - public SessionLogEntity? SessionLog { get; set; } - - /// TR-PLANNED-013: Navigation to actions. - [SuppressMessage("Usage", "CA2227:Collection properties should be read only", Justification = "EF Core navigation collection")] - public ICollection Actions { get; set; } = new List(); - - /// TR-PLANNED-013: Navigation to tags. - [SuppressMessage("Usage", "CA2227:Collection properties should be read only", Justification = "EF Core navigation collection")] - public ICollection Tags { get; set; } = new List(); - - /// TR-PLANNED-013: Navigation to context items. - [SuppressMessage("Usage", "CA2227:Collection properties should be read only", Justification = "EF Core navigation collection")] - public ICollection ContextItems { get; set; } = new List(); - - /// TR-PLANNED-013: Navigation to processing dialog items. The AI model can independently append entries. - [SuppressMessage("Usage", "CA2227:Collection properties should be read only", Justification = "EF Core navigation collection")] - public ICollection ProcessingDialog { get; set; } = new List(); - - /// TR-PLANNED-013: Navigation to commits recorded during this entry. - [SuppressMessage("Usage", "CA2227:Collection properties should be read only", Justification = "EF Core navigation collection")] - public ICollection Commits { get; set; } = new List(); - - /// TR-PLANNED-013: Navigation to generic string-list items (design decisions, requirements, files modified, blockers). - [SuppressMessage("Usage", "CA2227:Collection properties should be read only", Justification = "EF Core navigation collection")] - public ICollection StringListItems { get; set; } = new List(); -} +using System.ComponentModel.DataAnnotations; +using System.Diagnostics.CodeAnalysis; + +namespace McpServer.Support.Mcp.Storage.Entities; + +/// +/// TR-PLANNED-013: 4NF session log entry entity. One row per request/response pair. +/// FR-SUPPORT-010: Child of . +/// +public sealed class SessionLogTurnEntity +{ + /// TR-PLANNED-013: Auto-generated primary key. + [Key] + public long Id { get; set; } + + /// TR-MCP-MT-003: Workspace discriminator for multi-tenant data isolation. + public string WorkspaceId { get; set; } = string.Empty; + + /// TR-PLANNED-013: Foreign key to parent session. + public long SessionLogId { get; set; } + + /// TR-PLANNED-013: Unique request identifier within the session. + [MaxLength(256)] + public string? RequestId { get; set; } + + /// TR-PLANNED-013: Timestamp of the request (UTC). + public DateTimeOffset? Timestamp { get; set; } + + /// TR-PLANNED-013: AI model used for this entry. + [MaxLength(128)] + public string? Model { get; set; } + + /// TR-PLANNED-013: Model provider (e.g. OpenAI, Anthropic). + [MaxLength(128)] + public string? ModelProvider { get; set; } + + /// TR-PLANNED-013: Full user query text. + public string? QueryText { get; set; } + + /// TR-PLANNED-013: Short title summarizing the query. + [MaxLength(1024)] + public string? QueryTitle { get; set; } + + /// TR-PLANNED-013: Agent response text. + public string? Response { get; set; } + + /// TR-PLANNED-013: Agent interpretation of the request. + public string? Interpretation { get; set; } + + /// TR-PLANNED-013: Entry status (e.g. completed, in_progress). + [MaxLength(64)] + public string? Status { get; set; } + + /// TR-PLANNED-013: Token count for this entry. + public int? TokenCount { get; set; } + + /// TR-PLANNED-013: Failure note if the entry failed. + public string? FailureNote { get; set; } + + /// TR-PLANNED-013: Success score for this entry. + public double? Score { get; set; } + + /// TR-PLANNED-013: Whether this was a premium request. + public bool? IsPremium { get; set; } + + /// TR-PLANNED-013: Raw context data serialized as JSON text. + public string? RawContextJson { get; set; } + + /// TR-PLANNED-013: Original entry before normalization serialized as JSON text. + public string? OriginalEntryJson { get; set; } + + /// TR-PLANNED-013: Navigation to parent session. + public SessionLogEntity? SessionLog { get; set; } + + /// TR-PLANNED-013: Navigation to actions. + [SuppressMessage("Usage", "CA2227:Collection properties should be read only", Justification = "EF Core navigation collection")] + public ICollection Actions { get; set; } = new List(); + + /// TR-PLANNED-013: Navigation to tags. + [SuppressMessage("Usage", "CA2227:Collection properties should be read only", Justification = "EF Core navigation collection")] + public ICollection Tags { get; set; } = new List(); + + /// TR-PLANNED-013: Navigation to context items. + [SuppressMessage("Usage", "CA2227:Collection properties should be read only", Justification = "EF Core navigation collection")] + public ICollection ContextItems { get; set; } = new List(); + + /// TR-PLANNED-013: Navigation to processing dialog items. The AI model can independently append entries. + [SuppressMessage("Usage", "CA2227:Collection properties should be read only", Justification = "EF Core navigation collection")] + public ICollection ProcessingDialog { get; set; } = new List(); + + /// TR-PLANNED-013: Navigation to commits recorded during this entry. + [SuppressMessage("Usage", "CA2227:Collection properties should be read only", Justification = "EF Core navigation collection")] + public ICollection Commits { get; set; } = new List(); + + /// TR-PLANNED-013: Navigation to generic string-list items (design decisions, requirements, files modified, blockers). + [SuppressMessage("Usage", "CA2227:Collection properties should be read only", Justification = "EF Core navigation collection")] + public ICollection StringListItems { get; set; } = new List(); +} + diff --git a/src/McpServer.Support.Mcp/Storage/Entities/SessionLogEntryStringListEntity.cs b/src/McpServer.Support.Mcp/Storage/Entities/SessionLogTurnStringListEntity.cs similarity index 86% rename from src/McpServer.Support.Mcp/Storage/Entities/SessionLogEntryStringListEntity.cs rename to src/McpServer.Support.Mcp/Storage/Entities/SessionLogTurnStringListEntity.cs index 7954bf02..35e853d7 100644 --- a/src/McpServer.Support.Mcp/Storage/Entities/SessionLogEntryStringListEntity.cs +++ b/src/McpServer.Support.Mcp/Storage/Entities/SessionLogTurnStringListEntity.cs @@ -1,35 +1,36 @@ -using System.ComponentModel.DataAnnotations; - -namespace McpServer.Support.Mcp.Storage.Entities; - -/// -/// TR-PLANNED-013: 4NF generic string-list entity for session log entry properties. -/// Stores DesignDecisions, RequirementsDiscovered, FilesModified, and Blockers. -/// FR-SUPPORT-010: Eliminates multi-valued dependency on string-list properties. -/// -public sealed class SessionLogEntryStringListEntity -{ - /// TR-PLANNED-013: Auto-generated primary key. - [Key] - public long Id { get; set; } - - /// TR-MCP-MT-003: Workspace discriminator for multi-tenant data isolation. - public string WorkspaceId { get; set; } = string.Empty; - - /// TR-PLANNED-013: Foreign key to parent entry. - public long SessionLogEntryId { get; set; } - - /// Discriminator identifying which list this item belongs to (DesignDecision, Requirement, FileModified, Blocker). - [Required] - [MaxLength(32)] - public required string ListType { get; set; } - - /// Ordinal position within the list. - public int Ordinal { get; set; } - - /// The string value of this list item. - public required string Value { get; set; } - - /// TR-PLANNED-013: Navigation to parent entry. - public SessionLogEntryEntity? SessionLogEntry { get; set; } -} +using System.ComponentModel.DataAnnotations; + +namespace McpServer.Support.Mcp.Storage.Entities; + +/// +/// TR-PLANNED-013: 4NF generic string-list entity for session log entry properties. +/// Stores DesignDecisions, RequirementsDiscovered, FilesModified, and Blockers. +/// FR-SUPPORT-010: Eliminates multi-valued dependency on string-list properties. +/// +public sealed class SessionLogTurnStringListEntity +{ + /// TR-PLANNED-013: Auto-generated primary key. + [Key] + public long Id { get; set; } + + /// TR-MCP-MT-003: Workspace discriminator for multi-tenant data isolation. + public string WorkspaceId { get; set; } = string.Empty; + + /// TR-PLANNED-013: Foreign key to parent entry. + public long SessionLogTurnId { get; set; } + + /// Discriminator identifying which list this item belongs to (DesignDecision, Requirement, FileModified, Blocker). + [Required] + [MaxLength(32)] + public required string ListType { get; set; } + + /// Ordinal position within the list. + public int Ordinal { get; set; } + + /// The string value of this list item. + public required string Value { get; set; } + + /// TR-PLANNED-013: Navigation to parent entry. + public SessionLogTurnEntity? SessionLogTurn { get; set; } +} + diff --git a/src/McpServer.Support.Mcp/Storage/Entities/SessionLogEntryTagEntity.cs b/src/McpServer.Support.Mcp/Storage/Entities/SessionLogTurnTagEntity.cs similarity index 81% rename from src/McpServer.Support.Mcp/Storage/Entities/SessionLogEntryTagEntity.cs rename to src/McpServer.Support.Mcp/Storage/Entities/SessionLogTurnTagEntity.cs index 40c5ba3c..82c4976a 100644 --- a/src/McpServer.Support.Mcp/Storage/Entities/SessionLogEntryTagEntity.cs +++ b/src/McpServer.Support.Mcp/Storage/Entities/SessionLogTurnTagEntity.cs @@ -1,28 +1,29 @@ -using System.ComponentModel.DataAnnotations; - -namespace McpServer.Support.Mcp.Storage.Entities; - -/// -/// TR-PLANNED-013: 4NF tag entity. One row per tag on a session log entry. -/// FR-SUPPORT-010: Eliminates multi-valued dependency on tags. -/// -public sealed class SessionLogEntryTagEntity -{ - /// TR-PLANNED-013: Auto-generated primary key. - [Key] - public long Id { get; set; } - - /// TR-MCP-MT-003: Workspace discriminator for multi-tenant data isolation. - public string WorkspaceId { get; set; } = string.Empty; - - /// TR-PLANNED-013: Foreign key to parent entry. - public long SessionLogEntryId { get; set; } - - /// TR-PLANNED-013: Tag value. - [Required] - [MaxLength(256)] - public required string Tag { get; set; } - - /// TR-PLANNED-013: Navigation to parent entry. - public SessionLogEntryEntity? SessionLogEntry { get; set; } -} +using System.ComponentModel.DataAnnotations; + +namespace McpServer.Support.Mcp.Storage.Entities; + +/// +/// TR-PLANNED-013: 4NF tag entity. One row per tag on a session log entry. +/// FR-SUPPORT-010: Eliminates multi-valued dependency on tags. +/// +public sealed class SessionLogTurnTagEntity +{ + /// TR-PLANNED-013: Auto-generated primary key. + [Key] + public long Id { get; set; } + + /// TR-MCP-MT-003: Workspace discriminator for multi-tenant data isolation. + public string WorkspaceId { get; set; } = string.Empty; + + /// TR-PLANNED-013: Foreign key to parent entry. + public long SessionLogTurnId { get; set; } + + /// TR-PLANNED-013: Tag value. + [Required] + [MaxLength(256)] + public required string Tag { get; set; } + + /// TR-PLANNED-013: Navigation to parent entry. + public SessionLogTurnEntity? SessionLogTurn { get; set; } +} + diff --git a/src/McpServer.Support.Mcp/Storage/McpDbContext.cs b/src/McpServer.Support.Mcp/Storage/McpDbContext.cs index 4670ac1c..464c9f9d 100644 --- a/src/McpServer.Support.Mcp/Storage/McpDbContext.cs +++ b/src/McpServer.Support.Mcp/Storage/McpDbContext.cs @@ -34,16 +34,16 @@ public McpDbContext(DbContextOptions options, WorkspaceContext? wo public DbSet SessionLogs => Set(); /// TR-PLANNED-013: Session log entries (MVP-SUPPORT-011). - public DbSet SessionLogEntries => Set(); + public DbSet SessionLogTurns => Set(); /// TR-PLANNED-013: Session log entry actions (MVP-SUPPORT-011). public DbSet SessionLogActions => Set(); /// TR-PLANNED-013: Session log entry tags (MVP-SUPPORT-011). - public DbSet SessionLogEntryTags => Set(); + public DbSet SessionLogTurnTags => Set(); /// TR-PLANNED-013: Session log entry context items (MVP-SUPPORT-011). - public DbSet SessionLogEntryContexts => Set(); + public DbSet SessionLogTurnContexts => Set(); /// TR-PLANNED-013: Session log entry processing dialog items (MVP-SUPPORT-011). public DbSet SessionLogProcessingDialogs => Set(); @@ -52,7 +52,7 @@ public McpDbContext(DbContextOptions options, WorkspaceContext? wo public DbSet SessionLogCommits => Set(); /// TR-PLANNED-013: Session log entry string-list items (design decisions, requirements, files modified, blockers). - public DbSet SessionLogEntryStringLists => Set(); + public DbSet SessionLogTurnStringLists => Set(); /// Tool definitions discoverable by keyword search. public DbSet ToolDefinitions => Set(); @@ -100,7 +100,7 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) e.HasIndex(x => x.LastUpdated); }); - modelBuilder.Entity(e => + modelBuilder.Entity(e => { e.HasIndex(x => new { x.SessionLogId, x.RequestId }).IsUnique(); e.HasOne(x => x.SessionLog) @@ -111,51 +111,51 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity(e => { - e.HasOne(x => x.SessionLogEntry) + e.HasOne(x => x.SessionLogTurn) .WithMany(x => x.Actions) - .HasForeignKey(x => x.SessionLogEntryId) + .HasForeignKey(x => x.SessionLogTurnId) .OnDelete(DeleteBehavior.Cascade); }); - modelBuilder.Entity(e => + modelBuilder.Entity(e => { - e.HasOne(x => x.SessionLogEntry) + e.HasOne(x => x.SessionLogTurn) .WithMany(x => x.Tags) - .HasForeignKey(x => x.SessionLogEntryId) + .HasForeignKey(x => x.SessionLogTurnId) .OnDelete(DeleteBehavior.Cascade); }); - modelBuilder.Entity(e => + modelBuilder.Entity(e => { - e.HasOne(x => x.SessionLogEntry) + e.HasOne(x => x.SessionLogTurn) .WithMany(x => x.ContextItems) - .HasForeignKey(x => x.SessionLogEntryId) + .HasForeignKey(x => x.SessionLogTurnId) .OnDelete(DeleteBehavior.Cascade); }); modelBuilder.Entity(e => { - e.HasOne(x => x.SessionLogEntry) + e.HasOne(x => x.SessionLogTurn) .WithMany(x => x.ProcessingDialog) - .HasForeignKey(x => x.SessionLogEntryId) + .HasForeignKey(x => x.SessionLogTurnId) .OnDelete(DeleteBehavior.Cascade); }); modelBuilder.Entity(e => { - e.HasOne(x => x.SessionLogEntry) + e.HasOne(x => x.SessionLogTurn) .WithMany(x => x.Commits) - .HasForeignKey(x => x.SessionLogEntryId) + .HasForeignKey(x => x.SessionLogTurnId) .OnDelete(DeleteBehavior.Cascade); }); - modelBuilder.Entity(e => + modelBuilder.Entity(e => { - e.HasOne(x => x.SessionLogEntry) + e.HasOne(x => x.SessionLogTurn) .WithMany(x => x.StringListItems) - .HasForeignKey(x => x.SessionLogEntryId) + .HasForeignKey(x => x.SessionLogTurnId) .OnDelete(DeleteBehavior.Cascade); - e.HasIndex(x => new { x.SessionLogEntryId, x.ListType }); + e.HasIndex(x => new { x.SessionLogTurnId, x.ListType }); }); modelBuilder.Entity(e => @@ -211,13 +211,13 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity().HasQueryFilter(e => _workspaceId == "" || e.WorkspaceId == _workspaceId); modelBuilder.Entity().HasQueryFilter(e => _workspaceId == "" || e.WorkspaceId == _workspaceId); modelBuilder.Entity().HasQueryFilter(e => _workspaceId == "" || e.WorkspaceId == _workspaceId); - modelBuilder.Entity().HasQueryFilter(e => _workspaceId == "" || e.WorkspaceId == _workspaceId); + modelBuilder.Entity().HasQueryFilter(e => _workspaceId == "" || e.WorkspaceId == _workspaceId); modelBuilder.Entity().HasQueryFilter(e => _workspaceId == "" || e.WorkspaceId == _workspaceId); - modelBuilder.Entity().HasQueryFilter(e => _workspaceId == "" || e.WorkspaceId == _workspaceId); - modelBuilder.Entity().HasQueryFilter(e => _workspaceId == "" || e.WorkspaceId == _workspaceId); + modelBuilder.Entity().HasQueryFilter(e => _workspaceId == "" || e.WorkspaceId == _workspaceId); + modelBuilder.Entity().HasQueryFilter(e => _workspaceId == "" || e.WorkspaceId == _workspaceId); modelBuilder.Entity().HasQueryFilter(e => _workspaceId == "" || e.WorkspaceId == _workspaceId); modelBuilder.Entity().HasQueryFilter(e => _workspaceId == "" || e.WorkspaceId == _workspaceId); - modelBuilder.Entity().HasQueryFilter(e => _workspaceId == "" || e.WorkspaceId == _workspaceId); + modelBuilder.Entity().HasQueryFilter(e => _workspaceId == "" || e.WorkspaceId == _workspaceId); modelBuilder.Entity().HasQueryFilter(e => _workspaceId == "" || e.WorkspaceId == _workspaceId); modelBuilder.Entity().HasQueryFilter(e => _workspaceId == "" || e.WorkspaceId == _workspaceId); modelBuilder.Entity().HasQueryFilter(e => _workspaceId == "" || e.WorkspaceId == _workspaceId); @@ -229,10 +229,10 @@ protected override void OnModelCreating(ModelBuilder modelBuilder) modelBuilder.Entity().HasIndex(e => e.WorkspaceId); modelBuilder.Entity().HasIndex(e => e.WorkspaceId); modelBuilder.Entity().HasIndex(e => e.WorkspaceId); - modelBuilder.Entity().HasIndex(e => e.WorkspaceId); + modelBuilder.Entity().HasIndex(e => e.WorkspaceId); modelBuilder.Entity().HasIndex(e => e.WorkspaceId); - modelBuilder.Entity().HasIndex(e => e.WorkspaceId); - modelBuilder.Entity().HasIndex(e => e.WorkspaceId); + modelBuilder.Entity().HasIndex(e => e.WorkspaceId); + modelBuilder.Entity().HasIndex(e => e.WorkspaceId); modelBuilder.Entity().HasIndex(e => e.WorkspaceId); modelBuilder.Entity().HasIndex(e => e.WorkspaceId); modelBuilder.Entity().HasIndex(e => e.WorkspaceId); @@ -299,3 +299,4 @@ private void SanitizeStrings() } } } + diff --git a/src/McpServer.Support.Mcp/Storage/Migrations/20260212160034_AddSessionLogTables.Designer.cs b/src/McpServer.Support.Mcp/Storage/Migrations/20260212160034_AddSessionLogTables.Designer.cs index 6ec2a1b5..158084e5 100644 --- a/src/McpServer.Support.Mcp/Storage/Migrations/20260212160034_AddSessionLogTables.Designer.cs +++ b/src/McpServer.Support.Mcp/Storage/Migrations/20260212160034_AddSessionLogTables.Designer.cs @@ -99,7 +99,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("Order") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Status") @@ -112,7 +112,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.ToTable("SessionLogActions"); }); @@ -206,7 +206,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.ToTable("SessionLogs"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnContextEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -220,17 +220,17 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("Ordinal") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); - b.ToTable("SessionLogEntryContexts"); + b.ToTable("SessionLogTurnContexts"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -294,16 +294,16 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasIndex("SessionLogId", "RequestId") .IsUnique(); - b.ToTable("SessionLogEntries"); + b.ToTable("SessionLogTurns"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnTagEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Tag") @@ -313,9 +313,9 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); - b.ToTable("SessionLogEntryTags"); + b.ToTable("SessionLogTurnTags"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.ContextChunkEntity", b => @@ -331,27 +331,27 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogActionEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("Actions") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnContextEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("ContextItems") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntity", "SessionLog") .WithMany("Entries") @@ -362,15 +362,15 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Navigation("SessionLog"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnTagEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("Tags") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.ContextDocumentEntity", b => @@ -383,7 +383,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Navigation("Entries"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.Navigation("Actions"); @@ -395,3 +395,4 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) } } } + diff --git a/src/McpServer.Support.Mcp/Storage/Migrations/20260212160034_AddSessionLogTables.cs b/src/McpServer.Support.Mcp/Storage/Migrations/20260212160034_AddSessionLogTables.cs index dbc2478c..f9de8f22 100644 --- a/src/McpServer.Support.Mcp/Storage/Migrations/20260212160034_AddSessionLogTables.cs +++ b/src/McpServer.Support.Mcp/Storage/Migrations/20260212160034_AddSessionLogTables.cs @@ -45,7 +45,7 @@ protected override void Up(MigrationBuilder migrationBuilder) }); migrationBuilder.CreateTable( - name: "SessionLogEntries", + name: "SessionLogTurns", columns: table => new { Id = table.Column(type: "INTEGER", nullable: false) @@ -69,9 +69,9 @@ protected override void Up(MigrationBuilder migrationBuilder) }, constraints: table => { - table.PrimaryKey("PK_SessionLogEntries", x => x.Id); + table.PrimaryKey("PK_SessionLogTurns", x => x.Id); table.ForeignKey( - name: "FK_SessionLogEntries_SessionLogs_SessionLogId", + name: "FK_SessionLogTurns_SessionLogs_SessionLogId", column: x => x.SessionLogId, principalTable: "SessionLogs", principalColumn: "Id", @@ -84,7 +84,7 @@ protected override void Up(MigrationBuilder migrationBuilder) { Id = table.Column(type: "INTEGER", nullable: false) .Annotation("Sqlite:Autoincrement", true), - SessionLogEntryId = table.Column(type: "INTEGER", nullable: false), + SessionLogTurnId = table.Column(type: "INTEGER", nullable: false), Order = table.Column(type: "INTEGER", nullable: false), Description = table.Column(type: "TEXT", nullable: true), Type = table.Column(type: "TEXT", maxLength: 64, nullable: true), @@ -95,74 +95,74 @@ protected override void Up(MigrationBuilder migrationBuilder) { table.PrimaryKey("PK_SessionLogActions", x => x.Id); table.ForeignKey( - name: "FK_SessionLogActions_SessionLogEntries_SessionLogEntryId", - column: x => x.SessionLogEntryId, - principalTable: "SessionLogEntries", + name: "FK_SessionLogActions_SessionLogTurns_SessionLogTurnId", + column: x => x.SessionLogTurnId, + principalTable: "SessionLogTurns", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( - name: "SessionLogEntryContexts", + name: "SessionLogTurnContexts", columns: table => new { Id = table.Column(type: "INTEGER", nullable: false) .Annotation("Sqlite:Autoincrement", true), - SessionLogEntryId = table.Column(type: "INTEGER", nullable: false), + SessionLogTurnId = table.Column(type: "INTEGER", nullable: false), Ordinal = table.Column(type: "INTEGER", nullable: false), ContextItem = table.Column(type: "TEXT", maxLength: 2048, nullable: false) }, constraints: table => { - table.PrimaryKey("PK_SessionLogEntryContexts", x => x.Id); + table.PrimaryKey("PK_SessionLogTurnContexts", x => x.Id); table.ForeignKey( - name: "FK_SessionLogEntryContexts_SessionLogEntries_SessionLogEntryId", - column: x => x.SessionLogEntryId, - principalTable: "SessionLogEntries", + name: "FK_SessionLogTurnContexts_SessionLogTurns_SessionLogTurnId", + column: x => x.SessionLogTurnId, + principalTable: "SessionLogTurns", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( - name: "SessionLogEntryTags", + name: "SessionLogTurnTags", columns: table => new { Id = table.Column(type: "INTEGER", nullable: false) .Annotation("Sqlite:Autoincrement", true), - SessionLogEntryId = table.Column(type: "INTEGER", nullable: false), + SessionLogTurnId = table.Column(type: "INTEGER", nullable: false), Tag = table.Column(type: "TEXT", maxLength: 256, nullable: false) }, constraints: table => { - table.PrimaryKey("PK_SessionLogEntryTags", x => x.Id); + table.PrimaryKey("PK_SessionLogTurnTags", x => x.Id); table.ForeignKey( - name: "FK_SessionLogEntryTags_SessionLogEntries_SessionLogEntryId", - column: x => x.SessionLogEntryId, - principalTable: "SessionLogEntries", + name: "FK_SessionLogTurnTags_SessionLogTurns_SessionLogTurnId", + column: x => x.SessionLogTurnId, + principalTable: "SessionLogTurns", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateIndex( - name: "IX_SessionLogActions_SessionLogEntryId", + name: "IX_SessionLogActions_SessionLogTurnId", table: "SessionLogActions", - column: "SessionLogEntryId"); + column: "SessionLogTurnId"); migrationBuilder.CreateIndex( - name: "IX_SessionLogEntries_SessionLogId_RequestId", - table: "SessionLogEntries", + name: "IX_SessionLogTurns_SessionLogId_RequestId", + table: "SessionLogTurns", columns: new[] { "SessionLogId", "RequestId" }, unique: true); migrationBuilder.CreateIndex( - name: "IX_SessionLogEntryContexts_SessionLogEntryId", - table: "SessionLogEntryContexts", - column: "SessionLogEntryId"); + name: "IX_SessionLogTurnContexts_SessionLogTurnId", + table: "SessionLogTurnContexts", + column: "SessionLogTurnId"); migrationBuilder.CreateIndex( - name: "IX_SessionLogEntryTags_SessionLogEntryId", - table: "SessionLogEntryTags", - column: "SessionLogEntryId"); + name: "IX_SessionLogTurnTags_SessionLogTurnId", + table: "SessionLogTurnTags", + column: "SessionLogTurnId"); migrationBuilder.CreateIndex( name: "IX_SessionLogs_LastUpdated", @@ -193,16 +193,17 @@ protected override void Down(MigrationBuilder migrationBuilder) name: "SessionLogActions"); migrationBuilder.DropTable( - name: "SessionLogEntryContexts"); + name: "SessionLogTurnContexts"); migrationBuilder.DropTable( - name: "SessionLogEntryTags"); + name: "SessionLogTurnTags"); migrationBuilder.DropTable( - name: "SessionLogEntries"); + name: "SessionLogTurns"); migrationBuilder.DropTable( name: "SessionLogs"); } } } + diff --git a/src/McpServer.Support.Mcp/Storage/Migrations/20260212165804_AddSessionLogContentHash.Designer.cs b/src/McpServer.Support.Mcp/Storage/Migrations/20260212165804_AddSessionLogContentHash.Designer.cs index 70606306..06ad5482 100644 --- a/src/McpServer.Support.Mcp/Storage/Migrations/20260212165804_AddSessionLogContentHash.Designer.cs +++ b/src/McpServer.Support.Mcp/Storage/Migrations/20260212165804_AddSessionLogContentHash.Designer.cs @@ -99,7 +99,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("Order") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Status") @@ -112,7 +112,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.ToTable("SessionLogActions"); }); @@ -210,7 +210,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.ToTable("SessionLogs"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnContextEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -224,17 +224,17 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("Ordinal") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); - b.ToTable("SessionLogEntryContexts"); + b.ToTable("SessionLogTurnContexts"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -298,16 +298,16 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasIndex("SessionLogId", "RequestId") .IsUnique(); - b.ToTable("SessionLogEntries"); + b.ToTable("SessionLogTurns"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnTagEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Tag") @@ -317,9 +317,9 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); - b.ToTable("SessionLogEntryTags"); + b.ToTable("SessionLogTurnTags"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.ContextChunkEntity", b => @@ -335,27 +335,27 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogActionEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("Actions") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnContextEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("ContextItems") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntity", "SessionLog") .WithMany("Entries") @@ -366,15 +366,15 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Navigation("SessionLog"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnTagEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("Tags") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.ContextDocumentEntity", b => @@ -387,7 +387,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Navigation("Entries"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.Navigation("Actions"); @@ -399,3 +399,4 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) } } } + diff --git a/src/McpServer.Support.Mcp/Storage/Migrations/20260212170806_AddSessionLogSourceFilePath.Designer.cs b/src/McpServer.Support.Mcp/Storage/Migrations/20260212170806_AddSessionLogSourceFilePath.Designer.cs index c895bbe3..4cb640ba 100644 --- a/src/McpServer.Support.Mcp/Storage/Migrations/20260212170806_AddSessionLogSourceFilePath.Designer.cs +++ b/src/McpServer.Support.Mcp/Storage/Migrations/20260212170806_AddSessionLogSourceFilePath.Designer.cs @@ -99,7 +99,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("Order") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Status") @@ -112,7 +112,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.ToTable("SessionLogActions"); }); @@ -214,7 +214,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.ToTable("SessionLogs"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnContextEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -228,17 +228,17 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("Ordinal") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); - b.ToTable("SessionLogEntryContexts"); + b.ToTable("SessionLogTurnContexts"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -302,16 +302,16 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasIndex("SessionLogId", "RequestId") .IsUnique(); - b.ToTable("SessionLogEntries"); + b.ToTable("SessionLogTurns"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnTagEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Tag") @@ -321,9 +321,9 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); - b.ToTable("SessionLogEntryTags"); + b.ToTable("SessionLogTurnTags"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.ContextChunkEntity", b => @@ -339,27 +339,27 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogActionEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("Actions") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnContextEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("ContextItems") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntity", "SessionLog") .WithMany("Entries") @@ -370,15 +370,15 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Navigation("SessionLog"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnTagEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("Tags") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.ContextDocumentEntity", b => @@ -391,7 +391,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Navigation("Entries"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.Navigation("Actions"); @@ -403,3 +403,4 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) } } } + diff --git a/src/McpServer.Support.Mcp/Storage/Migrations/20260212172109_AddProcessingDialog.Designer.cs b/src/McpServer.Support.Mcp/Storage/Migrations/20260212172109_AddProcessingDialog.Designer.cs index a3170c6c..797b060e 100644 --- a/src/McpServer.Support.Mcp/Storage/Migrations/20260212172109_AddProcessingDialog.Designer.cs +++ b/src/McpServer.Support.Mcp/Storage/Migrations/20260212172109_AddProcessingDialog.Designer.cs @@ -99,7 +99,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("Order") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Status") @@ -112,7 +112,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.ToTable("SessionLogActions"); }); @@ -214,7 +214,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.ToTable("SessionLogs"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnContextEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -228,17 +228,17 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("Ordinal") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); - b.ToTable("SessionLogEntryContexts"); + b.ToTable("SessionLogTurnContexts"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -302,16 +302,16 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasIndex("SessionLogId", "RequestId") .IsUnique(); - b.ToTable("SessionLogEntries"); + b.ToTable("SessionLogTurns"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnTagEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Tag") @@ -321,9 +321,9 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); - b.ToTable("SessionLogEntryTags"); + b.ToTable("SessionLogTurnTags"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogProcessingDialogEntity", b => @@ -348,7 +348,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) .HasMaxLength(64) .HasColumnType("TEXT"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Timestamp") @@ -356,7 +356,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.ToTable("SessionLogProcessingDialogs"); }); @@ -374,27 +374,27 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogActionEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("Actions") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnContextEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("ContextItems") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntity", "SessionLog") .WithMany("Entries") @@ -405,26 +405,26 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Navigation("SessionLog"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnTagEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("Tags") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogProcessingDialogEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("ProcessingDialog") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.ContextDocumentEntity", b => @@ -437,7 +437,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Navigation("Entries"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.Navigation("Actions"); @@ -451,3 +451,4 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) } } } + diff --git a/src/McpServer.Support.Mcp/Storage/Migrations/20260212172109_AddProcessingDialog.cs b/src/McpServer.Support.Mcp/Storage/Migrations/20260212172109_AddProcessingDialog.cs index dbe882fc..20c6c89c 100644 --- a/src/McpServer.Support.Mcp/Storage/Migrations/20260212172109_AddProcessingDialog.cs +++ b/src/McpServer.Support.Mcp/Storage/Migrations/20260212172109_AddProcessingDialog.cs @@ -18,7 +18,7 @@ protected override void Up(MigrationBuilder migrationBuilder) { Id = table.Column(type: "INTEGER", nullable: false) .Annotation("Sqlite:Autoincrement", true), - SessionLogEntryId = table.Column(type: "INTEGER", nullable: false), + SessionLogTurnId = table.Column(type: "INTEGER", nullable: false), Ordinal = table.Column(type: "INTEGER", nullable: false), Timestamp = table.Column(type: "TEXT", nullable: false), Role = table.Column(type: "TEXT", maxLength: 64, nullable: false), @@ -29,17 +29,17 @@ protected override void Up(MigrationBuilder migrationBuilder) { table.PrimaryKey("PK_SessionLogProcessingDialogs", x => x.Id); table.ForeignKey( - name: "FK_SessionLogProcessingDialogs_SessionLogEntries_SessionLogEntryId", - column: x => x.SessionLogEntryId, - principalTable: "SessionLogEntries", + name: "FK_SessionLogProcessingDialogs_SessionLogTurns_SessionLogTurnId", + column: x => x.SessionLogTurnId, + principalTable: "SessionLogTurns", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateIndex( - name: "IX_SessionLogProcessingDialogs_SessionLogEntryId", + name: "IX_SessionLogProcessingDialogs_SessionLogTurnId", table: "SessionLogProcessingDialogs", - column: "SessionLogEntryId"); + column: "SessionLogTurnId"); } /// @@ -50,3 +50,4 @@ protected override void Down(MigrationBuilder migrationBuilder) } } } + diff --git a/src/McpServer.Support.Mcp/Storage/Migrations/20260221034628_AddWorkspaceEntity.Designer.cs b/src/McpServer.Support.Mcp/Storage/Migrations/20260221034628_AddWorkspaceEntity.Designer.cs index 1acac41f..16c1e24d 100644 --- a/src/McpServer.Support.Mcp/Storage/Migrations/20260221034628_AddWorkspaceEntity.Designer.cs +++ b/src/McpServer.Support.Mcp/Storage/Migrations/20260221034628_AddWorkspaceEntity.Designer.cs @@ -1,4 +1,4 @@ -// +// using System; using McpServer.Support.Mcp.Storage; using Microsoft.EntityFrameworkCore; @@ -102,7 +102,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("Order") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Status") @@ -115,7 +115,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.ToTable("SessionLogActions"); }); @@ -217,7 +217,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.ToTable("SessionLogs"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnContextEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -231,17 +231,17 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("Ordinal") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); - b.ToTable("SessionLogEntryContexts"); + b.ToTable("SessionLogTurnContexts"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -305,16 +305,16 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasIndex("SessionLogId", "RequestId") .IsUnique(); - b.ToTable("SessionLogEntries"); + b.ToTable("SessionLogTurns"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnTagEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Tag") @@ -324,9 +324,9 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); - b.ToTable("SessionLogEntryTags"); + b.ToTable("SessionLogTurnTags"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogProcessingDialogEntity", b => @@ -351,7 +351,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) .HasMaxLength(64) .HasColumnType("TEXT"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Timestamp") @@ -359,7 +359,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.ToTable("SessionLogProcessingDialogs"); }); @@ -418,27 +418,27 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogActionEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("Actions") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnContextEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("ContextItems") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntity", "SessionLog") .WithMany("Entries") @@ -449,26 +449,26 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Navigation("SessionLog"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnTagEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("Tags") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogProcessingDialogEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("ProcessingDialog") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.ContextDocumentEntity", b => @@ -481,7 +481,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Navigation("Entries"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.Navigation("Actions"); @@ -495,3 +495,4 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) } } } + diff --git a/src/McpServer.Support.Mcp/Storage/Migrations/20260221040625_AddToolRegistryAndBuckets.Designer.cs b/src/McpServer.Support.Mcp/Storage/Migrations/20260221040625_AddToolRegistryAndBuckets.Designer.cs index 87fd20c4..acd3b7ca 100644 --- a/src/McpServer.Support.Mcp/Storage/Migrations/20260221040625_AddToolRegistryAndBuckets.Designer.cs +++ b/src/McpServer.Support.Mcp/Storage/Migrations/20260221040625_AddToolRegistryAndBuckets.Designer.cs @@ -1,4 +1,4 @@ -// +// using System; using McpServer.Support.Mcp.Storage; using Microsoft.EntityFrameworkCore; @@ -102,7 +102,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("Order") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Status") @@ -115,7 +115,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.ToTable("SessionLogActions"); }); @@ -217,7 +217,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.ToTable("SessionLogs"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnContextEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -231,17 +231,17 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("Ordinal") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); - b.ToTable("SessionLogEntryContexts"); + b.ToTable("SessionLogTurnContexts"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -305,16 +305,16 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasIndex("SessionLogId", "RequestId") .IsUnique(); - b.ToTable("SessionLogEntries"); + b.ToTable("SessionLogTurns"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnTagEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Tag") @@ -324,9 +324,9 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); - b.ToTable("SessionLogEntryTags"); + b.ToTable("SessionLogTurnTags"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogProcessingDialogEntity", b => @@ -351,7 +351,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) .HasMaxLength(64) .HasColumnType("TEXT"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Timestamp") @@ -359,7 +359,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.ToTable("SessionLogProcessingDialogs"); }); @@ -535,27 +535,27 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogActionEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("Actions") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnContextEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("ContextItems") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntity", "SessionLog") .WithMany("Entries") @@ -566,26 +566,26 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Navigation("SessionLog"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnTagEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("Tags") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogProcessingDialogEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("ProcessingDialog") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.ToolDefinitionEntity", b => @@ -619,7 +619,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Navigation("Entries"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.Navigation("Actions"); @@ -638,3 +638,4 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) } } } + diff --git a/src/McpServer.Support.Mcp/Storage/Migrations/20260224205442_PendingModelSync.Designer.cs b/src/McpServer.Support.Mcp/Storage/Migrations/20260224205442_PendingModelSync.Designer.cs index 46ceb440..0b95d08f 100644 --- a/src/McpServer.Support.Mcp/Storage/Migrations/20260224205442_PendingModelSync.Designer.cs +++ b/src/McpServer.Support.Mcp/Storage/Migrations/20260224205442_PendingModelSync.Designer.cs @@ -1,4 +1,4 @@ -// +// using System; using McpServer.Support.Mcp.Storage; using Microsoft.EntityFrameworkCore; @@ -267,7 +267,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("Order") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Status") @@ -280,7 +280,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.ToTable("SessionLogActions"); }); @@ -382,7 +382,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.ToTable("SessionLogs"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnContextEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -396,17 +396,17 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("Ordinal") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); - b.ToTable("SessionLogEntryContexts"); + b.ToTable("SessionLogTurnContexts"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -470,16 +470,16 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasIndex("SessionLogId", "RequestId") .IsUnique(); - b.ToTable("SessionLogEntries"); + b.ToTable("SessionLogTurns"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnTagEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Tag") @@ -489,9 +489,9 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); - b.ToTable("SessionLogEntryTags"); + b.ToTable("SessionLogTurnTags"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogProcessingDialogEntity", b => @@ -516,7 +516,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) .HasMaxLength(64) .HasColumnType("TEXT"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Timestamp") @@ -524,7 +524,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.ToTable("SessionLogProcessingDialogs"); }); @@ -670,27 +670,27 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogActionEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("Actions") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnContextEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("ContextItems") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntity", "SessionLog") .WithMany("Entries") @@ -701,26 +701,26 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Navigation("SessionLog"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnTagEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("Tags") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogProcessingDialogEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("ProcessingDialog") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.ToolDefinitionTagEntity", b => @@ -749,7 +749,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Navigation("Entries"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.Navigation("Actions"); @@ -768,3 +768,4 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) } } } + diff --git a/src/McpServer.Support.Mcp/Storage/Migrations/20260226113035_AddWorkspaceIdMultiTenant.Designer.cs b/src/McpServer.Support.Mcp/Storage/Migrations/20260226113035_AddWorkspaceIdMultiTenant.Designer.cs index 24642e94..e9c1271d 100644 --- a/src/McpServer.Support.Mcp/Storage/Migrations/20260226113035_AddWorkspaceIdMultiTenant.Designer.cs +++ b/src/McpServer.Support.Mcp/Storage/Migrations/20260226113035_AddWorkspaceIdMultiTenant.Designer.cs @@ -1,4 +1,4 @@ -// +// using System; using McpServer.Support.Mcp.Storage; using Microsoft.EntityFrameworkCore; @@ -297,7 +297,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("Order") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Status") @@ -314,7 +314,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.HasIndex("WorkspaceId"); @@ -424,7 +424,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.ToTable("SessionLogs"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnContextEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -438,7 +438,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("Ordinal") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("WorkspaceId") @@ -447,14 +447,14 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.HasIndex("WorkspaceId"); - b.ToTable("SessionLogEntryContexts"); + b.ToTable("SessionLogTurnContexts"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -524,16 +524,16 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasIndex("SessionLogId", "RequestId") .IsUnique(); - b.ToTable("SessionLogEntries"); + b.ToTable("SessionLogTurns"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnTagEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Tag") @@ -547,11 +547,11 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.HasIndex("WorkspaceId"); - b.ToTable("SessionLogEntryTags"); + b.ToTable("SessionLogTurnTags"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogProcessingDialogEntity", b => @@ -576,7 +576,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) .HasMaxLength(64) .HasColumnType("TEXT"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Timestamp") @@ -588,7 +588,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.HasIndex("WorkspaceId"); @@ -754,27 +754,27 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogActionEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("Actions") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnContextEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("ContextItems") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntity", "SessionLog") .WithMany("Entries") @@ -785,26 +785,26 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Navigation("SessionLog"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnTagEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("Tags") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogProcessingDialogEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("ProcessingDialog") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.ToolDefinitionTagEntity", b => @@ -833,7 +833,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Navigation("Entries"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.Navigation("Actions"); @@ -852,3 +852,4 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) } } } + diff --git a/src/McpServer.Support.Mcp/Storage/Migrations/20260226113035_AddWorkspaceIdMultiTenant.cs b/src/McpServer.Support.Mcp/Storage/Migrations/20260226113035_AddWorkspaceIdMultiTenant.cs index a488d5e7..31c5dc67 100644 --- a/src/McpServer.Support.Mcp/Storage/Migrations/20260226113035_AddWorkspaceIdMultiTenant.cs +++ b/src/McpServer.Support.Mcp/Storage/Migrations/20260226113035_AddWorkspaceIdMultiTenant.cs @@ -1,4 +1,4 @@ -using Microsoft.EntityFrameworkCore.Migrations; +using Microsoft.EntityFrameworkCore.Migrations; #nullable disable @@ -47,21 +47,21 @@ protected override void Up(MigrationBuilder migrationBuilder) migrationBuilder.AddColumn( name: "WorkspaceId", - table: "SessionLogEntryTags", + table: "SessionLogTurnTags", type: "TEXT", nullable: false, defaultValue: ""); migrationBuilder.AddColumn( name: "WorkspaceId", - table: "SessionLogEntryContexts", + table: "SessionLogTurnContexts", type: "TEXT", nullable: false, defaultValue: ""); migrationBuilder.AddColumn( name: "WorkspaceId", - table: "SessionLogEntries", + table: "SessionLogTurns", type: "TEXT", nullable: false, defaultValue: ""); @@ -134,18 +134,18 @@ protected override void Up(MigrationBuilder migrationBuilder) column: "WorkspaceId"); migrationBuilder.CreateIndex( - name: "IX_SessionLogEntryTags_WorkspaceId", - table: "SessionLogEntryTags", + name: "IX_SessionLogTurnTags_WorkspaceId", + table: "SessionLogTurnTags", column: "WorkspaceId"); migrationBuilder.CreateIndex( - name: "IX_SessionLogEntryContexts_WorkspaceId", - table: "SessionLogEntryContexts", + name: "IX_SessionLogTurnContexts_WorkspaceId", + table: "SessionLogTurnContexts", column: "WorkspaceId"); migrationBuilder.CreateIndex( - name: "IX_SessionLogEntries_WorkspaceId", - table: "SessionLogEntries", + name: "IX_SessionLogTurns_WorkspaceId", + table: "SessionLogTurns", column: "WorkspaceId"); migrationBuilder.CreateIndex( @@ -203,16 +203,16 @@ protected override void Down(MigrationBuilder migrationBuilder) table: "SessionLogProcessingDialogs"); migrationBuilder.DropIndex( - name: "IX_SessionLogEntryTags_WorkspaceId", - table: "SessionLogEntryTags"); + name: "IX_SessionLogTurnTags_WorkspaceId", + table: "SessionLogTurnTags"); migrationBuilder.DropIndex( - name: "IX_SessionLogEntryContexts_WorkspaceId", - table: "SessionLogEntryContexts"); + name: "IX_SessionLogTurnContexts_WorkspaceId", + table: "SessionLogTurnContexts"); migrationBuilder.DropIndex( - name: "IX_SessionLogEntries_WorkspaceId", - table: "SessionLogEntries"); + name: "IX_SessionLogTurns_WorkspaceId", + table: "SessionLogTurns"); migrationBuilder.DropIndex( name: "IX_SessionLogActions_WorkspaceId", @@ -260,15 +260,15 @@ protected override void Down(MigrationBuilder migrationBuilder) migrationBuilder.DropColumn( name: "WorkspaceId", - table: "SessionLogEntryTags"); + table: "SessionLogTurnTags"); migrationBuilder.DropColumn( name: "WorkspaceId", - table: "SessionLogEntryContexts"); + table: "SessionLogTurnContexts"); migrationBuilder.DropColumn( name: "WorkspaceId", - table: "SessionLogEntries"); + table: "SessionLogTurns"); migrationBuilder.DropColumn( name: "WorkspaceId", @@ -296,3 +296,4 @@ protected override void Down(MigrationBuilder migrationBuilder) } } } + diff --git a/src/McpServer.Support.Mcp/Storage/Migrations/20260301111848_AddSessionLogCommitsAndStringLists.Designer.cs b/src/McpServer.Support.Mcp/Storage/Migrations/20260301111848_AddSessionLogCommitsAndStringLists.Designer.cs index 55b91dc5..55c7a252 100644 --- a/src/McpServer.Support.Mcp/Storage/Migrations/20260301111848_AddSessionLogCommitsAndStringLists.Designer.cs +++ b/src/McpServer.Support.Mcp/Storage/Migrations/20260301111848_AddSessionLogCommitsAndStringLists.Designer.cs @@ -1,4 +1,4 @@ -// +// using System; using McpServer.Support.Mcp.Storage; using Microsoft.EntityFrameworkCore; @@ -297,7 +297,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("Order") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Status") @@ -314,7 +314,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.HasIndex("WorkspaceId"); @@ -347,7 +347,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("Ordinal") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Sha") @@ -360,7 +360,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.ToTable("SessionLogCommits"); }); @@ -468,7 +468,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.ToTable("SessionLogs"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnContextEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -482,7 +482,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("Ordinal") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("WorkspaceId") @@ -491,14 +491,14 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.HasIndex("WorkspaceId"); - b.ToTable("SessionLogEntryContexts"); + b.ToTable("SessionLogTurnContexts"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -568,10 +568,10 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasIndex("SessionLogId", "RequestId") .IsUnique(); - b.ToTable("SessionLogEntries"); + b.ToTable("SessionLogTurns"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryStringListEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnStringListEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -585,7 +585,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Property("Ordinal") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Value") @@ -598,18 +598,18 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId", "ListType"); + b.HasIndex("SessionLogTurnId", "ListType"); - b.ToTable("SessionLogEntryStringLists"); + b.ToTable("SessionLogTurnStringLists"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnTagEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Tag") @@ -623,11 +623,11 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.HasIndex("WorkspaceId"); - b.ToTable("SessionLogEntryTags"); + b.ToTable("SessionLogTurnTags"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogProcessingDialogEntity", b => @@ -652,7 +652,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) .HasMaxLength(64) .HasColumnType("TEXT"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Timestamp") @@ -664,7 +664,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.HasIndex("WorkspaceId"); @@ -830,38 +830,38 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogActionEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("Actions") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogCommitEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("Commits") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnContextEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("ContextItems") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntity", "SessionLog") .WithMany("Entries") @@ -872,37 +872,37 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Navigation("SessionLog"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryStringListEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnStringListEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("StringListItems") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnTagEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("Tags") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogProcessingDialogEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("ProcessingDialog") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.ToolDefinitionTagEntity", b => @@ -931,7 +931,7 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) b.Navigation("Entries"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.Navigation("Actions"); @@ -954,3 +954,4 @@ protected override void BuildTargetModel(ModelBuilder modelBuilder) } } } + diff --git a/src/McpServer.Support.Mcp/Storage/Migrations/20260301111848_AddSessionLogCommitsAndStringLists.cs b/src/McpServer.Support.Mcp/Storage/Migrations/20260301111848_AddSessionLogCommitsAndStringLists.cs index 2a8cbdd4..3aa26e21 100644 --- a/src/McpServer.Support.Mcp/Storage/Migrations/20260301111848_AddSessionLogCommitsAndStringLists.cs +++ b/src/McpServer.Support.Mcp/Storage/Migrations/20260301111848_AddSessionLogCommitsAndStringLists.cs @@ -1,4 +1,4 @@ -using System; +using System; using Microsoft.EntityFrameworkCore.Migrations; #nullable disable @@ -11,10 +11,10 @@ public partial class AddSessionLogCommitsAndStringLists : Migration private static readonly string[] s_postgresIdentityTables = { "SessionLogs", - "SessionLogEntries", + "SessionLogTurns", "SessionLogActions", - "SessionLogEntryContexts", - "SessionLogEntryTags", + "SessionLogTurnContexts", + "SessionLogTurnTags", "SessionLogProcessingDialogs", "ToolBuckets", "ToolDefinitions", @@ -22,14 +22,14 @@ public partial class AddSessionLogCommitsAndStringLists : Migration "AgentEventLogs", "AgentWorkspaces", "SessionLogCommits", - "SessionLogEntryStringLists", + "SessionLogTurnStringLists", }; private static readonly (string Table, string Column)[] s_postgresTimestampColumns = { ("AgentEventLogs", "Timestamp"), ("SessionLogCommits", "CommitTimestamp"), - ("SessionLogEntries", "Timestamp"), + ("SessionLogTurns", "Timestamp"), ("SessionLogProcessingDialogs", "Timestamp"), ("SessionLogs", "Started"), ("SessionLogs", "LastUpdated"), @@ -44,7 +44,7 @@ private static readonly (string Table, string Column)[] s_postgresBooleanColumns { ("AgentDefinitions", "IsBuiltIn"), ("AgentWorkspaces", "Enabled"), - ("SessionLogEntries", "IsPremium"), + ("SessionLogTurns", "IsPremium"), }; /// @@ -57,7 +57,7 @@ protected override void Up(MigrationBuilder migrationBuilder) Id = table.Column(type: "INTEGER", nullable: false) .Annotation("Sqlite:Autoincrement", true), WorkspaceId = table.Column(type: "TEXT", nullable: false), - SessionLogEntryId = table.Column(type: "INTEGER", nullable: false), + SessionLogTurnId = table.Column(type: "INTEGER", nullable: false), Ordinal = table.Column(type: "INTEGER", nullable: false), Sha = table.Column(type: "TEXT", maxLength: 64, nullable: true), Branch = table.Column(type: "TEXT", maxLength: 256, nullable: true), @@ -70,45 +70,45 @@ protected override void Up(MigrationBuilder migrationBuilder) { table.PrimaryKey("PK_SessionLogCommits", x => x.Id); table.ForeignKey( - name: "FK_SessionLogCommits_SessionLogEntries_SessionLogEntryId", - column: x => x.SessionLogEntryId, - principalTable: "SessionLogEntries", + name: "FK_SessionLogCommits_SessionLogTurns_SessionLogTurnId", + column: x => x.SessionLogTurnId, + principalTable: "SessionLogTurns", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateTable( - name: "SessionLogEntryStringLists", + name: "SessionLogTurnStringLists", columns: table => new { Id = table.Column(type: "INTEGER", nullable: false) .Annotation("Sqlite:Autoincrement", true), WorkspaceId = table.Column(type: "TEXT", nullable: false), - SessionLogEntryId = table.Column(type: "INTEGER", nullable: false), + SessionLogTurnId = table.Column(type: "INTEGER", nullable: false), ListType = table.Column(type: "TEXT", maxLength: 32, nullable: false), Ordinal = table.Column(type: "INTEGER", nullable: false), Value = table.Column(type: "TEXT", nullable: false) }, constraints: table => { - table.PrimaryKey("PK_SessionLogEntryStringLists", x => x.Id); + table.PrimaryKey("PK_SessionLogTurnStringLists", x => x.Id); table.ForeignKey( - name: "FK_SessionLogEntryStringLists_SessionLogEntries_SessionLogEntryId", - column: x => x.SessionLogEntryId, - principalTable: "SessionLogEntries", + name: "FK_SessionLogTurnStringLists_SessionLogTurns_SessionLogTurnId", + column: x => x.SessionLogTurnId, + principalTable: "SessionLogTurns", principalColumn: "Id", onDelete: ReferentialAction.Cascade); }); migrationBuilder.CreateIndex( - name: "IX_SessionLogCommits_SessionLogEntryId", + name: "IX_SessionLogCommits_SessionLogTurnId", table: "SessionLogCommits", - column: "SessionLogEntryId"); + column: "SessionLogTurnId"); migrationBuilder.CreateIndex( - name: "IX_SessionLogEntryStringLists_SessionLogEntryId_ListType", - table: "SessionLogEntryStringLists", - columns: new[] { "SessionLogEntryId", "ListType" }); + name: "IX_SessionLogTurnStringLists_SessionLogTurnId_ListType", + table: "SessionLogTurnStringLists", + columns: new[] { "SessionLogTurnId", "ListType" }); if (ActiveProvider.Contains("Npgsql", StringComparison.Ordinal)) { @@ -136,7 +136,7 @@ protected override void Down(MigrationBuilder migrationBuilder) name: "SessionLogCommits"); migrationBuilder.DropTable( - name: "SessionLogEntryStringLists"); + name: "SessionLogTurnStringLists"); } private static void EnsurePostgresIdentity(MigrationBuilder migrationBuilder, string tableName) @@ -207,3 +207,4 @@ FROM information_schema.columns } } } + diff --git a/src/McpServer.Support.Mcp/Storage/Migrations/McpDbContextModelSnapshot.cs b/src/McpServer.Support.Mcp/Storage/Migrations/McpDbContextModelSnapshot.cs index a73c16da..d1718ddc 100644 --- a/src/McpServer.Support.Mcp/Storage/Migrations/McpDbContextModelSnapshot.cs +++ b/src/McpServer.Support.Mcp/Storage/Migrations/McpDbContextModelSnapshot.cs @@ -1,4 +1,4 @@ -// +// using System; using McpServer.Support.Mcp.Storage; using Microsoft.EntityFrameworkCore; @@ -294,7 +294,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.Property("Order") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Status") @@ -311,7 +311,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.HasIndex("WorkspaceId"); @@ -344,7 +344,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.Property("Ordinal") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Sha") @@ -357,7 +357,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.ToTable("SessionLogCommits"); }); @@ -465,7 +465,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.ToTable("SessionLogs"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnContextEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -479,7 +479,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.Property("Ordinal") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("WorkspaceId") @@ -488,14 +488,14 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.HasIndex("WorkspaceId"); - b.ToTable("SessionLogEntryContexts"); + b.ToTable("SessionLogTurnContexts"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -565,10 +565,10 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasIndex("SessionLogId", "RequestId") .IsUnique(); - b.ToTable("SessionLogEntries"); + b.ToTable("SessionLogTurns"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryStringListEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnStringListEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() @@ -582,7 +582,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.Property("Ordinal") .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Value") @@ -595,18 +595,18 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId", "ListType"); + b.HasIndex("SessionLogTurnId", "ListType"); - b.ToTable("SessionLogEntryStringLists"); + b.ToTable("SessionLogTurnStringLists"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnTagEntity", b => { b.Property("Id") .ValueGeneratedOnAdd() .HasColumnType("INTEGER"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Tag") @@ -620,11 +620,11 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.HasIndex("WorkspaceId"); - b.ToTable("SessionLogEntryTags"); + b.ToTable("SessionLogTurnTags"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogProcessingDialogEntity", b => @@ -649,7 +649,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) .HasMaxLength(64) .HasColumnType("TEXT"); - b.Property("SessionLogEntryId") + b.Property("SessionLogTurnId") .HasColumnType("INTEGER"); b.Property("Timestamp") @@ -661,7 +661,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.HasKey("Id"); - b.HasIndex("SessionLogEntryId"); + b.HasIndex("SessionLogTurnId"); b.HasIndex("WorkspaceId"); @@ -827,38 +827,38 @@ protected override void BuildModel(ModelBuilder modelBuilder) modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogActionEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("Actions") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogCommitEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("Commits") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryContextEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnContextEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("ContextItems") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntity", "SessionLog") .WithMany("Entries") @@ -869,37 +869,37 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.Navigation("SessionLog"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryStringListEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnStringListEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("StringListItems") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryTagEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnTagEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("Tags") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogProcessingDialogEntity", b => { - b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", "SessionLogEntry") + b.HasOne("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", "SessionLogTurn") .WithMany("ProcessingDialog") - .HasForeignKey("SessionLogEntryId") + .HasForeignKey("SessionLogTurnId") .OnDelete(DeleteBehavior.Cascade) .IsRequired(); - b.Navigation("SessionLogEntry"); + b.Navigation("SessionLogTurn"); }); modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.ToolDefinitionTagEntity", b => @@ -928,7 +928,7 @@ protected override void BuildModel(ModelBuilder modelBuilder) b.Navigation("Entries"); }); - modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogEntryEntity", b => + modelBuilder.Entity("McpServer.Support.Mcp.Storage.Entities.SessionLogTurnEntity", b => { b.Navigation("Actions"); @@ -951,3 +951,4 @@ protected override void BuildModel(ModelBuilder modelBuilder) } } } + diff --git a/src_errors.txt b/src_errors.txt new file mode 100644 index 00000000..e69de29b diff --git a/src_errors2.txt b/src_errors2.txt new file mode 100644 index 00000000..e69de29b diff --git a/temp_find.ps1 b/temp_find.ps1 new file mode 100644 index 00000000..e69de29b diff --git a/temp_rename.ps1 b/temp_rename.ps1 new file mode 100644 index 00000000..e69de29b diff --git a/temp_rename2.ps1 b/temp_rename2.ps1 new file mode 100644 index 00000000..e69de29b diff --git a/templates/prompt-templates.yaml b/templates/prompt-templates.yaml index 54bb4cf9..fad659e0 100644 --- a/templates/prompt-templates.yaml +++ b/templates/prompt-templates.yaml @@ -272,27 +272,44 @@ templates: content: 'You are connected to an MCP Context Server at {{baseUrl}}. Use this server to coordinate your work. - ## Session Start - - 1. Read this marker file for connection details and API key. - - 2. Bootstrap helper modules from the Tool Registry (see docs/context/module-bootstrap.md). - - 3. Review recent session history and current TODOs. - - 4. Post a session log entry before starting work on the user''s request. - - - ## Rules + ## Session Start (Run Once Per Session) + + 1. Read this marker file for connection details and API key. + + 2. Bootstrap helper modules from the Tool Registry (load docs/context/module-bootstrap.md from MCP context via context_search/context_pack; do not treat it as a local file path). + + 3. Verify server health, then review recent session history and current TODOs. + + 4. Post an initial session log turn for the session. + + + ## Per User Message + + 1. Post a new session log turn before starting work. + + 2. Complete the user''s request. + + 3. Update the turn with results and actions when done. + + + ## Re-run Full Session Start Only If + + - The user explicitly says "Start Session". + - /health fails. + - Any /mcpserver/* call returns 401. + - The marker endpoint/key changes after a server restart. + + + ## Rules 0. NEVER write to TODO.yaml directly. - 1. Post a session log entry before any work on a user request. Update it with results when done. + 1. Post a new session log turn (`Add-McpSessionTurn`) before starting work. Update it with results (`Response`) and actions (`Add-McpAction`) when done. Persist after each meaningful update, not just at the end. 2. Use helper modules for session log and TODO operations — they handle workspace routing automatically. Do not use raw API calls. - 3. Write decisions, requirements, and state to the session log, not just conversation. + 3. Write decisions, requirements, and state to the session log, not just conversation. Capture rich turn detail: interpretation, response/status, actions (type/status/filePath), contextList, filesModified, designDecisions, requirementsDiscovered, blockers, and key processingDialog updates. 4. Follow workspace conventions in AGENTS.md and .github/copilot-instructions.md. @@ -369,9 +386,9 @@ templates: ## Context Loading by Task Type - - Session logging → docs/context/session-log-schema.md + docs/context/module-bootstrap.md + - Session logging → docs/context/session-log-schema.md + docs/context/module-bootstrap.md (pull module-bootstrap via MCP context) - - TODO management → docs/context/todo-schema.md + docs/context/module-bootstrap.md + - TODO management → docs/context/todo-schema.md + docs/context/module-bootstrap.md (pull module-bootstrap via MCP context) - API integration → docs/context/api-capabilities.md (or GET {{baseUrl}}/swagger/v1/swagger.json) @@ -456,6 +473,20 @@ templates: (see docs/context/action-types.md). + ## Available Capabilities + + + The following core libraries are indexed and available for semantic search/context retrieval: + + - McpServer.Cqrs (CQRS framework) + + - McpServer.Cqrs.Mvvm (MVVM support) + + - McpServer.UI.Core (Core UI logic) + + - McpServer.Director (Director CLI) + + --- MCP Server version: {{version}} diff --git a/testResults.xml b/testResults.xml new file mode 100644 index 00000000..c5c6d3fb --- /dev/null +++ b/testResults.xml @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/McpServer.Context.Validation/AtomicTests/ContextEndpointTests.cs b/tests/McpServer.Context.Validation/AtomicTests/ContextEndpointTests.cs index 0fd15070..f50fce5c 100644 --- a/tests/McpServer.Context.Validation/AtomicTests/ContextEndpointTests.cs +++ b/tests/McpServer.Context.Validation/AtomicTests/ContextEndpointTests.cs @@ -5,16 +5,40 @@ namespace McpServer.Context.Validation.AtomicTests; +/// +/// Validation tests for ContextEndpointTests. +/// +/// +/// Requirement coverage: TEST-MCP-004, FR-MCP-004, TR-MCP-DATA-002, TR-MCP-DATA-003. +/// Test data: Fixture HTTP calls with context query payloads (empty, filtered, bounded, and queryId-based inputs). +/// Data rationale: These inputs verify context endpoint contracts across normal, boundary, and filtering scenarios. +/// [Collection("ContextEndpoint")] public sealed class ContextEndpointTests { private readonly ContextEndpointFixture _fixture; private static readonly JsonSerializerOptions JsonOpts = new() { PropertyNameCaseInsensitive = true }; + /// + /// Initializes a new instance of ContextEndpointTests. + /// + /// + /// Requirement coverage: TEST-MCP-004, FR-MCP-004, TR-MCP-DATA-002, TR-MCP-DATA-003. + /// Test data: Fixture HTTP calls with context query payloads (empty, filtered, bounded, and queryId-based inputs). + /// Data rationale: These inputs verify context endpoint contracts across normal, boundary, and filtering scenarios. + /// public ContextEndpointTests(ContextEndpointFixture fixture) => _fixture = fixture; // --- GET /mcpserver/context/sources --- + /// + /// Validates the Sources_Returns200WithSourcesArray scenario. + /// + /// + /// Requirement coverage: TEST-MCP-004, FR-MCP-004, TR-MCP-DATA-002, TR-MCP-DATA-003. + /// Test data: Fixture HTTP calls with context query payloads (empty, filtered, bounded, and queryId-based inputs). + /// Data rationale: These inputs verify context endpoint contracts across normal, boundary, and filtering scenarios. + /// [Fact] public async Task Sources_Returns200WithSourcesArray() { @@ -27,6 +51,14 @@ public async Task Sources_Returns200WithSourcesArray() // --- POST /mcpserver/context/search --- + /// + /// Validates the Search_EmptyQuery_Returns200 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-004, FR-MCP-004, TR-MCP-DATA-002, TR-MCP-DATA-003. + /// Test data: Fixture HTTP calls with context query payloads (empty, filtered, bounded, and queryId-based inputs). + /// Data rationale: These inputs verify context endpoint contracts across normal, boundary, and filtering scenarios. + /// [Fact] public async Task Search_EmptyQuery_Returns200() { @@ -38,6 +70,14 @@ public async Task Search_EmptyQuery_Returns200() Assert.Equal(JsonValueKind.Array, chunks.ValueKind); } + /// + /// Validates the Search_WithQuery_Returns200WithResults scenario. + /// + /// + /// Requirement coverage: TEST-MCP-004, FR-MCP-004, TR-MCP-DATA-002, TR-MCP-DATA-003. + /// Test data: Fixture HTTP calls with context query payloads (empty, filtered, bounded, and queryId-based inputs). + /// Data rationale: These inputs verify context endpoint contracts across normal, boundary, and filtering scenarios. + /// [Fact] public async Task Search_WithQuery_Returns200WithResults() { @@ -50,6 +90,14 @@ public async Task Search_WithQuery_Returns200WithResults() Assert.True(json.TryGetProperty("sourceKeys", out _)); } + /// + /// Validates the Search_WithSourceTypeFilter_Returns200 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-004, FR-MCP-004, TR-MCP-DATA-002, TR-MCP-DATA-003. + /// Test data: Fixture HTTP calls with context query payloads (empty, filtered, bounded, and queryId-based inputs). + /// Data rationale: These inputs verify context endpoint contracts across normal, boundary, and filtering scenarios. + /// [Fact] public async Task Search_WithSourceTypeFilter_Returns200() { @@ -58,6 +106,14 @@ public async Task Search_WithSourceTypeFilter_Returns200() Assert.Equal(HttpStatusCode.OK, response.StatusCode); } + /// + /// Validates the Search_LimitClamped_Returns200 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-004, FR-MCP-004, TR-MCP-DATA-002, TR-MCP-DATA-003. + /// Test data: Fixture HTTP calls with context query payloads (empty, filtered, bounded, and queryId-based inputs). + /// Data rationale: These inputs verify context endpoint contracts across normal, boundary, and filtering scenarios. + /// [Fact] public async Task Search_LimitClamped_Returns200() { @@ -68,6 +124,14 @@ public async Task Search_LimitClamped_Returns200() // --- POST /mcpserver/context/pack --- + /// + /// Validates the Pack_EmptyQuery_Returns200WithPack scenario. + /// + /// + /// Requirement coverage: TEST-MCP-004, FR-MCP-004, TR-MCP-DATA-002, TR-MCP-DATA-003. + /// Test data: Fixture HTTP calls with context query payloads (empty, filtered, bounded, and queryId-based inputs). + /// Data rationale: These inputs verify context endpoint contracts across normal, boundary, and filtering scenarios. + /// [Fact] public async Task Pack_EmptyQuery_Returns200WithPack() { @@ -80,6 +144,14 @@ public async Task Pack_EmptyQuery_Returns200WithPack() Assert.True(json.TryGetProperty("sourceKeys", out _)); } + /// + /// Validates the Pack_WithQueryId_Returns200WithSameQueryId scenario. + /// + /// + /// Requirement coverage: TEST-MCP-004, FR-MCP-004, TR-MCP-DATA-002, TR-MCP-DATA-003. + /// Test data: Fixture HTTP calls with context query payloads (empty, filtered, bounded, and queryId-based inputs). + /// Data rationale: These inputs verify context endpoint contracts across normal, boundary, and filtering scenarios. + /// [Fact] public async Task Pack_WithQueryId_Returns200WithSameQueryId() { @@ -91,6 +163,14 @@ public async Task Pack_WithQueryId_Returns200WithSameQueryId() Assert.Equal(queryId, json.GetProperty("queryId").GetString()); } + /// + /// Validates the Pack_WithQuery_ReturnsFilteredChunks scenario. + /// + /// + /// Requirement coverage: TEST-MCP-004, FR-MCP-004, TR-MCP-DATA-002, TR-MCP-DATA-003. + /// Test data: Fixture HTTP calls with context query payloads (empty, filtered, bounded, and queryId-based inputs). + /// Data rationale: These inputs verify context endpoint contracts across normal, boundary, and filtering scenarios. + /// [Fact] public async Task Pack_WithQuery_ReturnsFilteredChunks() { @@ -101,6 +181,14 @@ public async Task Pack_WithQuery_ReturnsFilteredChunks() // --- POST /mcpserver/context/rebuild-index --- + /// + /// Validates the RebuildIndex_Returns200Or500 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-004, FR-MCP-004, TR-MCP-DATA-002, TR-MCP-DATA-003. + /// Test data: Fixture HTTP calls with context query payloads (empty, filtered, bounded, and queryId-based inputs). + /// Data rationale: These inputs verify context endpoint contracts across normal, boundary, and filtering scenarios. + /// [Fact] public async Task RebuildIndex_Returns200Or500() { diff --git a/tests/McpServer.Context.Validation/ContextEndpointFixture.cs b/tests/McpServer.Context.Validation/ContextEndpointFixture.cs index c2d8e8eb..1c157c93 100644 --- a/tests/McpServer.Context.Validation/ContextEndpointFixture.cs +++ b/tests/McpServer.Context.Validation/ContextEndpointFixture.cs @@ -2,15 +2,48 @@ namespace McpServer.Context.Validation; +/// +/// xUnit collection wiring for shared validation fixtures in ContextEndpointCollection. +/// +/// +/// Requirement coverage: TEST-MCP-004, FR-MCP-004, TR-MCP-DATA-002, TR-MCP-DATA-003. +/// Test data: Fixture HTTP calls with context query payloads (empty, filtered, bounded, and queryId-based inputs). +/// Data rationale: These inputs verify context endpoint contracts across normal, boundary, and filtering scenarios. +/// [CollectionDefinition("ContextEndpoint")] public sealed class ContextEndpointCollection : ICollectionFixture { } +/// +/// Shared validation fixture for ContextEndpointFixture. +/// +/// +/// Requirement coverage: TEST-MCP-004, FR-MCP-004, TR-MCP-DATA-002, TR-MCP-DATA-003. +/// Test data: Fixture HTTP calls with context query payloads (empty, filtered, bounded, and queryId-based inputs). +/// Data rationale: These inputs verify context endpoint contracts across normal, boundary, and filtering scenarios. +/// public sealed class ContextEndpointFixture : IDisposable { + /// + /// Defines BaseUrl constant used by validation tests. + /// public const string BaseUrl = "http://localhost:7147"; + /// + /// Defines ContextRoute constant used by validation tests. + /// public const string ContextRoute = "/mcpserver/context"; + /// + /// Gets or sets Client for validation payload/state handling. + /// public HttpClient Client { get; } + /// + /// Initializes a new instance of ContextEndpointFixture. + /// + /// + /// Requirement coverage: TEST-MCP-004, FR-MCP-004, TR-MCP-DATA-002, TR-MCP-DATA-003. + /// Test data: Fixture HTTP calls with context query payloads (empty, filtered, bounded, and queryId-based inputs). + /// Data rationale: These inputs verify context endpoint contracts across normal, boundary, and filtering scenarios. + /// public ContextEndpointFixture() { Client = new HttpClient { BaseAddress = new Uri(BaseUrl) }; @@ -19,5 +52,13 @@ public ContextEndpointFixture() Client.DefaultRequestHeaders.Add("X-Api-Key", apiKey); } + /// + /// Releases resources used by validation tests. + /// + /// + /// Requirement coverage: TEST-MCP-004, FR-MCP-004, TR-MCP-DATA-002, TR-MCP-DATA-003. + /// Test data: Fixture HTTP calls with context query payloads (empty, filtered, bounded, and queryId-based inputs). + /// Data rationale: These inputs verify context endpoint contracts across normal, boundary, and filtering scenarios. + /// public void Dispose() => Client.Dispose(); } diff --git a/tests/McpServer.GitHub.Validation/AtomicTests/GitHubEndpointTests.cs b/tests/McpServer.GitHub.Validation/AtomicTests/GitHubEndpointTests.cs index 0147c033..8b991938 100644 --- a/tests/McpServer.GitHub.Validation/AtomicTests/GitHubEndpointTests.cs +++ b/tests/McpServer.GitHub.Validation/AtomicTests/GitHubEndpointTests.cs @@ -12,10 +12,26 @@ public sealed class GitHubEndpointTests private readonly GitHubEndpointFixture _fixture; private static readonly JsonSerializerOptions JsonOpts = new() { PropertyNameCaseInsensitive = true }; + /// + /// Initializes a new instance of GitHubEndpointTests. + /// + /// + /// Requirement coverage: TEST-MCP-081, TEST-MCP-082, TEST-MCP-083, TEST-MCP-084, FR-MCP-063, TR-MCP-GH-001, TR-MCP-GH-004. + /// Test data: Fixture HTTP calls with issue/pull/label/comment/sync payloads and existing/non-existing identifiers. + /// Data rationale: These inputs verify GitHub integration contracts and expected status behavior on valid and invalid requests. + /// public GitHubEndpointTests(GitHubEndpointFixture fixture) => _fixture = fixture; // --- GET /mcpserver/gh/issues --- + /// + /// Validates the ListIssues_Returns200 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-081, TEST-MCP-082, TEST-MCP-083, TEST-MCP-084, FR-MCP-063, TR-MCP-GH-001, TR-MCP-GH-004. + /// Test data: Fixture HTTP calls with issue/pull/label/comment/sync payloads and existing/non-existing identifiers. + /// Data rationale: These inputs verify GitHub integration contracts and expected status behavior on valid and invalid requests. + /// [Fact] public async Task ListIssues_Returns200() { @@ -26,6 +42,14 @@ public async Task ListIssues_Returns200() Assert.Equal(JsonValueKind.Array, issues.ValueKind); } + /// + /// Validates the ListIssues_WithState_Returns200 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-081, TEST-MCP-082, TEST-MCP-083, TEST-MCP-084, FR-MCP-063, TR-MCP-GH-001, TR-MCP-GH-004. + /// Test data: Fixture HTTP calls with issue/pull/label/comment/sync payloads and existing/non-existing identifiers. + /// Data rationale: These inputs verify GitHub integration contracts and expected status behavior on valid and invalid requests. + /// [Fact] public async Task ListIssues_WithState_Returns200() { @@ -35,6 +59,14 @@ public async Task ListIssues_WithState_Returns200() // --- GET /mcpserver/gh/issues/{number} --- + /// + /// Validates the GetIssue_ExistingNumber_Returns200Or404 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-081, TEST-MCP-082, TEST-MCP-083, TEST-MCP-084, FR-MCP-063, TR-MCP-GH-001, TR-MCP-GH-004. + /// Test data: Fixture HTTP calls with issue/pull/label/comment/sync payloads and existing/non-existing identifiers. + /// Data rationale: These inputs verify GitHub integration contracts and expected status behavior on valid and invalid requests. + /// [Fact] public async Task GetIssue_ExistingNumber_Returns200Or404() { @@ -46,6 +78,14 @@ public async Task GetIssue_ExistingNumber_Returns200Or404() // --- POST /mcpserver/gh/issues (create) --- + /// + /// Validates the CreateIssue_MissingTitle_Returns400 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-081, TEST-MCP-082, TEST-MCP-083, TEST-MCP-084, FR-MCP-063, TR-MCP-GH-001, TR-MCP-GH-004. + /// Test data: Fixture HTTP calls with issue/pull/label/comment/sync payloads and existing/non-existing identifiers. + /// Data rationale: These inputs verify GitHub integration contracts and expected status behavior on valid and invalid requests. + /// [Fact] public async Task CreateIssue_MissingTitle_Returns400() { @@ -56,6 +96,14 @@ public async Task CreateIssue_MissingTitle_Returns400() // --- PUT /mcpserver/gh/issues/{number} (update) --- + /// + /// Validates the UpdateIssue_NullBody_Returns400 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-081, TEST-MCP-082, TEST-MCP-083, TEST-MCP-084, FR-MCP-063, TR-MCP-GH-001, TR-MCP-GH-004. + /// Test data: Fixture HTTP calls with issue/pull/label/comment/sync payloads and existing/non-existing identifiers. + /// Data rationale: These inputs verify GitHub integration contracts and expected status behavior on valid and invalid requests. + /// [Fact] public async Task UpdateIssue_NullBody_Returns400() { @@ -65,6 +113,14 @@ public async Task UpdateIssue_NullBody_Returns400() // --- POST /mcpserver/gh/issues/{id}/comments --- + /// + /// Validates the CommentOnIssue_MissingBody_Returns400 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-081, TEST-MCP-082, TEST-MCP-083, TEST-MCP-084, FR-MCP-063, TR-MCP-GH-001, TR-MCP-GH-004. + /// Test data: Fixture HTTP calls with issue/pull/label/comment/sync payloads and existing/non-existing identifiers. + /// Data rationale: These inputs verify GitHub integration contracts and expected status behavior on valid and invalid requests. + /// [Fact] public async Task CommentOnIssue_MissingBody_Returns400() { @@ -75,6 +131,14 @@ public async Task CommentOnIssue_MissingBody_Returns400() // --- GET /mcpserver/gh/labels --- + /// + /// Validates the ListLabels_Returns200 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-081, TEST-MCP-082, TEST-MCP-083, TEST-MCP-084, FR-MCP-063, TR-MCP-GH-001, TR-MCP-GH-004. + /// Test data: Fixture HTTP calls with issue/pull/label/comment/sync payloads and existing/non-existing identifiers. + /// Data rationale: These inputs verify GitHub integration contracts and expected status behavior on valid and invalid requests. + /// [Fact] public async Task ListLabels_Returns200() { @@ -86,6 +150,14 @@ public async Task ListLabels_Returns200() // --- GET /mcpserver/gh/pulls --- + /// + /// Validates the ListPulls_Returns200 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-081, TEST-MCP-082, TEST-MCP-083, TEST-MCP-084, FR-MCP-063, TR-MCP-GH-001, TR-MCP-GH-004. + /// Test data: Fixture HTTP calls with issue/pull/label/comment/sync payloads and existing/non-existing identifiers. + /// Data rationale: These inputs verify GitHub integration contracts and expected status behavior on valid and invalid requests. + /// [Fact] public async Task ListPulls_Returns200() { @@ -96,6 +168,14 @@ public async Task ListPulls_Returns200() Assert.Equal(JsonValueKind.Array, pulls.ValueKind); } + /// + /// Validates the ListPulls_WithState_Returns200 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-081, TEST-MCP-082, TEST-MCP-083, TEST-MCP-084, FR-MCP-063, TR-MCP-GH-001, TR-MCP-GH-004. + /// Test data: Fixture HTTP calls with issue/pull/label/comment/sync payloads and existing/non-existing identifiers. + /// Data rationale: These inputs verify GitHub integration contracts and expected status behavior on valid and invalid requests. + /// [Fact] public async Task ListPulls_WithState_Returns200() { @@ -105,6 +185,14 @@ public async Task ListPulls_WithState_Returns200() // --- POST /mcpserver/gh/pulls/{id}/comments --- + /// + /// Validates the CommentOnPull_MissingBody_Returns400 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-081, TEST-MCP-082, TEST-MCP-083, TEST-MCP-084, FR-MCP-063, TR-MCP-GH-001, TR-MCP-GH-004. + /// Test data: Fixture HTTP calls with issue/pull/label/comment/sync payloads and existing/non-existing identifiers. + /// Data rationale: These inputs verify GitHub integration contracts and expected status behavior on valid and invalid requests. + /// [Fact] public async Task CommentOnPull_MissingBody_Returns400() { @@ -115,6 +203,14 @@ public async Task CommentOnPull_MissingBody_Returns400() // --- POST /mcpserver/gh/issues/{number}/close --- + /// + /// Validates the CloseIssue_NonExistent_ReturnsBadRequestOr200 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-081, TEST-MCP-082, TEST-MCP-083, TEST-MCP-084, FR-MCP-063, TR-MCP-GH-001, TR-MCP-GH-004. + /// Test data: Fixture HTTP calls with issue/pull/label/comment/sync payloads and existing/non-existing identifiers. + /// Data rationale: These inputs verify GitHub integration contracts and expected status behavior on valid and invalid requests. + /// [Fact] public async Task CloseIssue_NonExistent_ReturnsBadRequestOr200() { @@ -126,6 +222,14 @@ public async Task CloseIssue_NonExistent_ReturnsBadRequestOr200() // --- POST /mcpserver/gh/issues/{number}/reopen --- + /// + /// Validates the ReopenIssue_NonExistent_ReturnsBadRequestOr200 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-081, TEST-MCP-082, TEST-MCP-083, TEST-MCP-084, FR-MCP-063, TR-MCP-GH-001, TR-MCP-GH-004. + /// Test data: Fixture HTTP calls with issue/pull/label/comment/sync payloads and existing/non-existing identifiers. + /// Data rationale: These inputs verify GitHub integration contracts and expected status behavior on valid and invalid requests. + /// [Fact] public async Task ReopenIssue_NonExistent_ReturnsBadRequestOr200() { @@ -136,6 +240,14 @@ public async Task ReopenIssue_NonExistent_ReturnsBadRequestOr200() // --- POST /mcpserver/gh/issues/sync/from-github --- + /// + /// Validates the SyncFromGitHub_Returns200Or400 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-081, TEST-MCP-082, TEST-MCP-083, TEST-MCP-084, FR-MCP-063, TR-MCP-GH-001, TR-MCP-GH-004. + /// Test data: Fixture HTTP calls with issue/pull/label/comment/sync payloads and existing/non-existing identifiers. + /// Data rationale: These inputs verify GitHub integration contracts and expected status behavior on valid and invalid requests. + /// [Fact] public async Task SyncFromGitHub_Returns200Or400() { @@ -146,6 +258,14 @@ public async Task SyncFromGitHub_Returns200Or400() // --- POST /mcpserver/gh/issues/sync/to-github --- + /// + /// Validates the SyncToGitHub_Returns200Or400 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-081, TEST-MCP-082, TEST-MCP-083, TEST-MCP-084, FR-MCP-063, TR-MCP-GH-001, TR-MCP-GH-004. + /// Test data: Fixture HTTP calls with issue/pull/label/comment/sync payloads and existing/non-existing identifiers. + /// Data rationale: These inputs verify GitHub integration contracts and expected status behavior on valid and invalid requests. + /// [Fact] public async Task SyncToGitHub_Returns200Or400() { @@ -156,6 +276,14 @@ public async Task SyncToGitHub_Returns200Or400() // --- POST /mcpserver/gh/issues/{number}/sync --- + /// + /// Validates the SyncSingleIssue_Returns200Or400Or404 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-081, TEST-MCP-082, TEST-MCP-083, TEST-MCP-084, FR-MCP-063, TR-MCP-GH-001, TR-MCP-GH-004. + /// Test data: Fixture HTTP calls with issue/pull/label/comment/sync payloads and existing/non-existing identifiers. + /// Data rationale: These inputs verify GitHub integration contracts and expected status behavior on valid and invalid requests. + /// [Fact] public async Task SyncSingleIssue_Returns200Or400Or404() { diff --git a/tests/McpServer.GitHub.Validation/GitHubEndpointFixture.cs b/tests/McpServer.GitHub.Validation/GitHubEndpointFixture.cs index 5c505f97..b62794fc 100644 --- a/tests/McpServer.GitHub.Validation/GitHubEndpointFixture.cs +++ b/tests/McpServer.GitHub.Validation/GitHubEndpointFixture.cs @@ -2,15 +2,48 @@ namespace McpServer.GitHub.Validation; +/// +/// xUnit collection wiring for shared validation fixtures in GitHubEndpointCollection. +/// +/// +/// Requirement coverage: TEST-MCP-081, TEST-MCP-082, TEST-MCP-083, TEST-MCP-084, FR-MCP-063, TR-MCP-GH-001, TR-MCP-GH-004. +/// Test data: Fixture HTTP calls with issue/pull/label/comment/sync payloads and existing/non-existing identifiers. +/// Data rationale: These inputs verify GitHub integration contracts and expected status behavior on valid and invalid requests. +/// [CollectionDefinition("GitHubEndpoint")] public sealed class GitHubEndpointCollection : ICollectionFixture { } +/// +/// Shared validation fixture for GitHubEndpointFixture. +/// +/// +/// Requirement coverage: TEST-MCP-081, TEST-MCP-082, TEST-MCP-083, TEST-MCP-084, FR-MCP-063, TR-MCP-GH-001, TR-MCP-GH-004. +/// Test data: Fixture HTTP calls with issue/pull/label/comment/sync payloads and existing/non-existing identifiers. +/// Data rationale: These inputs verify GitHub integration contracts and expected status behavior on valid and invalid requests. +/// public sealed class GitHubEndpointFixture : IDisposable { + /// + /// Defines BaseUrl constant used by validation tests. + /// public const string BaseUrl = "http://localhost:7147"; + /// + /// Defines GhRoute constant used by validation tests. + /// public const string GhRoute = "/mcpserver/gh"; + /// + /// Gets or sets Client for validation payload/state handling. + /// public HttpClient Client { get; } + /// + /// Initializes a new instance of GitHubEndpointFixture. + /// + /// + /// Requirement coverage: TEST-MCP-081, TEST-MCP-082, TEST-MCP-083, TEST-MCP-084, FR-MCP-063, TR-MCP-GH-001, TR-MCP-GH-004. + /// Test data: Fixture HTTP calls with issue/pull/label/comment/sync payloads and existing/non-existing identifiers. + /// Data rationale: These inputs verify GitHub integration contracts and expected status behavior on valid and invalid requests. + /// public GitHubEndpointFixture() { Client = new HttpClient { BaseAddress = new Uri(BaseUrl) }; @@ -19,5 +52,13 @@ public GitHubEndpointFixture() Client.DefaultRequestHeaders.Add("X-Api-Key", apiKey); } + /// + /// Releases resources used by validation tests. + /// + /// + /// Requirement coverage: TEST-MCP-081, TEST-MCP-082, TEST-MCP-083, TEST-MCP-084, FR-MCP-063, TR-MCP-GH-001, TR-MCP-GH-004. + /// Test data: Fixture HTTP calls with issue/pull/label/comment/sync payloads and existing/non-existing identifiers. + /// Data rationale: These inputs verify GitHub integration contracts and expected status behavior on valid and invalid requests. + /// public void Dispose() => Client.Dispose(); } diff --git a/tests/McpServer.Repo.Validation/AtomicTests/RepoEndpointTests.cs b/tests/McpServer.Repo.Validation/AtomicTests/RepoEndpointTests.cs index 178d7dbe..a0bbc3b8 100644 --- a/tests/McpServer.Repo.Validation/AtomicTests/RepoEndpointTests.cs +++ b/tests/McpServer.Repo.Validation/AtomicTests/RepoEndpointTests.cs @@ -12,10 +12,26 @@ public sealed class RepoEndpointTests private readonly RepoEndpointFixture _fixture; private static readonly JsonSerializerOptions JsonOpts = new() { PropertyNameCaseInsensitive = true }; + /// + /// Initializes a new instance of RepoEndpointTests. + /// + /// + /// Requirement coverage: TEST-MCP-001, FR-SUPPORT-010, TR-MCP-API-001. + /// Test data: Fixture HTTP calls with repo list/read/write routes, path query values, and write payload objects. + /// Data rationale: These inputs verify repository endpoint contract behavior, validation checks, and route correctness. + /// public RepoEndpointTests(RepoEndpointFixture fixture) => _fixture = fixture; // --- GET /mcpserver/repo/list --- + /// + /// Validates the List_RootPath_Returns200WithEntries scenario. + /// + /// + /// Requirement coverage: TEST-MCP-001, FR-SUPPORT-010, TR-MCP-API-001. + /// Test data: Fixture HTTP calls with repo list/read/write routes, path query values, and write payload objects. + /// Data rationale: These inputs verify repository endpoint contract behavior, validation checks, and route correctness. + /// [Fact] public async Task List_RootPath_Returns200WithEntries() { @@ -26,6 +42,14 @@ public async Task List_RootPath_Returns200WithEntries() Assert.Equal(JsonValueKind.Array, entries.ValueKind); } + /// + /// Validates the List_WithPath_Returns200 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-001, FR-SUPPORT-010, TR-MCP-API-001. + /// Test data: Fixture HTTP calls with repo list/read/write routes, path query values, and write payload objects. + /// Data rationale: These inputs verify repository endpoint contract behavior, validation checks, and route correctness. + /// [Fact] public async Task List_WithPath_Returns200() { @@ -38,6 +62,14 @@ public async Task List_WithPath_Returns200() // --- GET /mcpserver/repo/file --- + /// + /// Validates the ReadFile_MissingPath_Returns400 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-001, FR-SUPPORT-010, TR-MCP-API-001. + /// Test data: Fixture HTTP calls with repo list/read/write routes, path query values, and write payload objects. + /// Data rationale: These inputs verify repository endpoint contract behavior, validation checks, and route correctness. + /// [Fact] public async Task ReadFile_MissingPath_Returns400() { @@ -47,6 +79,14 @@ public async Task ReadFile_MissingPath_Returns400() Assert.Equal("path is required", json.GetProperty("error").GetString()); } + /// + /// Validates the ReadFile_ExistingFile_Returns200 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-001, FR-SUPPORT-010, TR-MCP-API-001. + /// Test data: Fixture HTTP calls with repo list/read/write routes, path query values, and write payload objects. + /// Data rationale: These inputs verify repository endpoint contract behavior, validation checks, and route correctness. + /// [Fact] public async Task ReadFile_ExistingFile_Returns200() { @@ -56,6 +96,14 @@ public async Task ReadFile_ExistingFile_Returns200() $"Expected 200 or 400, got {(int)response.StatusCode}"); } + /// + /// Validates the ReadFile_NonExistentFile_Returns200Or400 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-001, FR-SUPPORT-010, TR-MCP-API-001. + /// Test data: Fixture HTTP calls with repo list/read/write routes, path query values, and write payload objects. + /// Data rationale: These inputs verify repository endpoint contract behavior, validation checks, and route correctness. + /// [Fact] public async Task ReadFile_NonExistentFile_Returns200Or400() { @@ -67,6 +115,14 @@ public async Task ReadFile_NonExistentFile_Returns200Or400() // --- POST /mcpserver/repo/file --- + /// + /// Validates the WriteFile_MissingPath_Returns400 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-001, FR-SUPPORT-010, TR-MCP-API-001. + /// Test data: Fixture HTTP calls with repo list/read/write routes, path query values, and write payload objects. + /// Data rationale: These inputs verify repository endpoint contract behavior, validation checks, and route correctness. + /// [Fact] public async Task WriteFile_MissingPath_Returns400() { @@ -75,6 +131,14 @@ public async Task WriteFile_MissingPath_Returns400() Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode); } + /// + /// Validates the WriteFile_NullBody_Returns400 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-001, FR-SUPPORT-010, TR-MCP-API-001. + /// Test data: Fixture HTTP calls with repo list/read/write routes, path query values, and write payload objects. + /// Data rationale: These inputs verify repository endpoint contract behavior, validation checks, and route correctness. + /// [Fact] public async Task WriteFile_NullBody_Returns400() { @@ -82,6 +146,14 @@ public async Task WriteFile_NullBody_Returns400() Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode); } + /// + /// Validates the WriteFile_ValidPath_Returns200Or400 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-001, FR-SUPPORT-010, TR-MCP-API-001. + /// Test data: Fixture HTTP calls with repo list/read/write routes, path query values, and write payload objects. + /// Data rationale: These inputs verify repository endpoint contract behavior, validation checks, and route correctness. + /// [Fact] public async Task WriteFile_ValidPath_Returns200Or400() { diff --git a/tests/McpServer.Repo.Validation/RepoEndpointFixture.cs b/tests/McpServer.Repo.Validation/RepoEndpointFixture.cs index be71292d..d1ca254e 100644 --- a/tests/McpServer.Repo.Validation/RepoEndpointFixture.cs +++ b/tests/McpServer.Repo.Validation/RepoEndpointFixture.cs @@ -2,15 +2,48 @@ namespace McpServer.Repo.Validation; +/// +/// xUnit collection wiring for shared validation fixtures in RepoEndpointCollection. +/// +/// +/// Requirement coverage: TEST-MCP-001, FR-SUPPORT-010, TR-MCP-API-001. +/// Test data: Fixture HTTP calls with repo list/read/write routes, path query values, and write payload objects. +/// Data rationale: These inputs verify repository endpoint contract behavior, validation checks, and route correctness. +/// [CollectionDefinition("RepoEndpoint")] public sealed class RepoEndpointCollection : ICollectionFixture { } +/// +/// Shared validation fixture for RepoEndpointFixture. +/// +/// +/// Requirement coverage: TEST-MCP-001, FR-SUPPORT-010, TR-MCP-API-001. +/// Test data: Fixture HTTP calls with repo list/read/write routes, path query values, and write payload objects. +/// Data rationale: These inputs verify repository endpoint contract behavior, validation checks, and route correctness. +/// public sealed class RepoEndpointFixture : IDisposable { + /// + /// Defines BaseUrl constant used by validation tests. + /// public const string BaseUrl = "http://localhost:7147"; + /// + /// Defines RepoRoute constant used by validation tests. + /// public const string RepoRoute = "/mcpserver/repo"; + /// + /// Gets or sets Client for validation payload/state handling. + /// public HttpClient Client { get; } + /// + /// Initializes a new instance of RepoEndpointFixture. + /// + /// + /// Requirement coverage: TEST-MCP-001, FR-SUPPORT-010, TR-MCP-API-001. + /// Test data: Fixture HTTP calls with repo list/read/write routes, path query values, and write payload objects. + /// Data rationale: These inputs verify repository endpoint contract behavior, validation checks, and route correctness. + /// public RepoEndpointFixture() { Client = new HttpClient { BaseAddress = new Uri(BaseUrl) }; @@ -19,5 +52,13 @@ public RepoEndpointFixture() Client.DefaultRequestHeaders.Add("X-Api-Key", apiKey); } + /// + /// Releases resources used by validation tests. + /// + /// + /// Requirement coverage: TEST-MCP-001, FR-SUPPORT-010, TR-MCP-API-001. + /// Test data: Fixture HTTP calls with repo list/read/write routes, path query values, and write payload objects. + /// Data rationale: These inputs verify repository endpoint contract behavior, validation checks, and route correctness. + /// public void Dispose() => Client.Dispose(); } diff --git a/tests/McpServer.SessionLog.Validation/AtomicTests/AppendDialogTests.cs b/tests/McpServer.SessionLog.Validation/AtomicTests/AppendDialogTests.cs index 1ba55fa6..72bb17e5 100644 --- a/tests/McpServer.SessionLog.Validation/AtomicTests/AppendDialogTests.cs +++ b/tests/McpServer.SessionLog.Validation/AtomicTests/AppendDialogTests.cs @@ -6,14 +6,38 @@ namespace McpServer.SessionLog.Validation.AtomicTests; +/// +/// Validation tests for AppendDialogTests. +/// +/// +/// Requirement coverage: TEST-MCP-015, TEST-MCP-074, FR-MCP-003, TR-MCP-LOG-002. +/// Test data: Generated session/request IDs plus submit/query/dialog payloads serialized as endpoint JSON bodies. +/// Data rationale: These inputs verify session-log persistence/query behavior and canonical identifier validation paths. +/// [Collection("SessionLogEndpoint")] public sealed class AppendDialogTests { private readonly SessionLogEndpointFixture _fixture; private static readonly JsonSerializerOptions JsonOpts = new() { PropertyNameCaseInsensitive = true }; + /// + /// Initializes a new instance of AppendDialogTests. + /// + /// + /// Requirement coverage: TEST-MCP-015, TEST-MCP-074, FR-MCP-003, TR-MCP-LOG-002. + /// Test data: Generated session/request IDs plus submit/query/dialog payloads serialized as endpoint JSON bodies. + /// Data rationale: These inputs verify session-log persistence/query behavior and canonical identifier validation paths. + /// public AppendDialogTests(SessionLogEndpointFixture fixture) => _fixture = fixture; + /// + /// Validates the AppendDialog_ToExistingEntry_Returns200WithCount scenario. + /// + /// + /// Requirement coverage: TEST-MCP-015, TEST-MCP-074, FR-MCP-003, TR-MCP-LOG-002. + /// Test data: Generated session/request IDs plus submit/query/dialog payloads serialized as endpoint JSON bodies. + /// Data rationale: These inputs verify session-log persistence/query behavior and canonical identifier validation paths. + /// [Fact] public async Task AppendDialog_ToExistingEntry_Returns200WithCount() { @@ -66,6 +90,14 @@ public async Task AppendDialog_ToExistingEntry_Returns200WithCount() Assert.Equal(2, result.TotalDialogCount); } + /// + /// Validates the AppendDialog_MultipleAppends_AccumulatesCount scenario. + /// + /// + /// Requirement coverage: TEST-MCP-015, TEST-MCP-074, FR-MCP-003, TR-MCP-LOG-002. + /// Test data: Generated session/request IDs plus submit/query/dialog payloads serialized as endpoint JSON bodies. + /// Data rationale: These inputs verify session-log persistence/query behavior and canonical identifier validation paths. + /// [Fact] public async Task AppendDialog_MultipleAppends_AccumulatesCount() { @@ -111,6 +143,14 @@ public async Task AppendDialog_MultipleAppends_AccumulatesCount() Assert.Equal(2, res2!.TotalDialogCount); } + /// + /// Validates the AppendDialog_NonExistentSession_Returns404 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-015, TEST-MCP-074, FR-MCP-003, TR-MCP-LOG-002. + /// Test data: Generated session/request IDs plus submit/query/dialog payloads serialized as endpoint JSON bodies. + /// Data rationale: These inputs verify session-log persistence/query behavior and canonical identifier validation paths. + /// [Fact] public async Task AppendDialog_NonExistentSession_Returns404() { diff --git a/tests/McpServer.SessionLog.Validation/AtomicTests/QuerySessionLogTests.cs b/tests/McpServer.SessionLog.Validation/AtomicTests/QuerySessionLogTests.cs index a5eb46c4..5c7420c5 100644 --- a/tests/McpServer.SessionLog.Validation/AtomicTests/QuerySessionLogTests.cs +++ b/tests/McpServer.SessionLog.Validation/AtomicTests/QuerySessionLogTests.cs @@ -6,14 +6,38 @@ namespace McpServer.SessionLog.Validation.AtomicTests; +/// +/// Validation tests for QuerySessionLogTests. +/// +/// +/// Requirement coverage: TEST-MCP-015, TEST-MCP-074, FR-MCP-003, TR-MCP-LOG-002. +/// Test data: Generated session/request IDs plus submit/query/dialog payloads serialized as endpoint JSON bodies. +/// Data rationale: These inputs verify session-log persistence/query behavior and canonical identifier validation paths. +/// [Collection("SessionLogEndpoint")] public sealed class QuerySessionLogTests { private readonly SessionLogEndpointFixture _fixture; private static readonly JsonSerializerOptions JsonOpts = new() { PropertyNameCaseInsensitive = true }; + /// + /// Initializes a new instance of QuerySessionLogTests. + /// + /// + /// Requirement coverage: TEST-MCP-015, TEST-MCP-074, FR-MCP-003, TR-MCP-LOG-002. + /// Test data: Generated session/request IDs plus submit/query/dialog payloads serialized as endpoint JSON bodies. + /// Data rationale: These inputs verify session-log persistence/query behavior and canonical identifier validation paths. + /// public QuerySessionLogTests(SessionLogEndpointFixture fixture) => _fixture = fixture; + /// + /// Validates the Query_NoFilters_Returns200WithResults scenario. + /// + /// + /// Requirement coverage: TEST-MCP-015, TEST-MCP-074, FR-MCP-003, TR-MCP-LOG-002. + /// Test data: Generated session/request IDs plus submit/query/dialog payloads serialized as endpoint JSON bodies. + /// Data rationale: These inputs verify session-log persistence/query behavior and canonical identifier validation paths. + /// [Fact] public async Task Query_NoFilters_Returns200WithResults() { @@ -26,6 +50,14 @@ public async Task Query_NoFilters_Returns200WithResults() Assert.NotNull(result.Items); } + /// + /// Validates the Query_FilterByAgent_Returns200Filtered scenario. + /// + /// + /// Requirement coverage: TEST-MCP-015, TEST-MCP-074, FR-MCP-003, TR-MCP-LOG-002. + /// Test data: Generated session/request IDs plus submit/query/dialog payloads serialized as endpoint JSON bodies. + /// Data rationale: These inputs verify session-log persistence/query behavior and canonical identifier validation paths. + /// [Fact] public async Task Query_FilterByAgent_Returns200Filtered() { @@ -53,6 +85,14 @@ public async Task Query_FilterByAgent_Returns200Filtered() Assert.All(result.Items!, s => Assert.Equal("QueryAgentTest", s.SourceType)); } + /// + /// Validates the Query_FilterByModel_Returns200Filtered scenario. + /// + /// + /// Requirement coverage: TEST-MCP-015, TEST-MCP-074, FR-MCP-003, TR-MCP-LOG-002. + /// Test data: Generated session/request IDs plus submit/query/dialog payloads serialized as endpoint JSON bodies. + /// Data rationale: These inputs verify session-log persistence/query behavior and canonical identifier validation paths. + /// [Fact] public async Task Query_FilterByModel_Returns200Filtered() { @@ -78,6 +118,14 @@ public async Task Query_FilterByModel_Returns200Filtered() Assert.True(result!.TotalCount >= 1); } + /// + /// Validates the Query_FilterByDateRange_Returns200 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-015, TEST-MCP-074, FR-MCP-003, TR-MCP-LOG-002. + /// Test data: Generated session/request IDs plus submit/query/dialog payloads serialized as endpoint JSON bodies. + /// Data rationale: These inputs verify session-log persistence/query behavior and canonical identifier validation paths. + /// [Fact] public async Task Query_FilterByDateRange_Returns200() { @@ -91,6 +139,14 @@ public async Task Query_FilterByDateRange_Returns200() Assert.NotNull(result); } + /// + /// Validates the Query_WithPagination_Returns200 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-015, TEST-MCP-074, FR-MCP-003, TR-MCP-LOG-002. + /// Test data: Generated session/request IDs plus submit/query/dialog payloads serialized as endpoint JSON bodies. + /// Data rationale: These inputs verify session-log persistence/query behavior and canonical identifier validation paths. + /// [Fact] public async Task Query_WithPagination_Returns200() { @@ -103,6 +159,14 @@ public async Task Query_WithPagination_Returns200() Assert.True(result.Items!.Count <= 2); } + /// + /// Validates the Query_NonMatchingAgent_ReturnsEmptyResults scenario. + /// + /// + /// Requirement coverage: TEST-MCP-015, TEST-MCP-074, FR-MCP-003, TR-MCP-LOG-002. + /// Test data: Generated session/request IDs plus submit/query/dialog payloads serialized as endpoint JSON bodies. + /// Data rationale: These inputs verify session-log persistence/query behavior and canonical identifier validation paths. + /// [Fact] public async Task Query_NonMatchingAgent_ReturnsEmptyResults() { @@ -115,6 +179,14 @@ public async Task Query_NonMatchingAgent_ReturnsEmptyResults() Assert.Equal(0, result!.TotalCount); } + /// + /// Validates the Query_FilterByText_Returns200 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-015, TEST-MCP-074, FR-MCP-003, TR-MCP-LOG-002. + /// Test data: Generated session/request IDs plus submit/query/dialog payloads serialized as endpoint JSON bodies. + /// Data rationale: These inputs verify session-log persistence/query behavior and canonical identifier validation paths. + /// [Fact] public async Task Query_FilterByText_Returns200() { diff --git a/tests/McpServer.SessionLog.Validation/AtomicTests/SubmitSessionLogTests.cs b/tests/McpServer.SessionLog.Validation/AtomicTests/SubmitSessionLogTests.cs index b8022586..fe8c4436 100644 --- a/tests/McpServer.SessionLog.Validation/AtomicTests/SubmitSessionLogTests.cs +++ b/tests/McpServer.SessionLog.Validation/AtomicTests/SubmitSessionLogTests.cs @@ -6,14 +6,38 @@ namespace McpServer.SessionLog.Validation.AtomicTests; +/// +/// Validation tests for SubmitSessionLogTests. +/// +/// +/// Requirement coverage: TEST-MCP-015, TEST-MCP-074, FR-MCP-003, TR-MCP-LOG-002. +/// Test data: Generated session/request IDs plus submit/query/dialog payloads serialized as endpoint JSON bodies. +/// Data rationale: These inputs verify session-log persistence/query behavior and canonical identifier validation paths. +/// [Collection("SessionLogEndpoint")] public sealed class SubmitSessionLogTests { private readonly SessionLogEndpointFixture _fixture; private static readonly JsonSerializerOptions JsonOpts = new() { PropertyNameCaseInsensitive = true }; + /// + /// Initializes a new instance of SubmitSessionLogTests. + /// + /// + /// Requirement coverage: TEST-MCP-015, TEST-MCP-074, FR-MCP-003, TR-MCP-LOG-002. + /// Test data: Generated session/request IDs plus submit/query/dialog payloads serialized as endpoint JSON bodies. + /// Data rationale: These inputs verify session-log persistence/query behavior and canonical identifier validation paths. + /// public SubmitSessionLogTests(SessionLogEndpointFixture fixture) => _fixture = fixture; + /// + /// Validates the Submit_MinimalSessionLog_Returns201 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-015, TEST-MCP-074, FR-MCP-003, TR-MCP-LOG-002. + /// Test data: Generated session/request IDs plus submit/query/dialog payloads serialized as endpoint JSON bodies. + /// Data rationale: These inputs verify session-log persistence/query behavior and canonical identifier validation paths. + /// [Fact] public async Task Submit_MinimalSessionLog_Returns201() { @@ -40,6 +64,14 @@ public async Task Submit_MinimalSessionLog_Returns201() Assert.Equal(sessionId, result.SessionId); } + /// + /// Validates the Submit_FullSessionLogWithEntries_Returns201 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-015, TEST-MCP-074, FR-MCP-003, TR-MCP-LOG-002. + /// Test data: Generated session/request IDs plus submit/query/dialog payloads serialized as endpoint JSON bodies. + /// Data rationale: These inputs verify session-log persistence/query behavior and canonical identifier validation paths. + /// [Fact] public async Task Submit_FullSessionLogWithEntries_Returns201() { @@ -90,6 +122,14 @@ public async Task Submit_FullSessionLogWithEntries_Returns201() Assert.True(result!.Id > 0); } + /// + /// Validates the Submit_UpsertSameSession_Returns201WithUpdatedData scenario. + /// + /// + /// Requirement coverage: TEST-MCP-015, TEST-MCP-074, FR-MCP-003, TR-MCP-LOG-002. + /// Test data: Generated session/request IDs plus submit/query/dialog payloads serialized as endpoint JSON bodies. + /// Data rationale: These inputs verify session-log persistence/query behavior and canonical identifier validation paths. + /// [Fact] public async Task Submit_UpsertSameSession_Returns201WithUpdatedData() { @@ -131,6 +171,14 @@ public async Task Submit_UpsertSameSession_Returns201WithUpdatedData() Assert.Equal(result1!.Id, result2!.Id); } + /// + /// Validates the Submit_WithProcessingDialog_Returns201 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-015, TEST-MCP-074, FR-MCP-003, TR-MCP-LOG-002. + /// Test data: Generated session/request IDs plus submit/query/dialog payloads serialized as endpoint JSON bodies. + /// Data rationale: These inputs verify session-log persistence/query behavior and canonical identifier validation paths. + /// [Fact] public async Task Submit_WithProcessingDialog_Returns201() { diff --git a/tests/McpServer.SessionLog.Validation/ErrorTests/SessionLogErrorTests.cs b/tests/McpServer.SessionLog.Validation/ErrorTests/SessionLogErrorTests.cs index 59425376..9401f016 100644 --- a/tests/McpServer.SessionLog.Validation/ErrorTests/SessionLogErrorTests.cs +++ b/tests/McpServer.SessionLog.Validation/ErrorTests/SessionLogErrorTests.cs @@ -7,14 +7,38 @@ namespace McpServer.SessionLog.Validation.ErrorTests; +/// +/// Validation tests for SessionLogErrorTests. +/// +/// +/// Requirement coverage: TEST-MCP-015, TEST-MCP-074, FR-MCP-003, TR-MCP-LOG-002. +/// Test data: Generated session/request IDs plus submit/query/dialog payloads serialized as endpoint JSON bodies. +/// Data rationale: These inputs verify session-log persistence/query behavior and canonical identifier validation paths. +/// [Collection("SessionLogEndpoint")] public sealed class SessionLogErrorTests { private readonly SessionLogEndpointFixture _fixture; private static readonly JsonSerializerOptions JsonOpts = new() { PropertyNameCaseInsensitive = true }; + /// + /// Initializes a new instance of SessionLogErrorTests. + /// + /// + /// Requirement coverage: TEST-MCP-015, TEST-MCP-074, FR-MCP-003, TR-MCP-LOG-002. + /// Test data: Generated session/request IDs plus submit/query/dialog payloads serialized as endpoint JSON bodies. + /// Data rationale: These inputs verify session-log persistence/query behavior and canonical identifier validation paths. + /// public SessionLogErrorTests(SessionLogEndpointFixture fixture) => _fixture = fixture; + /// + /// Validates the Submit_MissingSourceType_Returns400 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-015, TEST-MCP-074, FR-MCP-003, TR-MCP-LOG-002. + /// Test data: Generated session/request IDs plus submit/query/dialog payloads serialized as endpoint JSON bodies. + /// Data rationale: These inputs verify session-log persistence/query behavior and canonical identifier validation paths. + /// [Fact] public async Task Submit_MissingSourceType_Returns400() { @@ -33,6 +57,14 @@ public async Task Submit_MissingSourceType_Returns400() Assert.Contains("SourceType", err!.Error!, StringComparison.OrdinalIgnoreCase); } + /// + /// Validates the Submit_MissingSessionId_Returns400 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-015, TEST-MCP-074, FR-MCP-003, TR-MCP-LOG-002. + /// Test data: Generated session/request IDs plus submit/query/dialog payloads serialized as endpoint JSON bodies. + /// Data rationale: These inputs verify session-log persistence/query behavior and canonical identifier validation paths. + /// [Fact] public async Task Submit_MissingSessionId_Returns400() { @@ -51,6 +83,14 @@ public async Task Submit_MissingSessionId_Returns400() Assert.Contains("SessionId", err!.Error!, StringComparison.OrdinalIgnoreCase); } + /// + /// Validates the Submit_EmptySourceType_Returns400 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-015, TEST-MCP-074, FR-MCP-003, TR-MCP-LOG-002. + /// Test data: Generated session/request IDs plus submit/query/dialog payloads serialized as endpoint JSON bodies. + /// Data rationale: These inputs verify session-log persistence/query behavior and canonical identifier validation paths. + /// [Fact] public async Task Submit_EmptySourceType_Returns400() { @@ -66,6 +106,14 @@ public async Task Submit_EmptySourceType_Returns400() Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode); } + /// + /// Validates the Submit_EmptySessionId_Returns400 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-015, TEST-MCP-074, FR-MCP-003, TR-MCP-LOG-002. + /// Test data: Generated session/request IDs plus submit/query/dialog payloads serialized as endpoint JSON bodies. + /// Data rationale: These inputs verify session-log persistence/query behavior and canonical identifier validation paths. + /// [Fact] public async Task Submit_EmptySessionId_Returns400() { @@ -81,6 +129,14 @@ public async Task Submit_EmptySessionId_Returns400() Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode); } + /// + /// Validates the AppendDialog_EmptyItemsList_Returns400 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-015, TEST-MCP-074, FR-MCP-003, TR-MCP-LOG-002. + /// Test data: Generated session/request IDs plus submit/query/dialog payloads serialized as endpoint JSON bodies. + /// Data rationale: These inputs verify session-log persistence/query behavior and canonical identifier validation paths. + /// [Fact] public async Task AppendDialog_EmptyItemsList_Returns400() { @@ -90,6 +146,14 @@ public async Task AppendDialog_EmptyItemsList_Returns400() Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode); } + /// + /// Validates the Submit_InvalidJsonBody_Returns400 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-015, TEST-MCP-074, FR-MCP-003, TR-MCP-LOG-002. + /// Test data: Generated session/request IDs plus submit/query/dialog payloads serialized as endpoint JSON bodies. + /// Data rationale: These inputs verify session-log persistence/query behavior and canonical identifier validation paths. + /// [Fact] public async Task Submit_InvalidJsonBody_Returns400() { diff --git a/tests/McpServer.SessionLog.Validation/Models/SessionLogModels.cs b/tests/McpServer.SessionLog.Validation/Models/SessionLogModels.cs index c6d5a951..3ee2b344 100644 --- a/tests/McpServer.SessionLog.Validation/Models/SessionLogModels.cs +++ b/tests/McpServer.SessionLog.Validation/Models/SessionLogModels.cs @@ -2,73 +2,254 @@ namespace McpServer.SessionLog.Validation.Models; +/// +/// Validation contract type SubmitResult. +/// +/// +/// Requirement coverage: TEST-MCP-015, TEST-MCP-074, FR-MCP-003, TR-MCP-LOG-002. +/// Test data: Generated session/request IDs plus submit/query/dialog payloads serialized as endpoint JSON bodies. +/// Data rationale: These inputs verify session-log persistence/query behavior and canonical identifier validation paths. +/// public sealed class SubmitResult { + /// + /// Gets or sets Id for validation payload/state handling. + /// [JsonPropertyName("id")] public int Id { get; set; } + /// + /// Gets or sets SourceType for validation payload/state handling. + /// [JsonPropertyName("sourceType")] public string? SourceType { get; set; } + /// + /// Gets or sets SessionId for validation payload/state handling. + /// [JsonPropertyName("sessionId")] public string? SessionId { get; set; } } +/// +/// Validation contract type ErrorResult. +/// +/// +/// Requirement coverage: TEST-MCP-015, TEST-MCP-074, FR-MCP-003, TR-MCP-LOG-002. +/// Test data: Generated session/request IDs plus submit/query/dialog payloads serialized as endpoint JSON bodies. +/// Data rationale: These inputs verify session-log persistence/query behavior and canonical identifier validation paths. +/// public sealed class ErrorResult { + /// + /// Gets or sets Error for validation payload/state handling. + /// [JsonPropertyName("error")] public string? Error { get; set; } } +/// +/// Validation contract type QueryResult. +/// +/// +/// Requirement coverage: TEST-MCP-015, TEST-MCP-074, FR-MCP-003, TR-MCP-LOG-002. +/// Test data: Generated session/request IDs plus submit/query/dialog payloads serialized as endpoint JSON bodies. +/// Data rationale: These inputs verify session-log persistence/query behavior and canonical identifier validation paths. +/// public sealed class QueryResult { + /// + /// Gets or sets TotalCount for validation payload/state handling. + /// [JsonPropertyName("totalCount")] public int TotalCount { get; set; } + /// + /// Gets or sets Limit for validation payload/state handling. + /// [JsonPropertyName("limit")] public int Limit { get; set; } + /// + /// Gets or sets Offset for validation payload/state handling. + /// [JsonPropertyName("offset")] public int Offset { get; set; } + /// + /// Gets or sets Items for validation payload/state handling. + /// [JsonPropertyName("items")] public List? Items { get; set; } } +/// +/// Validation contract type SessionSummary. +/// +/// +/// Requirement coverage: TEST-MCP-015, TEST-MCP-074, FR-MCP-003, TR-MCP-LOG-002. +/// Test data: Generated session/request IDs plus submit/query/dialog payloads serialized as endpoint JSON bodies. +/// Data rationale: These inputs verify session-log persistence/query behavior and canonical identifier validation paths. +/// public sealed class SessionSummary { + /// + /// Gets or sets Id for validation payload/state handling. + /// [JsonPropertyName("id")] public int Id { get; set; } + /// + /// Gets or sets SourceType for validation payload/state handling. + /// [JsonPropertyName("sourceType")] public string? SourceType { get; set; } + /// + /// Gets or sets SessionId for validation payload/state handling. + /// [JsonPropertyName("sessionId")] public string? SessionId { get; set; } + /// + /// Gets or sets Title for validation payload/state handling. + /// [JsonPropertyName("title")] public string? Title { get; set; } + /// + /// Gets or sets Model for validation payload/state handling. + /// [JsonPropertyName("model")] public string? Model { get; set; } + /// + /// Gets or sets Status for validation payload/state handling. + /// [JsonPropertyName("status")] public string? Status { get; set; } + /// + /// Gets or sets EntryCount for validation payload/state handling. + /// [JsonPropertyName("entryCount")] public int EntryCount { get; set; } + /// + /// Gets or sets Started for validation payload/state handling. + /// [JsonPropertyName("started")] public string? Started { get; set; } + /// + /// Gets or sets LastUpdated for validation payload/state handling. + /// [JsonPropertyName("lastUpdated")] public string? LastUpdated { get; set; } + /// + /// Gets or sets Entries for validation payload/state handling. + /// [JsonPropertyName("entries")] public List? Entries { get; set; } } +/// +/// Validation contract type EntryDto. +/// +/// +/// Requirement coverage: TEST-MCP-015, TEST-MCP-074, FR-MCP-003, TR-MCP-LOG-002. +/// Test data: Generated session/request IDs plus submit/query/dialog payloads serialized as endpoint JSON bodies. +/// Data rationale: These inputs verify session-log persistence/query behavior and canonical identifier validation paths. +/// public sealed class EntryDto { + /// + /// Gets or sets RequestId for validation payload/state handling. + /// [JsonPropertyName("requestId")] public string? RequestId { get; set; } + /// + /// Gets or sets QueryText for validation payload/state handling. + /// [JsonPropertyName("queryText")] public string? QueryText { get; set; } + /// + /// Gets or sets QueryTitle for validation payload/state handling. + /// [JsonPropertyName("queryTitle")] public string? QueryTitle { get; set; } + /// + /// Gets or sets Response for validation payload/state handling. + /// [JsonPropertyName("response")] public string? Response { get; set; } + /// + /// Gets or sets Status for validation payload/state handling. + /// [JsonPropertyName("status")] public string? Status { get; set; } + /// + /// Gets or sets Tags for validation payload/state handling. + /// [JsonPropertyName("tags")] public List? Tags { get; set; } + /// + /// Gets or sets Actions for validation payload/state handling. + /// [JsonPropertyName("actions")] public List? Actions { get; set; } + /// + /// Gets or sets ProcessingDialog for validation payload/state handling. + /// [JsonPropertyName("processingDialog")] public List? ProcessingDialog { get; set; } } +/// +/// Validation contract type ActionDto. +/// +/// +/// Requirement coverage: TEST-MCP-015, TEST-MCP-074, FR-MCP-003, TR-MCP-LOG-002. +/// Test data: Generated session/request IDs plus submit/query/dialog payloads serialized as endpoint JSON bodies. +/// Data rationale: These inputs verify session-log persistence/query behavior and canonical identifier validation paths. +/// public sealed class ActionDto { + /// + /// Gets or sets Order for validation payload/state handling. + /// [JsonPropertyName("order")] public int Order { get; set; } + /// + /// Gets or sets Description for validation payload/state handling. + /// [JsonPropertyName("description")] public string? Description { get; set; } + /// + /// Gets or sets Type for validation payload/state handling. + /// [JsonPropertyName("type")] public string? Type { get; set; } + /// + /// Gets or sets Status for validation payload/state handling. + /// [JsonPropertyName("status")] public string? Status { get; set; } + /// + /// Gets or sets FilePath for validation payload/state handling. + /// [JsonPropertyName("filePath")] public string? FilePath { get; set; } } +/// +/// Validation contract type DialogItemDto. +/// +/// +/// Requirement coverage: TEST-MCP-015, TEST-MCP-074, FR-MCP-003, TR-MCP-LOG-002. +/// Test data: Generated session/request IDs plus submit/query/dialog payloads serialized as endpoint JSON bodies. +/// Data rationale: These inputs verify session-log persistence/query behavior and canonical identifier validation paths. +/// public sealed class DialogItemDto { + /// + /// Gets or sets Timestamp for validation payload/state handling. + /// [JsonPropertyName("timestamp")] public string? Timestamp { get; set; } + /// + /// Gets or sets Role for validation payload/state handling. + /// [JsonPropertyName("role")] public string? Role { get; set; } + /// + /// Gets or sets Content for validation payload/state handling. + /// [JsonPropertyName("content")] public string? Content { get; set; } + /// + /// Gets or sets Category for validation payload/state handling. + /// [JsonPropertyName("category")] public string? Category { get; set; } } +/// +/// Validation contract type DialogAppendResult. +/// +/// +/// Requirement coverage: TEST-MCP-015, TEST-MCP-074, FR-MCP-003, TR-MCP-LOG-002. +/// Test data: Generated session/request IDs plus submit/query/dialog payloads serialized as endpoint JSON bodies. +/// Data rationale: These inputs verify session-log persistence/query behavior and canonical identifier validation paths. +/// public sealed class DialogAppendResult { + /// + /// Gets or sets Agent for validation payload/state handling. + /// [JsonPropertyName("agent")] public string? Agent { get; set; } + /// + /// Gets or sets SessionId for validation payload/state handling. + /// [JsonPropertyName("sessionId")] public string? SessionId { get; set; } + /// + /// Gets or sets RequestId for validation payload/state handling. + /// [JsonPropertyName("requestId")] public string? RequestId { get; set; } + /// + /// Gets or sets TotalDialogCount for validation payload/state handling. + /// [JsonPropertyName("totalDialogCount")] public int TotalDialogCount { get; set; } } diff --git a/tests/McpServer.SessionLog.Validation/SequenceTests/SessionLogLifecycleTests.cs b/tests/McpServer.SessionLog.Validation/SequenceTests/SessionLogLifecycleTests.cs index bff49fc3..bb03e4ed 100644 --- a/tests/McpServer.SessionLog.Validation/SequenceTests/SessionLogLifecycleTests.cs +++ b/tests/McpServer.SessionLog.Validation/SequenceTests/SessionLogLifecycleTests.cs @@ -6,14 +6,38 @@ namespace McpServer.SessionLog.Validation.SequenceTests; +/// +/// Validation tests for SessionLogLifecycleTests. +/// +/// +/// Requirement coverage: TEST-MCP-015, TEST-MCP-074, FR-MCP-003, TR-MCP-LOG-002. +/// Test data: Generated session/request IDs plus submit/query/dialog payloads serialized as endpoint JSON bodies. +/// Data rationale: These inputs verify session-log persistence/query behavior and canonical identifier validation paths. +/// [Collection("SessionLogEndpoint")] public sealed class SessionLogLifecycleTests { private readonly SessionLogEndpointFixture _fixture; private static readonly JsonSerializerOptions JsonOpts = new() { PropertyNameCaseInsensitive = true }; + /// + /// Initializes a new instance of SessionLogLifecycleTests. + /// + /// + /// Requirement coverage: TEST-MCP-015, TEST-MCP-074, FR-MCP-003, TR-MCP-LOG-002. + /// Test data: Generated session/request IDs plus submit/query/dialog payloads serialized as endpoint JSON bodies. + /// Data rationale: These inputs verify session-log persistence/query behavior and canonical identifier validation paths. + /// public SessionLogLifecycleTests(SessionLogEndpointFixture fixture) => _fixture = fixture; + /// + /// Validates the FullLifecycle_Submit_Query_AppendDialog_Requery scenario. + /// + /// + /// Requirement coverage: TEST-MCP-015, TEST-MCP-074, FR-MCP-003, TR-MCP-LOG-002. + /// Test data: Generated session/request IDs plus submit/query/dialog payloads serialized as endpoint JSON bodies. + /// Data rationale: These inputs verify session-log persistence/query behavior and canonical identifier validation paths. + /// [Fact] public async Task FullLifecycle_Submit_Query_AppendDialog_Requery() { diff --git a/tests/McpServer.SessionLog.Validation/SessionLogEndpointFixture.cs b/tests/McpServer.SessionLog.Validation/SessionLogEndpointFixture.cs index f2775cc8..59f67354 100644 --- a/tests/McpServer.SessionLog.Validation/SessionLogEndpointFixture.cs +++ b/tests/McpServer.SessionLog.Validation/SessionLogEndpointFixture.cs @@ -7,12 +7,32 @@ namespace McpServer.SessionLog.Validation; /// public sealed class SessionLogEndpointFixture : IDisposable { + /// + /// Defines BaseUrl constant used by validation tests. + /// public const string BaseUrl = "http://localhost:7147"; + /// + /// Defines SessionLogRoute constant used by validation tests. + /// public const string SessionLogRoute = "/mcpserver/sessionlog"; + /// + /// Gets or sets Client for validation payload/state handling. + /// public HttpClient Client { get; } + /// + /// Gets or sets ApiKey for validation payload/state handling. + /// public string? ApiKey { get; } + /// + /// Initializes a new instance of SessionLogEndpointFixture. + /// + /// + /// Requirement coverage: TEST-MCP-015, TEST-MCP-074, FR-MCP-003, TR-MCP-LOG-002. + /// Test data: Generated session/request IDs plus submit/query/dialog payloads serialized as endpoint JSON bodies. + /// Data rationale: These inputs verify session-log persistence/query behavior and canonical identifier validation paths. + /// public SessionLogEndpointFixture() { Client = new HttpClient { BaseAddress = new Uri(BaseUrl) }; @@ -27,8 +47,24 @@ public SessionLogEndpointFixture() /// Generate a unique request ID for dialog tests. public static string GenerateRequestId() => $"req-{Guid.NewGuid():N}"; + /// + /// Releases resources used by validation tests. + /// + /// + /// Requirement coverage: TEST-MCP-015, TEST-MCP-074, FR-MCP-003, TR-MCP-LOG-002. + /// Test data: Generated session/request IDs plus submit/query/dialog payloads serialized as endpoint JSON bodies. + /// Data rationale: These inputs verify session-log persistence/query behavior and canonical identifier validation paths. + /// public void Dispose() => Client.Dispose(); } +/// +/// xUnit collection wiring for shared validation fixtures in SessionLogEndpointCollection. +/// +/// +/// Requirement coverage: TEST-MCP-015, TEST-MCP-074, FR-MCP-003, TR-MCP-LOG-002. +/// Test data: Generated session/request IDs plus submit/query/dialog payloads serialized as endpoint JSON bodies. +/// Data rationale: These inputs verify session-log persistence/query behavior and canonical identifier validation paths. +/// [CollectionDefinition("SessionLogEndpoint")] public sealed class SessionLogEndpointCollection : ICollectionFixture; diff --git a/tests/McpServer.SessionLog.Validation/bin/Debug/net9.0/McpServer.SessionLog.Validation.deps.json b/tests/McpServer.SessionLog.Validation/bin/Debug/net9.0/McpServer.SessionLog.Validation.deps.json index e7ee466f..3fc50e03 100644 --- a/tests/McpServer.SessionLog.Validation/bin/Debug/net9.0/McpServer.SessionLog.Validation.deps.json +++ b/tests/McpServer.SessionLog.Validation/bin/Debug/net9.0/McpServer.SessionLog.Validation.deps.json @@ -9,13 +9,19 @@ "McpServer.SessionLog.Validation/1.0.0": { "dependencies": { "Microsoft.NET.Test.Sdk": "18.0.1", + "coverlet.collector": "6.0.4", + "xunit.runner.visualstudio": "3.1.5", "xunit.v3": "3.2.2" }, "runtime": { "McpServer.SessionLog.Validation.dll": {} } }, + "coverlet.collector/6.0.4": {}, "Microsoft.ApplicationInsights/2.23.0": { + "dependencies": { + "System.Diagnostics.DiagnosticSource": "5.0.0" + }, "runtime": { "lib/netstandard2.0/Microsoft.ApplicationInsights.dll": { "assemblyVersion": "2.23.0.29", @@ -45,6 +51,7 @@ "Microsoft.TestPlatform.TestHost": "18.0.1" } }, + "Microsoft.NETCore.Platforms/5.0.0": {}, "Microsoft.Testing.Extensions.Telemetry/1.9.1": { "dependencies": { "Microsoft.ApplicationInsights": "2.23.0", @@ -211,6 +218,9 @@ } }, "Microsoft.TestPlatform.ObjectModel/18.0.1": { + "dependencies": { + "System.Reflection.Metadata": "8.0.0" + }, "runtime": { "lib/net8.0/Microsoft.TestPlatform.CoreUtilities.dll": { "assemblyVersion": "15.0.0.0", @@ -453,6 +463,12 @@ } } }, + "Microsoft.Win32.Registry/5.0.0": { + "dependencies": { + "System.Security.AccessControl": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, "Newtonsoft.Json/13.0.3": { "runtime": { "lib/net6.0/Newtonsoft.Json.dll": { @@ -461,6 +477,22 @@ } } }, + "System.Collections.Immutable/8.0.0": {}, + "System.Diagnostics.DiagnosticSource/5.0.0": {}, + "System.Reflection.Metadata/8.0.0": { + "dependencies": { + "System.Collections.Immutable": "8.0.0" + } + }, + "System.Security.AccessControl/5.0.0": { + "dependencies": { + "Microsoft.NETCore.Platforms": "5.0.0", + "System.Security.Principal.Windows": "5.0.0" + } + }, + "System.Security.Principal.Windows/5.0.0": {}, + "xunit.analyzers/1.27.0": {}, + "xunit.runner.visualstudio/3.1.5": {}, "xunit.v3/3.2.2": { "dependencies": { "xunit.v3.mtp-v1": "3.2.2" @@ -514,12 +546,14 @@ }, "xunit.v3.mtp-v1/3.2.2": { "dependencies": { + "xunit.analyzers": "1.27.0", "xunit.v3.assert": "3.2.2", "xunit.v3.core.mtp-v1": "3.2.2" } }, "xunit.v3.runner.common/3.2.2": { "dependencies": { + "Microsoft.Win32.Registry": "5.0.0", "xunit.v3.common": "3.2.2" }, "runtime": { @@ -549,6 +583,13 @@ "serviceable": false, "sha512": "" }, + "coverlet.collector/6.0.4": { + "type": "package", + "serviceable": true, + "sha512": "sha512-lkhqpF8Pu2Y7IiN7OntbsTtdbpR1syMsm2F3IgX6ootA4ffRqWL5jF7XipHuZQTdVuWG/gVAAcf8mjk8Tz0xPg==", + "path": "coverlet.collector/6.0.4", + "hashPath": "coverlet.collector.6.0.4.nupkg.sha512" + }, "Microsoft.ApplicationInsights/2.23.0": { "type": "package", "serviceable": true, @@ -577,6 +618,13 @@ "path": "microsoft.net.test.sdk/18.0.1", "hashPath": "microsoft.net.test.sdk.18.0.1.nupkg.sha512" }, + "Microsoft.NETCore.Platforms/5.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-VyPlqzH2wavqquTcYpkIIAQ6WdenuKoFN0BdYBbCWsclXacSOHNQn66Gt4z5NBqEYW0FAPm5rlvki9ZiCij5xQ==", + "path": "microsoft.netcore.platforms/5.0.0", + "hashPath": "microsoft.netcore.platforms.5.0.0.nupkg.sha512" + }, "Microsoft.Testing.Extensions.Telemetry/1.9.1": { "type": "package", "serviceable": true, @@ -619,6 +667,13 @@ "path": "microsoft.testplatform.testhost/18.0.1", "hashPath": "microsoft.testplatform.testhost.18.0.1.nupkg.sha512" }, + "Microsoft.Win32.Registry/5.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-dDoKi0PnDz31yAyETfRntsLArTlVAVzUzCIvvEDsDsucrl33Dl8pIJG06ePTJTI3tGpeyHS9Cq7Foc/s4EeKcg==", + "path": "microsoft.win32.registry/5.0.0", + "hashPath": "microsoft.win32.registry.5.0.0.nupkg.sha512" + }, "Newtonsoft.Json/13.0.3": { "type": "package", "serviceable": true, @@ -626,6 +681,55 @@ "path": "newtonsoft.json/13.0.3", "hashPath": "newtonsoft.json.13.0.3.nupkg.sha512" }, + "System.Collections.Immutable/8.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-AurL6Y5BA1WotzlEvVaIDpqzpIPvYnnldxru8oXJU2yFxFUy3+pNXjXd1ymO+RA0rq0+590Q8gaz2l3Sr7fmqg==", + "path": "system.collections.immutable/8.0.0", + "hashPath": "system.collections.immutable.8.0.0.nupkg.sha512" + }, + "System.Diagnostics.DiagnosticSource/5.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-tCQTzPsGZh/A9LhhA6zrqCRV4hOHsK90/G7q3Khxmn6tnB1PuNU0cRaKANP2AWcF9bn0zsuOoZOSrHuJk6oNBA==", + "path": "system.diagnostics.diagnosticsource/5.0.0", + "hashPath": "system.diagnostics.diagnosticsource.5.0.0.nupkg.sha512" + }, + "System.Reflection.Metadata/8.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-ptvgrFh7PvWI8bcVqG5rsA/weWM09EnthFHR5SCnS6IN+P4mj6rE1lBDC4U8HL9/57htKAqy4KQ3bBj84cfYyQ==", + "path": "system.reflection.metadata/8.0.0", + "hashPath": "system.reflection.metadata.8.0.0.nupkg.sha512" + }, + "System.Security.AccessControl/5.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-dagJ1mHZO3Ani8GH0PHpPEe/oYO+rVdbQjvjJkBRNQkX4t0r1iaeGn8+/ybkSLEan3/slM0t59SVdHzuHf2jmw==", + "path": "system.security.accesscontrol/5.0.0", + "hashPath": "system.security.accesscontrol.5.0.0.nupkg.sha512" + }, + "System.Security.Principal.Windows/5.0.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-t0MGLukB5WAVU9bO3MGzvlGnyJPgUlcwerXn1kzBRjwLKixT96XV0Uza41W49gVd8zEMFu9vQEFlv0IOrytICA==", + "path": "system.security.principal.windows/5.0.0", + "hashPath": "system.security.principal.windows.5.0.0.nupkg.sha512" + }, + "xunit.analyzers/1.27.0": { + "type": "package", + "serviceable": true, + "sha512": "sha512-y/pxIQaLvk/kxAoDkZW9GnHLCEqzwl5TW0vtX3pweyQpjizB9y3DXhb9pkw2dGeUqhLjsxvvJM1k89JowU6z3g==", + "path": "xunit.analyzers/1.27.0", + "hashPath": "xunit.analyzers.1.27.0.nupkg.sha512" + }, + "xunit.runner.visualstudio/3.1.5": { + "type": "package", + "serviceable": true, + "sha512": "sha512-tKi7dSTwP4m5m9eXPM2Ime4Kn7xNf4x4zT9sdLO/G4hZVnQCRiMTWoSZqI/pYTVeI27oPPqHBKYI/DjJ9GsYgA==", + "path": "xunit.runner.visualstudio/3.1.5", + "hashPath": "xunit.runner.visualstudio.3.1.5.nupkg.sha512" + }, "xunit.v3/3.2.2": { "type": "package", "serviceable": true, diff --git a/tests/McpServer.SessionLog.Validation/bin/Debug/net9.0/McpServer.SessionLog.Validation.dll b/tests/McpServer.SessionLog.Validation/bin/Debug/net9.0/McpServer.SessionLog.Validation.dll index f18bf95b..25afef63 100644 Binary files a/tests/McpServer.SessionLog.Validation/bin/Debug/net9.0/McpServer.SessionLog.Validation.dll and b/tests/McpServer.SessionLog.Validation/bin/Debug/net9.0/McpServer.SessionLog.Validation.dll differ diff --git a/tests/McpServer.SessionLog.Validation/bin/Debug/net9.0/McpServer.SessionLog.Validation.exe b/tests/McpServer.SessionLog.Validation/bin/Debug/net9.0/McpServer.SessionLog.Validation.exe index 3090dbce..91094b4a 100644 Binary files a/tests/McpServer.SessionLog.Validation/bin/Debug/net9.0/McpServer.SessionLog.Validation.exe and b/tests/McpServer.SessionLog.Validation/bin/Debug/net9.0/McpServer.SessionLog.Validation.exe differ diff --git a/tests/McpServer.SessionLog.Validation/bin/Debug/net9.0/McpServer.SessionLog.Validation.pdb b/tests/McpServer.SessionLog.Validation/bin/Debug/net9.0/McpServer.SessionLog.Validation.pdb index 600cbe52..265cc1fd 100644 Binary files a/tests/McpServer.SessionLog.Validation/bin/Debug/net9.0/McpServer.SessionLog.Validation.pdb and b/tests/McpServer.SessionLog.Validation/bin/Debug/net9.0/McpServer.SessionLog.Validation.pdb differ diff --git a/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/McpServer.SessionLog.Validation.AssemblyInfo.cs b/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/McpServer.SessionLog.Validation.AssemblyInfo.cs index c79384eb..d52f7878 100644 --- a/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/McpServer.SessionLog.Validation.AssemblyInfo.cs +++ b/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/McpServer.SessionLog.Validation.AssemblyInfo.cs @@ -13,7 +13,7 @@ [assembly: System.Reflection.AssemblyCompanyAttribute("McpServer.SessionLog.Validation")] [assembly: System.Reflection.AssemblyConfigurationAttribute("Debug")] [assembly: System.Reflection.AssemblyFileVersionAttribute("1.0.0.0")] -[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+5cd742347d165d9f16b6be5401ada7acc39769c3")] +[assembly: System.Reflection.AssemblyInformationalVersionAttribute("1.0.0+30ff2188706da955521d3f3552b690eaf8bbd7d4")] [assembly: System.Reflection.AssemblyProductAttribute("McpServer.SessionLog.Validation")] [assembly: System.Reflection.AssemblyTitleAttribute("McpServer.SessionLog.Validation")] [assembly: System.Reflection.AssemblyVersionAttribute("1.0.0.0")] diff --git a/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/McpServer.SessionLog.Validation.AssemblyInfoInputs.cache b/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/McpServer.SessionLog.Validation.AssemblyInfoInputs.cache index 5ca6289e..d1bda011 100644 --- a/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/McpServer.SessionLog.Validation.AssemblyInfoInputs.cache +++ b/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/McpServer.SessionLog.Validation.AssemblyInfoInputs.cache @@ -1 +1 @@ -8e25a6fca404643127e83b02f86f7f468a5c62e386010c4e28fef90e23f01d08 +a10b9c7851af792937d012d37d051e788c46efac28e6d34897adcee37ac6e789 diff --git a/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/McpServer.SessionLog.Validation.GeneratedMSBuildEditorConfig.editorconfig b/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/McpServer.SessionLog.Validation.GeneratedMSBuildEditorConfig.editorconfig index cf194bfc..b8b564dd 100644 --- a/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/McpServer.SessionLog.Validation.GeneratedMSBuildEditorConfig.editorconfig +++ b/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/McpServer.SessionLog.Validation.GeneratedMSBuildEditorConfig.editorconfig @@ -1,7 +1,5 @@ is_global = true build_property.TargetFramework = net9.0 -build_property.TargetFrameworkIdentifier = .NETCoreApp -build_property.TargetFrameworkVersion = v9.0 build_property.TargetPlatformMinVersion = build_property.UsingMicrosoftNETSdkWeb = build_property.ProjectTypeGuids = diff --git a/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/McpServer.SessionLog.Validation.GlobalUsings.g.cs b/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/McpServer.SessionLog.Validation.GlobalUsings.g.cs index 3bad85ce..ac22929d 100644 --- a/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/McpServer.SessionLog.Validation.GlobalUsings.g.cs +++ b/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/McpServer.SessionLog.Validation.GlobalUsings.g.cs @@ -1,8 +1,8 @@ // -global using System; -global using System.Collections.Generic; -global using System.IO; -global using System.Linq; -global using System.Net.Http; -global using System.Threading; -global using System.Threading.Tasks; +global using global::System; +global using global::System.Collections.Generic; +global using global::System.IO; +global using global::System.Linq; +global using global::System.Net.Http; +global using global::System.Threading; +global using global::System.Threading.Tasks; diff --git a/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/McpServer.SessionLog.Validation.assets.cache b/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/McpServer.SessionLog.Validation.assets.cache index 21868f77..55258528 100644 Binary files a/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/McpServer.SessionLog.Validation.assets.cache and b/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/McpServer.SessionLog.Validation.assets.cache differ diff --git a/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/McpServer.SessionLog.Validation.csproj.FileListAbsolute.txt b/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/McpServer.SessionLog.Validation.csproj.FileListAbsolute.txt index a20c61fc..d5b77d67 100644 --- a/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/McpServer.SessionLog.Validation.csproj.FileListAbsolute.txt +++ b/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/McpServer.SessionLog.Validation.csproj.FileListAbsolute.txt @@ -1,3 +1,15 @@ +E:\github\McpServer\tests\McpServer.SessionLog.Validation\obj\Debug\net9.0\McpServer.SessionLog.Validation.csproj.AssemblyReference.cache +E:\github\McpServer\tests\McpServer.SessionLog.Validation\obj\Debug\net9.0\McpServer.SessionLog.Validation.GeneratedMSBuildEditorConfig.editorconfig +E:\github\McpServer\tests\McpServer.SessionLog.Validation\obj\Debug\net9.0\McpServer.SessionLog.Validation.gentestingplatformentrypointinputcache.cache +E:\github\McpServer\tests\McpServer.SessionLog.Validation\obj\Debug\net9.0\McpServer.SessionLog.Validation.genautoregisteredextensionsinputcache.cache +E:\github\McpServer\tests\McpServer.SessionLog.Validation\obj\Debug\net9.0\SelfRegisteredExtensions.cs +E:\github\McpServer\tests\McpServer.SessionLog.Validation\obj\Debug\net9.0\McpServer.SessionLog.Validation.xUnit.v3.EntryPoint.cache +E:\github\McpServer\tests\McpServer.SessionLog.Validation\obj\Debug\net9.0\XunitAutoGeneratedEntryPoint.cs +E:\github\McpServer\tests\McpServer.SessionLog.Validation\obj\Debug\net9.0\McpServer.SessionLog.Validation.AssemblyInfoInputs.cache +E:\github\McpServer\tests\McpServer.SessionLog.Validation\obj\Debug\net9.0\McpServer.SessionLog.Validation.AssemblyInfo.cs +E:\github\McpServer\tests\McpServer.SessionLog.Validation\obj\Debug\net9.0\McpServer.SessionLog.Validation.csproj.CoreCompileInputs.cache +E:\github\McpServer\tests\McpServer.SessionLog.Validation\obj\Debug\net9.0\McpServer.SessionLog.Validation.sourcelink.json +E:\github\McpServer\tests\McpServer.SessionLog.Validation\obj\Debug\net9.0\McpServer.SessionLog.Validation.xml E:\github\McpServer\tests\McpServer.SessionLog.Validation\bin\Debug\net9.0\testhost.dll E:\github\McpServer\tests\McpServer.SessionLog.Validation\bin\Debug\net9.0\testhost.exe E:\github\McpServer\tests\McpServer.SessionLog.Validation\bin\Debug\net9.0\xunit.abstractions.dll @@ -7,6 +19,7 @@ E:\github\McpServer\tests\McpServer.SessionLog.Validation\bin\Debug\net9.0\McpSe E:\github\McpServer\tests\McpServer.SessionLog.Validation\bin\Debug\net9.0\McpServer.SessionLog.Validation.runtimeconfig.json E:\github\McpServer\tests\McpServer.SessionLog.Validation\bin\Debug\net9.0\McpServer.SessionLog.Validation.dll E:\github\McpServer\tests\McpServer.SessionLog.Validation\bin\Debug\net9.0\McpServer.SessionLog.Validation.pdb +E:\github\McpServer\tests\McpServer.SessionLog.Validation\bin\Debug\net9.0\McpServer.SessionLog.Validation.xml E:\github\McpServer\tests\McpServer.SessionLog.Validation\bin\Debug\net9.0\Microsoft.ApplicationInsights.dll E:\github\McpServer\tests\McpServer.SessionLog.Validation\bin\Debug\net9.0\Microsoft.Bcl.AsyncInterfaces.dll E:\github\McpServer\tests\McpServer.SessionLog.Validation\bin\Debug\net9.0\Microsoft.VisualStudio.CodeCoverage.Shim.dll @@ -132,17 +145,6 @@ E:\github\McpServer\tests\McpServer.SessionLog.Validation\bin\Debug\net9.0\zh-Ha E:\github\McpServer\tests\McpServer.SessionLog.Validation\bin\Debug\net9.0\zh-Hant\Microsoft.TestPlatform.CommunicationUtilities.resources.dll E:\github\McpServer\tests\McpServer.SessionLog.Validation\bin\Debug\net9.0\zh-Hant\Microsoft.TestPlatform.CrossPlatEngine.resources.dll E:\github\McpServer\tests\McpServer.SessionLog.Validation\bin\Debug\net9.0\zh-Hant\Microsoft.VisualStudio.TestPlatform.Common.resources.dll -E:\github\McpServer\tests\McpServer.SessionLog.Validation\obj\Debug\net9.0\McpServer.SessionLog.Validation.csproj.AssemblyReference.cache -E:\github\McpServer\tests\McpServer.SessionLog.Validation\obj\Debug\net9.0\McpServer.SessionLog.Validation.GeneratedMSBuildEditorConfig.editorconfig -E:\github\McpServer\tests\McpServer.SessionLog.Validation\obj\Debug\net9.0\McpServer.SessionLog.Validation.gentestingplatformentrypointinputcache.cache -E:\github\McpServer\tests\McpServer.SessionLog.Validation\obj\Debug\net9.0\McpServer.SessionLog.Validation.genautoregisteredextensionsinputcache.cache -E:\github\McpServer\tests\McpServer.SessionLog.Validation\obj\Debug\net9.0\SelfRegisteredExtensions.cs -E:\github\McpServer\tests\McpServer.SessionLog.Validation\obj\Debug\net9.0\McpServer.SessionLog.Validation.xUnit.v3.EntryPoint.cache -E:\github\McpServer\tests\McpServer.SessionLog.Validation\obj\Debug\net9.0\XunitAutoGeneratedEntryPoint.cs -E:\github\McpServer\tests\McpServer.SessionLog.Validation\obj\Debug\net9.0\McpServer.SessionLog.Validation.AssemblyInfoInputs.cache -E:\github\McpServer\tests\McpServer.SessionLog.Validation\obj\Debug\net9.0\McpServer.SessionLog.Validation.AssemblyInfo.cs -E:\github\McpServer\tests\McpServer.SessionLog.Validation\obj\Debug\net9.0\McpServer.SessionLog.Validation.csproj.CoreCompileInputs.cache -E:\github\McpServer\tests\McpServer.SessionLog.Validation\obj\Debug\net9.0\McpServer.SessionLog.Validation.sourcelink.json E:\github\McpServer\tests\McpServer.SessionLog.Validation\obj\Debug\net9.0\McpServe.96209571.Up2Date E:\github\McpServer\tests\McpServer.SessionLog.Validation\obj\Debug\net9.0\McpServer.SessionLog.Validation.dll E:\github\McpServer\tests\McpServer.SessionLog.Validation\obj\Debug\net9.0\refint\McpServer.SessionLog.Validation.dll diff --git a/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/McpServer.SessionLog.Validation.dll b/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/McpServer.SessionLog.Validation.dll index f18bf95b..25afef63 100644 Binary files a/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/McpServer.SessionLog.Validation.dll and b/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/McpServer.SessionLog.Validation.dll differ diff --git a/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/McpServer.SessionLog.Validation.pdb b/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/McpServer.SessionLog.Validation.pdb index 600cbe52..265cc1fd 100644 Binary files a/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/McpServer.SessionLog.Validation.pdb and b/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/McpServer.SessionLog.Validation.pdb differ diff --git a/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/McpServer.SessionLog.Validation.sourcelink.json b/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/McpServer.SessionLog.Validation.sourcelink.json index 8d16d508..27766b17 100644 --- a/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/McpServer.SessionLog.Validation.sourcelink.json +++ b/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/McpServer.SessionLog.Validation.sourcelink.json @@ -1 +1 @@ -{"documents":{"E:\\github\\McpServer\\*":"https://raw.githubusercontent.com/sharpninja/McpServer/5cd742347d165d9f16b6be5401ada7acc39769c3/*","E:\\github\\McpServer\\tools\\McpServerTools\\*":"https://raw.githubusercontent.com/sharpninja/McpServerTools/2adf237992e44196f0a5c73ddf8eb4316d01fae9/*"}} \ No newline at end of file +{"documents":{"E:\\github\\McpServer\\*":"https://raw.githubusercontent.com/sharpninja/McpServer/30ff2188706da955521d3f3552b690eaf8bbd7d4/*","E:\\github\\McpServer\\tools\\McpServerTools\\*":"https://raw.githubusercontent.com/sharpninja/McpServerTools/d5fb2a4f5662723e2c4aada1d48aaa55d035caf2/*"}} \ No newline at end of file diff --git a/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/apphost.exe b/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/apphost.exe index 3090dbce..91094b4a 100644 Binary files a/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/apphost.exe and b/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/apphost.exe differ diff --git a/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/ref/McpServer.SessionLog.Validation.dll b/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/ref/McpServer.SessionLog.Validation.dll index 01297926..bb4da167 100644 Binary files a/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/ref/McpServer.SessionLog.Validation.dll and b/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/ref/McpServer.SessionLog.Validation.dll differ diff --git a/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/refint/McpServer.SessionLog.Validation.dll b/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/refint/McpServer.SessionLog.Validation.dll index 01297926..bb4da167 100644 Binary files a/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/refint/McpServer.SessionLog.Validation.dll and b/tests/McpServer.SessionLog.Validation/obj/Debug/net9.0/refint/McpServer.SessionLog.Validation.dll differ diff --git a/tests/McpServer.SessionLog.Validation/obj/McpServer.SessionLog.Validation.csproj.nuget.dgspec.json b/tests/McpServer.SessionLog.Validation/obj/McpServer.SessionLog.Validation.csproj.nuget.dgspec.json index 2a0b2309..5e66a6d4 100644 --- a/tests/McpServer.SessionLog.Validation/obj/McpServer.SessionLog.Validation.csproj.nuget.dgspec.json +++ b/tests/McpServer.SessionLog.Validation/obj/McpServer.SessionLog.Validation.csproj.nuget.dgspec.json @@ -28,8 +28,8 @@ ], "sources": { "C:\\Program Files\\dotnet\\library-packs": {}, - "https://api.nuget.org/v3/index.json": {}, - "https://nuget.pkg.github.com/sharpninja/index.json": {} + "E:\\github\\McpServer\\local-packages": {}, + "https://api.nuget.org/v3/index.json": {} }, "frameworks": { "net9.0": { @@ -48,7 +48,7 @@ "auditLevel": "low", "auditMode": "direct" }, - "SdkAnalysisLevel": "10.0.100" + "SdkAnalysisLevel": "9.0.300" }, "frameworks": { "net9.0": { @@ -77,10 +77,20 @@ } }, "centralPackageVersions": { + "Avalonia": "11.3.12", + "BlazorMonaco": "3.4.0", + "bunit": "2.6.2", "Castle.Core": "5.2.1", + "CommunityToolkit.Mvvm": "8.4.0", "coverlet.collector": "6.0.4", + "Handlebars.Net": "2.1.6", "HnswIndex": "1.6.0", + "IdentityModel": "7.0.0", + "IdentityModel.OidcClient": "6.0.0", + "Microsoft.AspNetCore.Authentication.JwtBearer": "9.0.0", + "Microsoft.AspNetCore.Authentication.OpenIdConnect": "9.0.0", "Microsoft.AspNetCore.Mvc.Testing": "9.0.12", + "Microsoft.Bcl.AsyncInterfaces": "10.0.2", "Microsoft.EntityFrameworkCore": "9.0.12", "Microsoft.EntityFrameworkCore.Analyzers": "9.0.12", "Microsoft.EntityFrameworkCore.Design": "9.0.12", @@ -91,25 +101,42 @@ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.2", "Microsoft.Extensions.Hosting.Abstractions": "9.0.0", "Microsoft.Extensions.Hosting.WindowsServices": "9.0.12", + "Microsoft.Extensions.Http": "9.0.5", "Microsoft.Extensions.Http.Resilience": "9.0.0", "Microsoft.Extensions.Logging.Abstractions": "10.0.2", "Microsoft.Extensions.Options": "10.0.2", "Microsoft.Extensions.ServiceDiscovery": "9.0.0", "Microsoft.ML.OnnxRuntime": "1.24.1", "Microsoft.NET.Test.Sdk": "18.0.1", + "Microsoft.VisualStudio.ImageCatalog": "17.14.40260", + "Microsoft.VisualStudio.Imaging": "17.14.40264", + "Microsoft.VisualStudio.Shell.15.0": "17.14.40264", + "Microsoft.VSSDK.BuildTools": "17.14.2120", "ModelContextProtocol": "0.8.0-preview.1", "ModelContextProtocol.AspNetCore": "0.8.0-preview.1", + "NetEscapades.Configuration.Yaml": "3.1.0", + "Newtonsoft.Json": "13.0.4", + "Npgsql.EntityFrameworkCore.PostgreSQL": "9.0.3", "NSubstitute": "6.0.0", "OpenTelemetry.Exporter.OpenTelemetryProtocol": "1.15.0", "OpenTelemetry.Extensions.Hosting": "1.15.0", "OpenTelemetry.Instrumentation.AspNetCore": "1.15.0", "OpenTelemetry.Instrumentation.Http": "1.15.0", "OpenTelemetry.Instrumentation.Runtime": "1.15.0", + "Reqnroll": "3.0.0", + "Reqnroll.Tools.MsBuild.Generation": "3.0.0", + "Reqnroll.xUnit": "3.0.0", "Serilog.AspNetCore": "10.0.0", + "Serilog.Extensions.Logging": "9.0.0", "Serilog.Sinks.Console": "6.1.1", "Serilog.Sinks.File": "7.0.0", "Serilog.Sinks.Http": "9.2.1", + "Spectre.Console": "0.49.1", "Swashbuckle.AspNetCore": "10.1.2", + "System.CommandLine": "2.0.0-beta4.22272.1", + "System.IdentityModel.Tokens.Jwt": "8.7.0", + "System.Text.Json": "9.0.5", + "Terminal.Gui": "2.0.0", "xunit.runner.visualstudio": "3.1.5", "xunit.v3": "3.2.2", "YamlDotNet": "16.3.0" @@ -130,7 +157,7 @@ "privateAssets": "all" } }, - "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\10.0.103/PortableRuntimeIdentifierGraph.json" + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.311/PortableRuntimeIdentifierGraph.json" } } } diff --git a/tests/McpServer.SessionLog.Validation/obj/McpServer.SessionLog.Validation.csproj.nuget.g.props b/tests/McpServer.SessionLog.Validation/obj/McpServer.SessionLog.Validation.csproj.nuget.g.props index bbce60ff..3f17f43b 100644 --- a/tests/McpServer.SessionLog.Validation/obj/McpServer.SessionLog.Validation.csproj.nuget.g.props +++ b/tests/McpServer.SessionLog.Validation/obj/McpServer.SessionLog.Validation.csproj.nuget.g.props @@ -7,7 +7,7 @@ E:\packages\NuGet\cache E:\packages\NuGet\cache;C:\Program Files (x86)\Microsoft Visual Studio\Shared\NuGetPackages PackageReference - 7.0.0 + 6.14.0 diff --git a/tests/McpServer.SessionLog.Validation/obj/project.assets.json b/tests/McpServer.SessionLog.Validation/obj/project.assets.json index 7705f7c3..66d7beb9 100644 --- a/tests/McpServer.SessionLog.Validation/obj/project.assets.json +++ b/tests/McpServer.SessionLog.Validation/obj/project.assets.json @@ -2056,8 +2056,8 @@ ], "sources": { "C:\\Program Files\\dotnet\\library-packs": {}, - "https://api.nuget.org/v3/index.json": {}, - "https://nuget.pkg.github.com/sharpninja/index.json": {} + "E:\\github\\McpServer\\local-packages": {}, + "https://api.nuget.org/v3/index.json": {} }, "frameworks": { "net9.0": { @@ -2076,7 +2076,7 @@ "auditLevel": "low", "auditMode": "direct" }, - "SdkAnalysisLevel": "10.0.100" + "SdkAnalysisLevel": "9.0.300" }, "frameworks": { "net9.0": { @@ -2105,10 +2105,20 @@ } }, "centralPackageVersions": { + "Avalonia": "11.3.12", + "BlazorMonaco": "3.4.0", + "bunit": "2.6.2", "Castle.Core": "5.2.1", + "CommunityToolkit.Mvvm": "8.4.0", "coverlet.collector": "6.0.4", + "Handlebars.Net": "2.1.6", "HnswIndex": "1.6.0", + "IdentityModel": "7.0.0", + "IdentityModel.OidcClient": "6.0.0", + "Microsoft.AspNetCore.Authentication.JwtBearer": "9.0.0", + "Microsoft.AspNetCore.Authentication.OpenIdConnect": "9.0.0", "Microsoft.AspNetCore.Mvc.Testing": "9.0.12", + "Microsoft.Bcl.AsyncInterfaces": "10.0.2", "Microsoft.EntityFrameworkCore": "9.0.12", "Microsoft.EntityFrameworkCore.Analyzers": "9.0.12", "Microsoft.EntityFrameworkCore.Design": "9.0.12", @@ -2119,25 +2129,42 @@ "Microsoft.Extensions.DependencyInjection.Abstractions": "10.0.2", "Microsoft.Extensions.Hosting.Abstractions": "9.0.0", "Microsoft.Extensions.Hosting.WindowsServices": "9.0.12", + "Microsoft.Extensions.Http": "9.0.5", "Microsoft.Extensions.Http.Resilience": "9.0.0", "Microsoft.Extensions.Logging.Abstractions": "10.0.2", "Microsoft.Extensions.Options": "10.0.2", "Microsoft.Extensions.ServiceDiscovery": "9.0.0", "Microsoft.ML.OnnxRuntime": "1.24.1", "Microsoft.NET.Test.Sdk": "18.0.1", + "Microsoft.VisualStudio.ImageCatalog": "17.14.40260", + "Microsoft.VisualStudio.Imaging": "17.14.40264", + "Microsoft.VisualStudio.Shell.15.0": "17.14.40264", + "Microsoft.VSSDK.BuildTools": "17.14.2120", "ModelContextProtocol": "0.8.0-preview.1", "ModelContextProtocol.AspNetCore": "0.8.0-preview.1", + "NetEscapades.Configuration.Yaml": "3.1.0", + "Newtonsoft.Json": "13.0.4", + "Npgsql.EntityFrameworkCore.PostgreSQL": "9.0.3", "NSubstitute": "6.0.0", "OpenTelemetry.Exporter.OpenTelemetryProtocol": "1.15.0", "OpenTelemetry.Extensions.Hosting": "1.15.0", "OpenTelemetry.Instrumentation.AspNetCore": "1.15.0", "OpenTelemetry.Instrumentation.Http": "1.15.0", "OpenTelemetry.Instrumentation.Runtime": "1.15.0", + "Reqnroll": "3.0.0", + "Reqnroll.Tools.MsBuild.Generation": "3.0.0", + "Reqnroll.xUnit": "3.0.0", "Serilog.AspNetCore": "10.0.0", + "Serilog.Extensions.Logging": "9.0.0", "Serilog.Sinks.Console": "6.1.1", "Serilog.Sinks.File": "7.0.0", "Serilog.Sinks.Http": "9.2.1", + "Spectre.Console": "0.49.1", "Swashbuckle.AspNetCore": "10.1.2", + "System.CommandLine": "2.0.0-beta4.22272.1", + "System.IdentityModel.Tokens.Jwt": "8.7.0", + "System.Text.Json": "9.0.5", + "Terminal.Gui": "2.0.0", "xunit.runner.visualstudio": "3.1.5", "xunit.v3": "3.2.2", "YamlDotNet": "16.3.0" @@ -2158,7 +2185,7 @@ "privateAssets": "all" } }, - "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\10.0.103/PortableRuntimeIdentifierGraph.json" + "runtimeIdentifierGraphPath": "C:\\Program Files\\dotnet\\sdk\\9.0.311/PortableRuntimeIdentifierGraph.json" } } } diff --git a/tests/McpServer.SessionLog.Validation/obj/project.nuget.cache b/tests/McpServer.SessionLog.Validation/obj/project.nuget.cache index 3d4f315f..63c8c734 100644 --- a/tests/McpServer.SessionLog.Validation/obj/project.nuget.cache +++ b/tests/McpServer.SessionLog.Validation/obj/project.nuget.cache @@ -1,6 +1,6 @@ { "version": 2, - "dgSpecHash": "9tFLQrq0P3c=", + "dgSpecHash": "W3NDlQvgZqg=", "success": true, "projectFilePath": "E:\\github\\McpServer\\tests\\McpServer.SessionLog.Validation\\McpServer.SessionLog.Validation.csproj", "expectedPackageFiles": [ diff --git a/tests/McpServer.SpecFlow.Tests/Features/Auth/ApiKeyAuthentication.feature b/tests/McpServer.SpecFlow.Tests/Features/Auth/ApiKeyAuthentication.feature deleted file mode 100644 index ac717794..00000000 --- a/tests/McpServer.SpecFlow.Tests/Features/Auth/ApiKeyAuthentication.feature +++ /dev/null @@ -1,49 +0,0 @@ -Feature: API Key Authentication - As a server administrator - I want mutating endpoints protected by an API key - So that unauthorized agents cannot modify server state - - Background: - Given the MCP server is running - - # FR-MCP-013 / TR-MCP-SEC-001 / TEST-MCP-009 - - Scenario: Read endpoint without API key returns 200 - When I send a GET request to "/mcp/workspace" without an API key - Then the response status code should be 200 - - Scenario: Read endpoint decorated with SkipApiKeyAuth returns 200 without key - When I send a GET request to "/mcp/tools" without an API key - Then the response status code should be 200 - - Scenario: Workspace list is publicly accessible - When I send a GET request to "/mcp/workspace" without an API key - Then the response status code should be 200 - - Scenario: Workspace status endpoint is publicly accessible - When I send a GET request to "/mcp/workspace/dW5rbm93bg==/status" without an API key - Then the response status code is 200 or 404 - - Scenario: Context search is publicly accessible - When I POST to "/mcp/context/search" without an API key with body: - """ - { "query": "test", "limit": 5 } - """ - Then the response status code should be 200 - - Scenario: Tool registry GET is publicly accessible - When I send a GET request to "/mcp/tools/search?keyword=test" without an API key - Then the response status code should be 200 - - Scenario: API key header X-Api-Key is validated on mutating workspace endpoints - # In test environment Mcp:ApiKey is not set so all requests pass (open mode) - When I POST to "/mcp/workspace" with body: - """ - { "workspacePath": "/tmp/apikey-test-ws", "name": "apikey-ws" } - """ - Then the response status code is 201 or 409 - - Scenario: API key can be passed as query parameter api_key - # In open mode (no key configured) this always passes - When I send a GET request to "/mcp/workspace?api_key=any-value" - Then the response status code should be 200 diff --git a/tests/McpServer.SpecFlow.Tests/Features/Auth/ApiKeyAuthentication.feature.cs b/tests/McpServer.SpecFlow.Tests/Features/Auth/ApiKeyAuthentication.feature.cs deleted file mode 100644 index 445eb572..00000000 --- a/tests/McpServer.SpecFlow.Tests/Features/Auth/ApiKeyAuthentication.feature.cs +++ /dev/null @@ -1,570 +0,0 @@ -// ------------------------------------------------------------------------------ -// -// This code was generated by Reqnroll (https://www.reqnroll.net/). -// Reqnroll Version:3.0.0.0 -// Reqnroll Generator Version:3.0.0.0 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -// ------------------------------------------------------------------------------ -#region Designer generated code -#pragma warning disable -using Reqnroll; -namespace McpServer.SpecFlow.Tests.Features.Auth -{ - - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Reqnroll", "3.0.0.0")] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - public partial class APIKeyAuthenticationFeature : object, global::Xunit.IClassFixture, global::Xunit.IAsyncLifetime - { - - private global::Reqnroll.ITestRunner testRunner; - - private static string[] featureTags = ((string[])(null)); - - private static global::Reqnroll.FeatureInfo featureInfo = new global::Reqnroll.FeatureInfo(new global::System.Globalization.CultureInfo("en-US"), "Features/Auth", "API Key Authentication", " As a server administrator\r\n I want mutating endpoints protected by an API key\r" + - "\n So that unauthorized agents cannot modify server state", global::Reqnroll.ProgrammingLanguage.CSharp, featureTags, InitializeCucumberMessages()); - - private global::Xunit.Abstractions.ITestOutputHelper _testOutputHelper; - -#line 1 "ApiKeyAuthentication.feature" -#line hidden - - public APIKeyAuthenticationFeature(APIKeyAuthenticationFeature.FixtureData fixtureData, global::Xunit.Abstractions.ITestOutputHelper testOutputHelper) - { - this._testOutputHelper = testOutputHelper; - } - - public static async global::System.Threading.Tasks.Task FeatureSetupAsync() - { - } - - public static async global::System.Threading.Tasks.Task FeatureTearDownAsync() - { - await global::Reqnroll.TestRunnerManager.ReleaseFeatureAsync(featureInfo); - } - - public async global::System.Threading.Tasks.Task TestInitializeAsync() - { - testRunner = global::Reqnroll.TestRunnerManager.GetTestRunnerForAssembly(featureHint: featureInfo); - try - { - if (((testRunner.FeatureContext != null) - && (testRunner.FeatureContext.FeatureInfo.Equals(featureInfo) == false))) - { - await testRunner.OnFeatureEndAsync(); - } - } - finally - { - if (((testRunner.FeatureContext != null) - && testRunner.FeatureContext.BeforeFeatureHookFailed)) - { - throw new global::Reqnroll.ReqnrollException("Scenario skipped because of previous before feature hook error"); - } - if ((testRunner.FeatureContext == null)) - { - await testRunner.OnFeatureStartAsync(featureInfo); - } - } - } - - public async global::System.Threading.Tasks.Task TestTearDownAsync() - { - if ((testRunner == null)) - { - return; - } - try - { - await testRunner.OnScenarioEndAsync(); - } - finally - { - global::Reqnroll.TestRunnerManager.ReleaseTestRunner(testRunner); - testRunner = null; - } - } - - public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, global::Reqnroll.RuleInfo ruleInfo) - { - testRunner.OnScenarioInitialize(scenarioInfo, ruleInfo); - testRunner.ScenarioContext.ScenarioContainer.RegisterInstanceAs(_testOutputHelper); - } - - public async global::System.Threading.Tasks.Task ScenarioStartAsync() - { - await testRunner.OnScenarioStartAsync(); - } - - public async global::System.Threading.Tasks.Task ScenarioCleanupAsync() - { - await testRunner.CollectScenarioErrorsAsync(); - } - - public virtual async global::System.Threading.Tasks.Task FeatureBackgroundAsync() - { -#line 6 - #line hidden -#line 7 - await testRunner.GivenAsync("the MCP server is running", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden - } - - private static global::Io.Cucumber.Messages.Types.Source SourceFunc() - { - return new global::Io.Cucumber.Messages.Types.Source("Features/Auth/ApiKeyAuthentication.feature", "Feature: API Key Authentication\r\n As a server administrator\r\n I want mutating e" + - "ndpoints protected by an API key\r\n So that unauthorized agents cannot modify se" + - "rver state\r\n\r\n Background:\r\n Given the MCP server is running\r\n\r\n # FR-MCP-0" + - "13 / TR-MCP-SEC-001 / TEST-MCP-009\r\n\r\n Scenario: Read endpoint without API key " + - "returns 200\r\n When I send a GET request to \"/mcp/workspace\" without an API ke" + - "y\r\n Then the response status code should be 200\r\n\r\n Scenario: Read endpoint " + - "decorated with SkipApiKeyAuth returns 200 without key\r\n When I send a GET req" + - "uest to \"/mcp/tools\" without an API key\r\n Then the response status code shoul" + - "d be 200\r\n\r\n Scenario: Workspace list is publicly accessible\r\n When I send a" + - " GET request to \"/mcp/workspace\" without an API key\r\n Then the response statu" + - "s code should be 200\r\n\r\n Scenario: Workspace status endpoint is publicly access" + - "ible\r\n When I send a GET request to \"/mcp/workspace/dW5rbm93bg==/status\" with" + - "out an API key\r\n Then the response status code is 200 or 404\r\n\r\n Scenario: C" + - "ontext search is publicly accessible\r\n When I POST to \"/mcp/context/search\" w" + - "ithout an API key with body:\r\n \"\"\"\r\n { \"query\": \"test\", \"limit\": 5 }\r\n" + - " \"\"\"\r\n Then the response status code should be 200\r\n\r\n Scenario: Tool r" + - "egistry GET is publicly accessible\r\n When I send a GET request to \"/mcp/tools" + - "/search?keyword=test\" without an API key\r\n Then the response status code shou" + - "ld be 200\r\n\r\n Scenario: API key header X-Api-Key is validated on mutating works" + - "pace endpoints\r\n # In test environment Mcp:ApiKey is not set so all requests " + - "pass (open mode)\r\n When I POST to \"/mcp/workspace\" with body:\r\n \"\"\"\r\n " + - " { \"workspacePath\": \"/tmp/apikey-test-ws\", \"name\": \"apikey-ws\" }\r\n \"\"\"\r\n " + - " Then the response status code is 201 or 409\r\n\r\n Scenario: API key can be pas" + - "sed as query parameter api_key\r\n # In open mode (no key configured) this alwa" + - "ys passes\r\n When I send a GET request to \"/mcp/workspace?api_key=any-value\"\r\n" + - " Then the response status code should be 200\r\n", global::Io.Cucumber.Messages.Types.SourceMediaType.TEXT_X_CUCUMBER_GHERKIN_PLAIN); - } - - private static global::Io.Cucumber.Messages.Types.GherkinDocument GherkinDocumentFunc() - { - return new global::Io.Cucumber.Messages.Types.GherkinDocument("Features/Auth/ApiKeyAuthentication.feature", new global::Io.Cucumber.Messages.Types.Feature(new global::Io.Cucumber.Messages.Types.Location(1, new System.Nullable(1)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "en-US", "Feature", "API Key Authentication", " As a server administrator\r\n I want mutating endpoints protected by an API key\r" + - "\n So that unauthorized agents cannot modify server state", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.FeatureChild[] { - new global::Io.Cucumber.Messages.Types.FeatureChild(null, new global::Io.Cucumber.Messages.Types.Background(new global::Io.Cucumber.Messages.Types.Location(6, new System.Nullable(3)), "Background", "", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(7, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "the MCP server is running", null, null, "1092fd60746323508a2e7291ba0a0455")}), "170c3c0909b8f95fa0bccc6e8a7dfc85"), null), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(11, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Read endpoint without API key returns 200", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(12, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/workspace\" without an API key", null, null, "e4ac454501d73b569bdd85eda48cc63e"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(13, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "c8ad014ec36eab559ec68bad6c423a7a")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "148d9f571b76ed5399cc03c53bfa662c")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(15, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Read endpoint decorated with SkipApiKeyAuth returns 200 without key", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(16, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/tools\" without an API key", null, null, "7d84f394053ee05ca310f7c586a2ef91"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(17, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "73e133fdfe6d2c55a62a65b90018a337")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "f6c9c3dee8bc1157b3d7f51cf3e76c69")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(19, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Workspace list is publicly accessible", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(20, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/workspace\" without an API key", null, null, "541a6a69598b4f5b88e01664944a8ec4"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(21, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "050745134d26e855a39b7fdc29040425")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "33575522fb1b0f5a9565660a5e7094c5")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(23, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Workspace status endpoint is publicly accessible", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(24, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/workspace/dW5rbm93bg==/status\" without an API key", null, null, "56ca035cd0b8335cb039a8b40d8ecbae"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(25, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code is 200 or 404", null, null, "bbb68165fc8bd55a9273c469a39fdfa1")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "797dce549a70fc5784c0ebad5cf65f0d")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(27, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Context search is publicly accessible", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(28, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/context/search\" without an API key with body:", new global::Io.Cucumber.Messages.Types.DocString(new global::Io.Cucumber.Messages.Types.Location(29, new System.Nullable(7)), null, "{ \"query\": \"test\", \"limit\": 5 }", "\"\"\""), null, "e0fae9a20ff1405bad26bcf38fa7e95d"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(32, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "9f792d3869efe25f93a3ab42a4b90f1a")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "2c0fce4f27ec3159bfdda565c1bbb09e")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(34, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Tool registry GET is publicly accessible", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(35, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/tools/search?keyword=test\" without an API key", null, null, "e88cd7cf7449685fa2dd7cf43577524b"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(36, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "cc99ed5ec66d8954b9f5a7e9f65e3bee")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "203bebb2a85976519976316f1158d151")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(38, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "API key header X-Api-Key is validated on mutating workspace endpoints", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(40, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/workspace\" with body:", new global::Io.Cucumber.Messages.Types.DocString(new global::Io.Cucumber.Messages.Types.Location(41, new System.Nullable(7)), null, "{ \"workspacePath\": \"/tmp/apikey-test-ws\", \"name\": \"apikey-ws\" }", "\"\"\""), null, "7bea680cde8eb55f8dbd808acdae8b0b"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(44, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code is 201 or 409", null, null, "b5c86967c838fa5aad2261eb31c39130")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "d91accddbb466356ae3ca020e2f0a6d8")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(46, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "API key can be passed as query parameter api_key", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(48, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/workspace?api_key=any-value\"", null, null, "cff24b0caae9495f85025c34772a7183"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(49, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "77b2f4c522b13652ac709e6ac157ddb6")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "18fe140d8ae5f85eb26409fab963ba32"))})), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Comment[] { - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(9, new System.Nullable(1)), " # FR-MCP-013 / TR-MCP-SEC-001 / TEST-MCP-009"), - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(39, new System.Nullable(1)), " # In test environment Mcp:ApiKey is not set so all requests pass (open mode)"), - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(47, new System.Nullable(1)), " # In open mode (no key configured) this always passes")})); - } - - private static global::System.Collections.Generic.IEnumerable PicklesFunc() - { - return new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Pickle[] { - new global::Io.Cucumber.Messages.Types.Pickle("fe586ea9559d145da4ecb767b881c6d2", "Features/Auth/ApiKeyAuthentication.feature", "Read endpoint without API key returns 200", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "1092fd60746323508a2e7291ba0a0455"}), "6318d0afe9552c5cb89ea616ed04e497", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "e4ac454501d73b569bdd85eda48cc63e"}), "ed54a2c1725fac5d85bf1a190bbc73fe", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/workspace\" without an API key"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "c8ad014ec36eab559ec68bad6c423a7a"}), "728d41e42912985bbbca2e04ea8b7eaf", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "148d9f571b76ed5399cc03c53bfa662c"})), - new global::Io.Cucumber.Messages.Types.Pickle("56769d2cb8e08b51af9944d4b0c4df96", "Features/Auth/ApiKeyAuthentication.feature", "Read endpoint decorated with SkipApiKeyAuth returns 200 without key", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "1092fd60746323508a2e7291ba0a0455"}), "beb265d67722035184561edf43f5774d", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "7d84f394053ee05ca310f7c586a2ef91"}), "488b4f9c7df9c55fbae32e52b48fab0b", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/tools\" without an API key"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "73e133fdfe6d2c55a62a65b90018a337"}), "6c5aa213ae74c95f9c95c4e0879a71f9", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "f6c9c3dee8bc1157b3d7f51cf3e76c69"})), - new global::Io.Cucumber.Messages.Types.Pickle("3f624648d13a6d558ed0fafcc9b2fdaf", "Features/Auth/ApiKeyAuthentication.feature", "Workspace list is publicly accessible", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "1092fd60746323508a2e7291ba0a0455"}), "9b09d68d39e923549be1577d246d4c9d", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "541a6a69598b4f5b88e01664944a8ec4"}), "d4d0d3daae164b5fad58a2e940ac1728", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/workspace\" without an API key"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "050745134d26e855a39b7fdc29040425"}), "604ed0a073fdbe58b744d61ad41b95e3", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "33575522fb1b0f5a9565660a5e7094c5"})), - new global::Io.Cucumber.Messages.Types.Pickle("6c5e38e078106650b30b18763c9ba6c0", "Features/Auth/ApiKeyAuthentication.feature", "Workspace status endpoint is publicly accessible", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "1092fd60746323508a2e7291ba0a0455"}), "1f5e1203fff68d529e2af549f8a98a42", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "56ca035cd0b8335cb039a8b40d8ecbae"}), "d1dd0b8a5819155fb288ac4ded2af287", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/workspace/dW5rbm93bg==/status\" without an API key"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "bbb68165fc8bd55a9273c469a39fdfa1"}), "4920c7c5199a58588fe43ef036ad369a", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code is 200 or 404")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "797dce549a70fc5784c0ebad5cf65f0d"})), - new global::Io.Cucumber.Messages.Types.Pickle("2e9606be416e2a5fa04b4892455c4e0f", "Features/Auth/ApiKeyAuthentication.feature", "Context search is publicly accessible", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "1092fd60746323508a2e7291ba0a0455"}), "4407194199ac9c56b3ecb6e87f5ab2d7", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(new global::Io.Cucumber.Messages.Types.PickleStepArgument(new global::Io.Cucumber.Messages.Types.PickleDocString(null, "{ \"query\": \"test\", \"limit\": 5 }"), null), new System.Collections.Generic.List(new string[] { - "e0fae9a20ff1405bad26bcf38fa7e95d"}), "9a536956b9472157b8004030464690a6", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/context/search\" without an API key with body:"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "9f792d3869efe25f93a3ab42a4b90f1a"}), "f6398b3fe65ac05b9e9135f97fc92dc9", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "2c0fce4f27ec3159bfdda565c1bbb09e"})), - new global::Io.Cucumber.Messages.Types.Pickle("3cc396b0b2bb7558ba534a61a4f920d3", "Features/Auth/ApiKeyAuthentication.feature", "Tool registry GET is publicly accessible", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "1092fd60746323508a2e7291ba0a0455"}), "645742778670565ea67c064d6dbc26b3", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "e88cd7cf7449685fa2dd7cf43577524b"}), "e5a6d3b8f7e03257a9219a3e9fc42bab", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/tools/search?keyword=test\" without an API key"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "cc99ed5ec66d8954b9f5a7e9f65e3bee"}), "72e07159cebbda51b5f3a17066034665", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "203bebb2a85976519976316f1158d151"})), - new global::Io.Cucumber.Messages.Types.Pickle("6c18dd55a710b95d9f6f2040ac620251", "Features/Auth/ApiKeyAuthentication.feature", "API key header X-Api-Key is validated on mutating workspace endpoints", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "1092fd60746323508a2e7291ba0a0455"}), "ad707853cfe6e352b55b5ab344c221ed", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(new global::Io.Cucumber.Messages.Types.PickleStepArgument(new global::Io.Cucumber.Messages.Types.PickleDocString(null, "{ \"workspacePath\": \"/tmp/apikey-test-ws\", \"name\": \"apikey-ws\" }"), null), new System.Collections.Generic.List(new string[] { - "7bea680cde8eb55f8dbd808acdae8b0b"}), "d6d4e6ce7c1b8e528eb59adea9ab1f16", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/workspace\" with body:"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "b5c86967c838fa5aad2261eb31c39130"}), "6cdf09cfe7dba054898a790704f05246", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code is 201 or 409")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "d91accddbb466356ae3ca020e2f0a6d8"})), - new global::Io.Cucumber.Messages.Types.Pickle("f058502314870d5885517909d82f4893", "Features/Auth/ApiKeyAuthentication.feature", "API key can be passed as query parameter api_key", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "1092fd60746323508a2e7291ba0a0455"}), "1519066f6477f95e8b2f76f38241dfc8", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "cff24b0caae9495f85025c34772a7183"}), "8161bcf8601bf5588372a14c6c6d7050", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/workspace?api_key=any-value\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "77b2f4c522b13652ac709e6ac157ddb6"}), "fcc00d45ba8b7a52bd877c96e3e910a7", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "18fe140d8ae5f85eb26409fab963ba32"}))}); - } - - private static global::Reqnroll.Formatters.RuntimeSupport.FeatureLevelCucumberMessages InitializeCucumberMessages() - { - return new global::Reqnroll.Formatters.RuntimeSupport.FeatureLevelCucumberMessages(new global::System.Func(APIKeyAuthenticationFeature.SourceFunc), new global::System.Func(APIKeyAuthenticationFeature.GherkinDocumentFunc), new global::System.Func>(APIKeyAuthenticationFeature.PicklesFunc)); - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.InitializeAsync() - { - try - { - await this.TestInitializeAsync(); - } - catch (System.Exception e1) - { - try - { - ((global::Xunit.IAsyncLifetime)(this)).DisposeAsync(); - } - catch (System.Exception e2) - { - throw new System.AggregateException("Test initialization failed", e1, e2); - } - throw; - } - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.DisposeAsync() - { - await this.TestTearDownAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Read endpoint without API key returns 200")] - [global::Xunit.TraitAttribute("FeatureTitle", "API Key Authentication")] - [global::Xunit.TraitAttribute("Description", "Read endpoint without API key returns 200")] - public async global::System.Threading.Tasks.Task ReadEndpointWithoutAPIKeyReturns200() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "0"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Read endpoint without API key returns 200", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 11 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 12 - await testRunner.WhenAsync("I send a GET request to \"/mcp/workspace\" without an API key", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 13 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Read endpoint decorated with SkipApiKeyAuth returns 200 without key")] - [global::Xunit.TraitAttribute("FeatureTitle", "API Key Authentication")] - [global::Xunit.TraitAttribute("Description", "Read endpoint decorated with SkipApiKeyAuth returns 200 without key")] - public async global::System.Threading.Tasks.Task ReadEndpointDecoratedWithSkipApiKeyAuthReturns200WithoutKey() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "1"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Read endpoint decorated with SkipApiKeyAuth returns 200 without key", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 15 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 16 - await testRunner.WhenAsync("I send a GET request to \"/mcp/tools\" without an API key", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 17 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Workspace list is publicly accessible")] - [global::Xunit.TraitAttribute("FeatureTitle", "API Key Authentication")] - [global::Xunit.TraitAttribute("Description", "Workspace list is publicly accessible")] - public async global::System.Threading.Tasks.Task WorkspaceListIsPubliclyAccessible() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "2"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Workspace list is publicly accessible", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 19 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 20 - await testRunner.WhenAsync("I send a GET request to \"/mcp/workspace\" without an API key", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 21 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Workspace status endpoint is publicly accessible")] - [global::Xunit.TraitAttribute("FeatureTitle", "API Key Authentication")] - [global::Xunit.TraitAttribute("Description", "Workspace status endpoint is publicly accessible")] - public async global::System.Threading.Tasks.Task WorkspaceStatusEndpointIsPubliclyAccessible() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "3"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Workspace status endpoint is publicly accessible", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 23 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 24 - await testRunner.WhenAsync("I send a GET request to \"/mcp/workspace/dW5rbm93bg==/status\" without an API key", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 25 - await testRunner.ThenAsync("the response status code is 200 or 404", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Context search is publicly accessible")] - [global::Xunit.TraitAttribute("FeatureTitle", "API Key Authentication")] - [global::Xunit.TraitAttribute("Description", "Context search is publicly accessible")] - public async global::System.Threading.Tasks.Task ContextSearchIsPubliclyAccessible() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "4"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Context search is publicly accessible", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 27 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 28 - await testRunner.WhenAsync("I POST to \"/mcp/context/search\" without an API key with body:", "{ \"query\": \"test\", \"limit\": 5 }", ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 32 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Tool registry GET is publicly accessible")] - [global::Xunit.TraitAttribute("FeatureTitle", "API Key Authentication")] - [global::Xunit.TraitAttribute("Description", "Tool registry GET is publicly accessible")] - public async global::System.Threading.Tasks.Task ToolRegistryGETIsPubliclyAccessible() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "5"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Tool registry GET is publicly accessible", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 34 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 35 - await testRunner.WhenAsync("I send a GET request to \"/mcp/tools/search?keyword=test\" without an API key", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 36 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="API key header X-Api-Key is validated on mutating workspace endpoints")] - [global::Xunit.TraitAttribute("FeatureTitle", "API Key Authentication")] - [global::Xunit.TraitAttribute("Description", "API key header X-Api-Key is validated on mutating workspace endpoints")] - public async global::System.Threading.Tasks.Task APIKeyHeaderX_Api_KeyIsValidatedOnMutatingWorkspaceEndpoints() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "6"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("API key header X-Api-Key is validated on mutating workspace endpoints", "", tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 38 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 40 - await testRunner.WhenAsync("I POST to \"/mcp/workspace\" with body:", "{ \"workspacePath\": \"/tmp/apikey-test-ws\", \"name\": \"apikey-ws\" }", ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 44 - await testRunner.ThenAsync("the response status code is 201 or 409", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="API key can be passed as query parameter api_key")] - [global::Xunit.TraitAttribute("FeatureTitle", "API Key Authentication")] - [global::Xunit.TraitAttribute("Description", "API key can be passed as query parameter api_key")] - public async global::System.Threading.Tasks.Task APIKeyCanBePassedAsQueryParameterApi_Key() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "7"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("API key can be passed as query parameter api_key", "", tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 46 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 48 - await testRunner.WhenAsync("I send a GET request to \"/mcp/workspace?api_key=any-value\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 49 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Reqnroll", "3.0.0.0")] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - public class FixtureData : object, global::Xunit.IAsyncLifetime - { - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.InitializeAsync() - { - await APIKeyAuthenticationFeature.FeatureSetupAsync(); - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.DisposeAsync() - { - await APIKeyAuthenticationFeature.FeatureTearDownAsync(); - } - } - } -} -#pragma warning restore -#endregion diff --git a/tests/McpServer.SpecFlow.Tests/Features/Auth/PairingWebUI.feature b/tests/McpServer.SpecFlow.Tests/Features/Auth/PairingWebUI.feature deleted file mode 100644 index c3df9590..00000000 --- a/tests/McpServer.SpecFlow.Tests/Features/Auth/PairingWebUI.feature +++ /dev/null @@ -1,51 +0,0 @@ -Feature: Pairing Web UI - As an authorized user - I want a browser-based login flow to retrieve the API key - So that I can configure MCP clients without exposing credentials in config files - - Background: - Given the MCP server is running - - # FR-MCP-014 / TR-MCP-SEC-002 / TEST-MCP-010 - - Scenario: Pairing login page returns 200 with HTML - When I send a GET request to "/pair" - Then the response status code should be 200 - And the response content type should contain "text/html" - - Scenario: Pairing login page shows form when API key is configured - When I send a GET request to "/pair" - Then the response status code should be 200 - - Scenario: Pairing key endpoint redirects to login when not authenticated - When I send a GET request to "/pair/key" - Then the response status code is 200 or 302 - - Scenario: Pairing login with invalid credentials returns 401 or redirects to error - When I POST to "/pair" with form fields: - | Field | Value | - | username | nonexistentuser | - | password | wrongpassword | - Then the response status code is 200 or 401 or 302 - - Scenario: Pairing login with valid credentials issues HttpOnly session cookie - # In test mode with no PairingUsers configured, this returns the not-configured page - When I POST to "/pair" with form fields: - | Field | Value | - | username | testuser | - | password | testpass | - Then the response status code is 200 or 302 or 401 - - Scenario: SHA-256 constant-time comparison is used for password verification - # Timing attack resistance is verified by the service implementation; this test - # ensures the endpoint doesn't leak which character differs via timing. - When I POST to "/pair" with form fields: - | Field | Value | - | username | admin | - | password | aaaaaa | - Then the response status code is 200 or 302 or 401 - - Scenario: Pairing page shows not-configured message when ApiKey is empty - # In the test environment Mcp:ApiKey is empty; the page should show not-configured state - When I send a GET request to "/pair" - Then the response status code should be 200 diff --git a/tests/McpServer.SpecFlow.Tests/Features/Auth/PairingWebUI.feature.cs b/tests/McpServer.SpecFlow.Tests/Features/Auth/PairingWebUI.feature.cs deleted file mode 100644 index 5d1f0d55..00000000 --- a/tests/McpServer.SpecFlow.Tests/Features/Auth/PairingWebUI.feature.cs +++ /dev/null @@ -1,621 +0,0 @@ -// ------------------------------------------------------------------------------ -// -// This code was generated by Reqnroll (https://www.reqnroll.net/). -// Reqnroll Version:3.0.0.0 -// Reqnroll Generator Version:3.0.0.0 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -// ------------------------------------------------------------------------------ -#region Designer generated code -#pragma warning disable -using Reqnroll; -namespace McpServer.SpecFlow.Tests.Features.Auth -{ - - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Reqnroll", "3.0.0.0")] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - public partial class PairingWebUIFeature : object, global::Xunit.IClassFixture, global::Xunit.IAsyncLifetime - { - - private global::Reqnroll.ITestRunner testRunner; - - private static string[] featureTags = ((string[])(null)); - - private static global::Reqnroll.FeatureInfo featureInfo = new global::Reqnroll.FeatureInfo(new global::System.Globalization.CultureInfo("en-US"), "Features/Auth", "Pairing Web UI", " As an authorized user\r\n I want a browser-based login flow to retrieve the API " + - "key\r\n So that I can configure MCP clients without exposing credentials in confi" + - "g files", global::Reqnroll.ProgrammingLanguage.CSharp, featureTags, InitializeCucumberMessages()); - - private global::Xunit.Abstractions.ITestOutputHelper _testOutputHelper; - -#line 1 "PairingWebUI.feature" -#line hidden - - public PairingWebUIFeature(PairingWebUIFeature.FixtureData fixtureData, global::Xunit.Abstractions.ITestOutputHelper testOutputHelper) - { - this._testOutputHelper = testOutputHelper; - } - - public static async global::System.Threading.Tasks.Task FeatureSetupAsync() - { - } - - public static async global::System.Threading.Tasks.Task FeatureTearDownAsync() - { - await global::Reqnroll.TestRunnerManager.ReleaseFeatureAsync(featureInfo); - } - - public async global::System.Threading.Tasks.Task TestInitializeAsync() - { - testRunner = global::Reqnroll.TestRunnerManager.GetTestRunnerForAssembly(featureHint: featureInfo); - try - { - if (((testRunner.FeatureContext != null) - && (testRunner.FeatureContext.FeatureInfo.Equals(featureInfo) == false))) - { - await testRunner.OnFeatureEndAsync(); - } - } - finally - { - if (((testRunner.FeatureContext != null) - && testRunner.FeatureContext.BeforeFeatureHookFailed)) - { - throw new global::Reqnroll.ReqnrollException("Scenario skipped because of previous before feature hook error"); - } - if ((testRunner.FeatureContext == null)) - { - await testRunner.OnFeatureStartAsync(featureInfo); - } - } - } - - public async global::System.Threading.Tasks.Task TestTearDownAsync() - { - if ((testRunner == null)) - { - return; - } - try - { - await testRunner.OnScenarioEndAsync(); - } - finally - { - global::Reqnroll.TestRunnerManager.ReleaseTestRunner(testRunner); - testRunner = null; - } - } - - public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, global::Reqnroll.RuleInfo ruleInfo) - { - testRunner.OnScenarioInitialize(scenarioInfo, ruleInfo); - testRunner.ScenarioContext.ScenarioContainer.RegisterInstanceAs(_testOutputHelper); - } - - public async global::System.Threading.Tasks.Task ScenarioStartAsync() - { - await testRunner.OnScenarioStartAsync(); - } - - public async global::System.Threading.Tasks.Task ScenarioCleanupAsync() - { - await testRunner.CollectScenarioErrorsAsync(); - } - - public virtual async global::System.Threading.Tasks.Task FeatureBackgroundAsync() - { -#line 6 - #line hidden -#line 7 - await testRunner.GivenAsync("the MCP server is running", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden - } - - private static global::Io.Cucumber.Messages.Types.Source SourceFunc() - { - return new global::Io.Cucumber.Messages.Types.Source("Features/Auth/PairingWebUI.feature", "Feature: Pairing Web UI\r\n As an authorized user\r\n I want a browser-based login " + - "flow to retrieve the API key\r\n So that I can configure MCP clients without expo" + - "sing credentials in config files\r\n\r\n Background:\r\n Given the MCP server is r" + - "unning\r\n\r\n # FR-MCP-014 / TR-MCP-SEC-002 / TEST-MCP-010\r\n\r\n Scenario: Pairing " + - "login page returns 200 with HTML\r\n When I send a GET request to \"/pair\"\r\n " + - "Then the response status code should be 200\r\n And the response content type s" + - "hould contain \"text/html\"\r\n\r\n Scenario: Pairing login page shows form when API " + - "key is configured\r\n When I send a GET request to \"/pair\"\r\n Then the respon" + - "se status code should be 200\r\n\r\n Scenario: Pairing key endpoint redirects to lo" + - "gin when not authenticated\r\n When I send a GET request to \"/pair/key\"\r\n Th" + - "en the response status code is 200 or 302\r\n\r\n Scenario: Pairing login with inva" + - "lid credentials returns 401 or redirects to error\r\n When I POST to \"/pair\" wi" + - "th form fields:\r\n | Field | Value |\r\n | username | non" + - "existentuser |\r\n | password | wrongpassword |\r\n Then the respons" + - "e status code is 200 or 401 or 302\r\n\r\n Scenario: Pairing login with valid crede" + - "ntials issues HttpOnly session cookie\r\n # In test mode with no PairingUsers c" + - "onfigured, this returns the not-configured page\r\n When I POST to \"/pair\" with" + - " form fields:\r\n | Field | Value |\r\n | username | testuser |\r\n " + - " | password | testpass |\r\n Then the response status code is 200 or 302 or 40" + - "1\r\n\r\n Scenario: SHA-256 constant-time comparison is used for password verificat" + - "ion\r\n # Timing attack resistance is verified by the service implementation; t" + - "his test\r\n # ensures the endpoint doesn\'t leak which character differs via ti" + - "ming.\r\n When I POST to \"/pair\" with form fields:\r\n | Field | Value " + - "|\r\n | username | admin |\r\n | password | aaaaaa |\r\n Then the resp" + - "onse status code is 200 or 302 or 401\r\n\r\n Scenario: Pairing page shows not-conf" + - "igured message when ApiKey is empty\r\n # In the test environment Mcp:ApiKey is" + - " empty; the page should show not-configured state\r\n When I send a GET request" + - " to \"/pair\"\r\n Then the response status code should be 200\r\n", global::Io.Cucumber.Messages.Types.SourceMediaType.TEXT_X_CUCUMBER_GHERKIN_PLAIN); - } - - private static global::Io.Cucumber.Messages.Types.GherkinDocument GherkinDocumentFunc() - { - return new global::Io.Cucumber.Messages.Types.GherkinDocument("Features/Auth/PairingWebUI.feature", new global::Io.Cucumber.Messages.Types.Feature(new global::Io.Cucumber.Messages.Types.Location(1, new System.Nullable(1)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "en-US", "Feature", "Pairing Web UI", " As an authorized user\r\n I want a browser-based login flow to retrieve the API " + - "key\r\n So that I can configure MCP clients without exposing credentials in confi" + - "g files", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.FeatureChild[] { - new global::Io.Cucumber.Messages.Types.FeatureChild(null, new global::Io.Cucumber.Messages.Types.Background(new global::Io.Cucumber.Messages.Types.Location(6, new System.Nullable(3)), "Background", "", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(7, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "the MCP server is running", null, null, "d00af33684400e569aff143f75038f25")}), "87af0700168b3f5cbfc8789047ca48b5"), null), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(11, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Pairing login page returns 200 with HTML", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(12, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/pair\"", null, null, "efcf22d05f011c51936a959f8fa554bf"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(13, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "60ffc3d36ac3365f8c5959c7ff59e53f"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(14, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the response content type should contain \"text/html\"", null, null, "88d31b6cea07bb59a9dbed1cf97f98f6")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "85ae01666c543c538857b641239ce949")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(16, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Pairing login page shows form when API key is configured", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(17, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/pair\"", null, null, "00bec36c4421f15593ed098398cf2b42"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(18, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "0cb0b07c8f9e3f58b97ca3cd3539114e")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "64d753140f1f485caf757b8e78d29e9a")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(20, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Pairing key endpoint redirects to login when not authenticated", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(21, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/pair/key\"", null, null, "44f5bbc0502c6152ac73ee8dc5f029e9"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(22, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code is 200 or 302", null, null, "ed06825f8571925d8c1736461f75537d")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "a781992534a6f352b4b5cdd9b12e91e3")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(24, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Pairing login with invalid credentials returns 401 or redirects to error", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(25, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/pair\" with form fields:", null, new global::Io.Cucumber.Messages.Types.DataTable(new global::Io.Cucumber.Messages.Types.Location(26, new System.Nullable(7)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.TableRow[] { - new global::Io.Cucumber.Messages.Types.TableRow(new global::Io.Cucumber.Messages.Types.Location(26, new System.Nullable(7)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.TableCell[] { - new global::Io.Cucumber.Messages.Types.TableCell(new global::Io.Cucumber.Messages.Types.Location(26, new System.Nullable(9)), "Field"), - new global::Io.Cucumber.Messages.Types.TableCell(new global::Io.Cucumber.Messages.Types.Location(26, new System.Nullable(20)), "Value")}), "d63583608a64b85a9b1ee2d0e03bcad4"), - new global::Io.Cucumber.Messages.Types.TableRow(new global::Io.Cucumber.Messages.Types.Location(27, new System.Nullable(7)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.TableCell[] { - new global::Io.Cucumber.Messages.Types.TableCell(new global::Io.Cucumber.Messages.Types.Location(27, new System.Nullable(9)), "username"), - new global::Io.Cucumber.Messages.Types.TableCell(new global::Io.Cucumber.Messages.Types.Location(27, new System.Nullable(20)), "nonexistentuser")}), "48b185e3998d925ab75b195883e5e707"), - new global::Io.Cucumber.Messages.Types.TableRow(new global::Io.Cucumber.Messages.Types.Location(28, new System.Nullable(7)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.TableCell[] { - new global::Io.Cucumber.Messages.Types.TableCell(new global::Io.Cucumber.Messages.Types.Location(28, new System.Nullable(9)), "password"), - new global::Io.Cucumber.Messages.Types.TableCell(new global::Io.Cucumber.Messages.Types.Location(28, new System.Nullable(20)), "wrongpassword")}), "76bfab8c1374de5da9b8ed1011cde0fe")})), "ffc27c08cdf9ff52b806ec0ef99cf86f"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(29, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code is 200 or 401 or 302", null, null, "fc13e816c3d13a50a6690d287cf56658")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "fb4c17c9fba8d85aa75f111db39b2769")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(31, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Pairing login with valid credentials issues HttpOnly session cookie", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(33, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/pair\" with form fields:", null, new global::Io.Cucumber.Messages.Types.DataTable(new global::Io.Cucumber.Messages.Types.Location(34, new System.Nullable(7)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.TableRow[] { - new global::Io.Cucumber.Messages.Types.TableRow(new global::Io.Cucumber.Messages.Types.Location(34, new System.Nullable(7)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.TableCell[] { - new global::Io.Cucumber.Messages.Types.TableCell(new global::Io.Cucumber.Messages.Types.Location(34, new System.Nullable(9)), "Field"), - new global::Io.Cucumber.Messages.Types.TableCell(new global::Io.Cucumber.Messages.Types.Location(34, new System.Nullable(20)), "Value")}), "619fac61245ff25690ce91bbf1438797"), - new global::Io.Cucumber.Messages.Types.TableRow(new global::Io.Cucumber.Messages.Types.Location(35, new System.Nullable(7)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.TableCell[] { - new global::Io.Cucumber.Messages.Types.TableCell(new global::Io.Cucumber.Messages.Types.Location(35, new System.Nullable(9)), "username"), - new global::Io.Cucumber.Messages.Types.TableCell(new global::Io.Cucumber.Messages.Types.Location(35, new System.Nullable(20)), "testuser")}), "2435c7ac22614a548ba98d79ae29abf9"), - new global::Io.Cucumber.Messages.Types.TableRow(new global::Io.Cucumber.Messages.Types.Location(36, new System.Nullable(7)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.TableCell[] { - new global::Io.Cucumber.Messages.Types.TableCell(new global::Io.Cucumber.Messages.Types.Location(36, new System.Nullable(9)), "password"), - new global::Io.Cucumber.Messages.Types.TableCell(new global::Io.Cucumber.Messages.Types.Location(36, new System.Nullable(20)), "testpass")}), "2d6c5f15fd3f3756bda95252c5cd2d9d")})), "9ccd21c0a7942650ace2918ee4eff511"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(37, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code is 200 or 302 or 401", null, null, "f29efa069f816c528487df28bb4e4b33")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "2fa6dcccee339c5ba04a32f96bb9f47a")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(39, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "SHA-256 constant-time comparison is used for password verification", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(42, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/pair\" with form fields:", null, new global::Io.Cucumber.Messages.Types.DataTable(new global::Io.Cucumber.Messages.Types.Location(43, new System.Nullable(7)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.TableRow[] { - new global::Io.Cucumber.Messages.Types.TableRow(new global::Io.Cucumber.Messages.Types.Location(43, new System.Nullable(7)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.TableCell[] { - new global::Io.Cucumber.Messages.Types.TableCell(new global::Io.Cucumber.Messages.Types.Location(43, new System.Nullable(9)), "Field"), - new global::Io.Cucumber.Messages.Types.TableCell(new global::Io.Cucumber.Messages.Types.Location(43, new System.Nullable(20)), "Value")}), "8f3c83d2c25b7d54b12d4a74cf761d18"), - new global::Io.Cucumber.Messages.Types.TableRow(new global::Io.Cucumber.Messages.Types.Location(44, new System.Nullable(7)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.TableCell[] { - new global::Io.Cucumber.Messages.Types.TableCell(new global::Io.Cucumber.Messages.Types.Location(44, new System.Nullable(9)), "username"), - new global::Io.Cucumber.Messages.Types.TableCell(new global::Io.Cucumber.Messages.Types.Location(44, new System.Nullable(20)), "admin")}), "41b8c97dba07ed5e943aaed103f085d2"), - new global::Io.Cucumber.Messages.Types.TableRow(new global::Io.Cucumber.Messages.Types.Location(45, new System.Nullable(7)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.TableCell[] { - new global::Io.Cucumber.Messages.Types.TableCell(new global::Io.Cucumber.Messages.Types.Location(45, new System.Nullable(9)), "password"), - new global::Io.Cucumber.Messages.Types.TableCell(new global::Io.Cucumber.Messages.Types.Location(45, new System.Nullable(20)), "aaaaaa")}), "18e391619bc7cf589c0d18397b1d6328")})), "1c79a6518c8852579ecf1eb170126a18"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(46, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code is 200 or 302 or 401", null, null, "80b3947f1ccc495e95916d3dbf87461f")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "73e2269f05711650a535cb7d132e4ffa")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(48, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Pairing page shows not-configured message when ApiKey is empty", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(50, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/pair\"", null, null, "86b6672440f8eb52aead28f5eb88fdaf"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(51, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "258c8740a83cdb5581275028c896e93f")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "d5e85351c09efa5c8124ff90e0e110fd"))})), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Comment[] { - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(9, new System.Nullable(1)), " # FR-MCP-014 / TR-MCP-SEC-002 / TEST-MCP-010"), - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(32, new System.Nullable(1)), " # In test mode with no PairingUsers configured, this returns the not-configur" + - "ed page"), - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(40, new System.Nullable(1)), " # Timing attack resistance is verified by the service implementation; this te" + - "st"), - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(41, new System.Nullable(1)), " # ensures the endpoint doesn\'t leak which character differs via timing."), - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(49, new System.Nullable(1)), " # In the test environment Mcp:ApiKey is empty; the page should show not-confi" + - "gured state")})); - } - - private static global::System.Collections.Generic.IEnumerable PicklesFunc() - { - return new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Pickle[] { - new global::Io.Cucumber.Messages.Types.Pickle("9df06cb74a170951a2110fbbe716333b", "Features/Auth/PairingWebUI.feature", "Pairing login page returns 200 with HTML", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "d00af33684400e569aff143f75038f25"}), "06e8e5935dc90d56b304c88825ee3f6b", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "efcf22d05f011c51936a959f8fa554bf"}), "fa0c9635f709ee508c0d195c0c95e586", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/pair\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "60ffc3d36ac3365f8c5959c7ff59e53f"}), "c197da13c8b7655cb09554ab7bad5671", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "88d31b6cea07bb59a9dbed1cf97f98f6"}), "3a82123f47f0bd5ab5328d958d44d37d", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response content type should contain \"text/html\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "85ae01666c543c538857b641239ce949"})), - new global::Io.Cucumber.Messages.Types.Pickle("08841e61e1b2b755bbe88da7b85a919d", "Features/Auth/PairingWebUI.feature", "Pairing login page shows form when API key is configured", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "d00af33684400e569aff143f75038f25"}), "167b3e0280da5c57be8d73d8145b375d", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "00bec36c4421f15593ed098398cf2b42"}), "0e5054d0c591855c975e1af4dc852a67", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/pair\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "0cb0b07c8f9e3f58b97ca3cd3539114e"}), "e72ab2885b6d405a91b83a22c3622eb7", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "64d753140f1f485caf757b8e78d29e9a"})), - new global::Io.Cucumber.Messages.Types.Pickle("f183d3f0e768e85ebd9f9c7b86f00ce1", "Features/Auth/PairingWebUI.feature", "Pairing key endpoint redirects to login when not authenticated", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "d00af33684400e569aff143f75038f25"}), "6c9953f8983f6f57a041e2b5a2d1c92f", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "44f5bbc0502c6152ac73ee8dc5f029e9"}), "f2ea94e4fa305a519277d40198a943a2", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/pair/key\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "ed06825f8571925d8c1736461f75537d"}), "2ab6d4dee905c054b940e7dc9e5e6c04", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code is 200 or 302")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "a781992534a6f352b4b5cdd9b12e91e3"})), - new global::Io.Cucumber.Messages.Types.Pickle("c651c9965e125a57bfc1e4705b845873", "Features/Auth/PairingWebUI.feature", "Pairing login with invalid credentials returns 401 or redirects to error", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "d00af33684400e569aff143f75038f25"}), "4eca1655f7998e5698dce243d6cd862e", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(new global::Io.Cucumber.Messages.Types.PickleStepArgument(null, new global::Io.Cucumber.Messages.Types.PickleTable(new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTableRow[] { - new global::Io.Cucumber.Messages.Types.PickleTableRow(new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTableCell[] { - new global::Io.Cucumber.Messages.Types.PickleTableCell("Field"), - new global::Io.Cucumber.Messages.Types.PickleTableCell("Value")})), - new global::Io.Cucumber.Messages.Types.PickleTableRow(new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTableCell[] { - new global::Io.Cucumber.Messages.Types.PickleTableCell("username"), - new global::Io.Cucumber.Messages.Types.PickleTableCell("nonexistentuser")})), - new global::Io.Cucumber.Messages.Types.PickleTableRow(new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTableCell[] { - new global::Io.Cucumber.Messages.Types.PickleTableCell("password"), - new global::Io.Cucumber.Messages.Types.PickleTableCell("wrongpassword")}))}))), new System.Collections.Generic.List(new string[] { - "ffc27c08cdf9ff52b806ec0ef99cf86f"}), "0704f3a40d67895bb50a0f8edcb2ba7d", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/pair\" with form fields:"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "fc13e816c3d13a50a6690d287cf56658"}), "7e5272a90337b05facdf6fe02f56b72e", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code is 200 or 401 or 302")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "fb4c17c9fba8d85aa75f111db39b2769"})), - new global::Io.Cucumber.Messages.Types.Pickle("e31b1f16de31fe5ea06d5bcfb5a6146d", "Features/Auth/PairingWebUI.feature", "Pairing login with valid credentials issues HttpOnly session cookie", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "d00af33684400e569aff143f75038f25"}), "87d2f68451fd025cb9ee19e20ed1cf4e", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(new global::Io.Cucumber.Messages.Types.PickleStepArgument(null, new global::Io.Cucumber.Messages.Types.PickleTable(new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTableRow[] { - new global::Io.Cucumber.Messages.Types.PickleTableRow(new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTableCell[] { - new global::Io.Cucumber.Messages.Types.PickleTableCell("Field"), - new global::Io.Cucumber.Messages.Types.PickleTableCell("Value")})), - new global::Io.Cucumber.Messages.Types.PickleTableRow(new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTableCell[] { - new global::Io.Cucumber.Messages.Types.PickleTableCell("username"), - new global::Io.Cucumber.Messages.Types.PickleTableCell("testuser")})), - new global::Io.Cucumber.Messages.Types.PickleTableRow(new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTableCell[] { - new global::Io.Cucumber.Messages.Types.PickleTableCell("password"), - new global::Io.Cucumber.Messages.Types.PickleTableCell("testpass")}))}))), new System.Collections.Generic.List(new string[] { - "9ccd21c0a7942650ace2918ee4eff511"}), "5af2200886bc9a5992277b580198d411", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/pair\" with form fields:"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "f29efa069f816c528487df28bb4e4b33"}), "30ce0f27c551865b865fd7c824196530", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code is 200 or 302 or 401")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "2fa6dcccee339c5ba04a32f96bb9f47a"})), - new global::Io.Cucumber.Messages.Types.Pickle("8f81cb67d4cb98519c5ad558dfeddbb9", "Features/Auth/PairingWebUI.feature", "SHA-256 constant-time comparison is used for password verification", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "d00af33684400e569aff143f75038f25"}), "0bcfc4726a5c7a56b926caac21ce9994", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(new global::Io.Cucumber.Messages.Types.PickleStepArgument(null, new global::Io.Cucumber.Messages.Types.PickleTable(new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTableRow[] { - new global::Io.Cucumber.Messages.Types.PickleTableRow(new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTableCell[] { - new global::Io.Cucumber.Messages.Types.PickleTableCell("Field"), - new global::Io.Cucumber.Messages.Types.PickleTableCell("Value")})), - new global::Io.Cucumber.Messages.Types.PickleTableRow(new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTableCell[] { - new global::Io.Cucumber.Messages.Types.PickleTableCell("username"), - new global::Io.Cucumber.Messages.Types.PickleTableCell("admin")})), - new global::Io.Cucumber.Messages.Types.PickleTableRow(new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTableCell[] { - new global::Io.Cucumber.Messages.Types.PickleTableCell("password"), - new global::Io.Cucumber.Messages.Types.PickleTableCell("aaaaaa")}))}))), new System.Collections.Generic.List(new string[] { - "1c79a6518c8852579ecf1eb170126a18"}), "35ac08c31839ad54adc6723189232c30", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/pair\" with form fields:"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "80b3947f1ccc495e95916d3dbf87461f"}), "2978252bf9f56f5c978922accf6f7b7c", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code is 200 or 302 or 401")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "73e2269f05711650a535cb7d132e4ffa"})), - new global::Io.Cucumber.Messages.Types.Pickle("08969ddacf7609508164938ce4a4c455", "Features/Auth/PairingWebUI.feature", "Pairing page shows not-configured message when ApiKey is empty", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "d00af33684400e569aff143f75038f25"}), "752d5e72d621f05e8962f72c7142a03b", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "86b6672440f8eb52aead28f5eb88fdaf"}), "2a3a4b2bb0e6295fa65378ecf6c7b5d8", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/pair\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "258c8740a83cdb5581275028c896e93f"}), "c66f265ce2049d5cbd65afd5c9015cd5", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "d5e85351c09efa5c8124ff90e0e110fd"}))}); - } - - private static global::Reqnroll.Formatters.RuntimeSupport.FeatureLevelCucumberMessages InitializeCucumberMessages() - { - return new global::Reqnroll.Formatters.RuntimeSupport.FeatureLevelCucumberMessages(new global::System.Func(PairingWebUIFeature.SourceFunc), new global::System.Func(PairingWebUIFeature.GherkinDocumentFunc), new global::System.Func>(PairingWebUIFeature.PicklesFunc)); - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.InitializeAsync() - { - try - { - await this.TestInitializeAsync(); - } - catch (System.Exception e1) - { - try - { - ((global::Xunit.IAsyncLifetime)(this)).DisposeAsync(); - } - catch (System.Exception e2) - { - throw new System.AggregateException("Test initialization failed", e1, e2); - } - throw; - } - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.DisposeAsync() - { - await this.TestTearDownAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Pairing login page returns 200 with HTML")] - [global::Xunit.TraitAttribute("FeatureTitle", "Pairing Web UI")] - [global::Xunit.TraitAttribute("Description", "Pairing login page returns 200 with HTML")] - public async global::System.Threading.Tasks.Task PairingLoginPageReturns200WithHTML() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "0"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Pairing login page returns 200 with HTML", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 11 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 12 - await testRunner.WhenAsync("I send a GET request to \"/pair\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 13 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 14 - await testRunner.AndAsync("the response content type should contain \"text/html\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Pairing login page shows form when API key is configured")] - [global::Xunit.TraitAttribute("FeatureTitle", "Pairing Web UI")] - [global::Xunit.TraitAttribute("Description", "Pairing login page shows form when API key is configured")] - public async global::System.Threading.Tasks.Task PairingLoginPageShowsFormWhenAPIKeyIsConfigured() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "1"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Pairing login page shows form when API key is configured", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 16 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 17 - await testRunner.WhenAsync("I send a GET request to \"/pair\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 18 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Pairing key endpoint redirects to login when not authenticated")] - [global::Xunit.TraitAttribute("FeatureTitle", "Pairing Web UI")] - [global::Xunit.TraitAttribute("Description", "Pairing key endpoint redirects to login when not authenticated")] - public async global::System.Threading.Tasks.Task PairingKeyEndpointRedirectsToLoginWhenNotAuthenticated() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "2"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Pairing key endpoint redirects to login when not authenticated", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 20 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 21 - await testRunner.WhenAsync("I send a GET request to \"/pair/key\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 22 - await testRunner.ThenAsync("the response status code is 200 or 302", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Pairing login with invalid credentials returns 401 or redirects to error")] - [global::Xunit.TraitAttribute("FeatureTitle", "Pairing Web UI")] - [global::Xunit.TraitAttribute("Description", "Pairing login with invalid credentials returns 401 or redirects to error")] - public async global::System.Threading.Tasks.Task PairingLoginWithInvalidCredentialsReturns401OrRedirectsToError() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "3"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Pairing login with invalid credentials returns 401 or redirects to error", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 24 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden - global::Reqnroll.Table table1 = new global::Reqnroll.Table(new string[] { - "Field", - "Value"}); - table1.AddRow(new string[] { - "username", - "nonexistentuser"}); - table1.AddRow(new string[] { - "password", - "wrongpassword"}); -#line 25 - await testRunner.WhenAsync("I POST to \"/pair\" with form fields:", ((string)(null)), table1, "When "); -#line hidden -#line 29 - await testRunner.ThenAsync("the response status code is 200 or 401 or 302", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Pairing login with valid credentials issues HttpOnly session cookie")] - [global::Xunit.TraitAttribute("FeatureTitle", "Pairing Web UI")] - [global::Xunit.TraitAttribute("Description", "Pairing login with valid credentials issues HttpOnly session cookie")] - public async global::System.Threading.Tasks.Task PairingLoginWithValidCredentialsIssuesHttpOnlySessionCookie() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "4"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Pairing login with valid credentials issues HttpOnly session cookie", "", tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 31 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden - global::Reqnroll.Table table2 = new global::Reqnroll.Table(new string[] { - "Field", - "Value"}); - table2.AddRow(new string[] { - "username", - "testuser"}); - table2.AddRow(new string[] { - "password", - "testpass"}); -#line 33 - await testRunner.WhenAsync("I POST to \"/pair\" with form fields:", ((string)(null)), table2, "When "); -#line hidden -#line 37 - await testRunner.ThenAsync("the response status code is 200 or 302 or 401", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="SHA-256 constant-time comparison is used for password verification")] - [global::Xunit.TraitAttribute("FeatureTitle", "Pairing Web UI")] - [global::Xunit.TraitAttribute("Description", "SHA-256 constant-time comparison is used for password verification")] - public async global::System.Threading.Tasks.Task SHA_256Constant_TimeComparisonIsUsedForPasswordVerification() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "5"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("SHA-256 constant-time comparison is used for password verification", "", tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 39 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden - global::Reqnroll.Table table3 = new global::Reqnroll.Table(new string[] { - "Field", - "Value"}); - table3.AddRow(new string[] { - "username", - "admin"}); - table3.AddRow(new string[] { - "password", - "aaaaaa"}); -#line 42 - await testRunner.WhenAsync("I POST to \"/pair\" with form fields:", ((string)(null)), table3, "When "); -#line hidden -#line 46 - await testRunner.ThenAsync("the response status code is 200 or 302 or 401", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Pairing page shows not-configured message when ApiKey is empty")] - [global::Xunit.TraitAttribute("FeatureTitle", "Pairing Web UI")] - [global::Xunit.TraitAttribute("Description", "Pairing page shows not-configured message when ApiKey is empty")] - public async global::System.Threading.Tasks.Task PairingPageShowsNot_ConfiguredMessageWhenApiKeyIsEmpty() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "6"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Pairing page shows not-configured message when ApiKey is empty", "", tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 48 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 50 - await testRunner.WhenAsync("I send a GET request to \"/pair\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 51 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Reqnroll", "3.0.0.0")] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - public class FixtureData : object, global::Xunit.IAsyncLifetime - { - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.InitializeAsync() - { - await PairingWebUIFeature.FeatureSetupAsync(); - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.DisposeAsync() - { - await PairingWebUIFeature.FeatureTearDownAsync(); - } - } - } -} -#pragma warning restore -#endregion diff --git a/tests/McpServer.SpecFlow.Tests/Features/Configuration/ConfigurationPaths.feature b/tests/McpServer.SpecFlow.Tests/Features/Configuration/ConfigurationPaths.feature deleted file mode 100644 index ca823d56..00000000 --- a/tests/McpServer.SpecFlow.Tests/Features/Configuration/ConfigurationPaths.feature +++ /dev/null @@ -1,47 +0,0 @@ -Feature: Configuration and Path Resolution - As a server operator - I want the server to correctly resolve all configured paths at startup - So that data files, TODO files, and database files are found reliably - - Background: - Given the MCP server is running - - # FR-MCP-001 / TR-MCP-CFG-001 / TR-MCP-CFG-002 / TEST-MCP-001 / TEST-MCP-003 - - Scenario: Server starts successfully with in-memory test configuration - When I send a GET request to "/health" - Then the response status code should be 200 - And the response body should contain "Healthy" - - Scenario: PORT environment variable overrides Mcp:Port - # TR-MCP-CFG-002 — PORT env takes highest priority - # This is configuration behavior tested at the infra level; verified via /health - When I send a GET request to "/health" - Then the response status code should be 200 - - Scenario: Diagnostic execution-path endpoint returns process path and base directory - When I send a GET request to "/mcp/diagnostic/execution-path" - Then the response status code should be 200 - And the response body should contain "processPath" - And the response body should contain "baseDirectory" - - Scenario: Diagnostic appsettings-path endpoint returns environment and content root - When I send a GET request to "/mcp/diagnostic/appsettings-path" - Then the response status code should be 200 - And the response body should contain "environmentName" - And the response body should contain "contentRootPath" - - Scenario: Mcp:DataSource set to :memory: uses in-memory SQLite database - # Test environment uses DataSource=:memory: - When I send a GET request to "/mcp/todo" - Then the response status code should be 200 - - Scenario: TODO YAML backend resolves file path relative to configured root - When I send a GET request to "/mcp/todo" - Then the response status code should be 200 - And the response body should contain "totalCount" - - Scenario: Multiple instances have isolated ports and data roots - # TEST-MCP-003 — per-instance isolation - When I send a GET request to "/health" - Then the response status code should be 200 diff --git a/tests/McpServer.SpecFlow.Tests/Features/Configuration/ConfigurationPaths.feature.cs b/tests/McpServer.SpecFlow.Tests/Features/Configuration/ConfigurationPaths.feature.cs deleted file mode 100644 index 1570d44f..00000000 --- a/tests/McpServer.SpecFlow.Tests/Features/Configuration/ConfigurationPaths.feature.cs +++ /dev/null @@ -1,568 +0,0 @@ -// ------------------------------------------------------------------------------ -// -// This code was generated by Reqnroll (https://www.reqnroll.net/). -// Reqnroll Version:3.0.0.0 -// Reqnroll Generator Version:3.0.0.0 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -// ------------------------------------------------------------------------------ -#region Designer generated code -#pragma warning disable -using Reqnroll; -namespace McpServer.SpecFlow.Tests.Features.Configuration -{ - - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Reqnroll", "3.0.0.0")] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - public partial class ConfigurationAndPathResolutionFeature : object, global::Xunit.IClassFixture, global::Xunit.IAsyncLifetime - { - - private global::Reqnroll.ITestRunner testRunner; - - private static string[] featureTags = ((string[])(null)); - - private static global::Reqnroll.FeatureInfo featureInfo = new global::Reqnroll.FeatureInfo(new global::System.Globalization.CultureInfo("en-US"), "Features/Configuration", "Configuration and Path Resolution", " As a server operator\r\n I want the server to correctly resolve all configured p" + - "aths at startup\r\n So that data files, TODO files, and database files are found " + - "reliably", global::Reqnroll.ProgrammingLanguage.CSharp, featureTags, InitializeCucumberMessages()); - - private global::Xunit.Abstractions.ITestOutputHelper _testOutputHelper; - -#line 1 "ConfigurationPaths.feature" -#line hidden - - public ConfigurationAndPathResolutionFeature(ConfigurationAndPathResolutionFeature.FixtureData fixtureData, global::Xunit.Abstractions.ITestOutputHelper testOutputHelper) - { - this._testOutputHelper = testOutputHelper; - } - - public static async global::System.Threading.Tasks.Task FeatureSetupAsync() - { - } - - public static async global::System.Threading.Tasks.Task FeatureTearDownAsync() - { - await global::Reqnroll.TestRunnerManager.ReleaseFeatureAsync(featureInfo); - } - - public async global::System.Threading.Tasks.Task TestInitializeAsync() - { - testRunner = global::Reqnroll.TestRunnerManager.GetTestRunnerForAssembly(featureHint: featureInfo); - try - { - if (((testRunner.FeatureContext != null) - && (testRunner.FeatureContext.FeatureInfo.Equals(featureInfo) == false))) - { - await testRunner.OnFeatureEndAsync(); - } - } - finally - { - if (((testRunner.FeatureContext != null) - && testRunner.FeatureContext.BeforeFeatureHookFailed)) - { - throw new global::Reqnroll.ReqnrollException("Scenario skipped because of previous before feature hook error"); - } - if ((testRunner.FeatureContext == null)) - { - await testRunner.OnFeatureStartAsync(featureInfo); - } - } - } - - public async global::System.Threading.Tasks.Task TestTearDownAsync() - { - if ((testRunner == null)) - { - return; - } - try - { - await testRunner.OnScenarioEndAsync(); - } - finally - { - global::Reqnroll.TestRunnerManager.ReleaseTestRunner(testRunner); - testRunner = null; - } - } - - public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, global::Reqnroll.RuleInfo ruleInfo) - { - testRunner.OnScenarioInitialize(scenarioInfo, ruleInfo); - testRunner.ScenarioContext.ScenarioContainer.RegisterInstanceAs(_testOutputHelper); - } - - public async global::System.Threading.Tasks.Task ScenarioStartAsync() - { - await testRunner.OnScenarioStartAsync(); - } - - public async global::System.Threading.Tasks.Task ScenarioCleanupAsync() - { - await testRunner.CollectScenarioErrorsAsync(); - } - - public virtual async global::System.Threading.Tasks.Task FeatureBackgroundAsync() - { -#line 6 - #line hidden -#line 7 - await testRunner.GivenAsync("the MCP server is running", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden - } - - private static global::Io.Cucumber.Messages.Types.Source SourceFunc() - { - return new global::Io.Cucumber.Messages.Types.Source("Features/Configuration/ConfigurationPaths.feature", "Feature: Configuration and Path Resolution\r\n As a server operator\r\n I want the " + - "server to correctly resolve all configured paths at startup\r\n So that data file" + - "s, TODO files, and database files are found reliably\r\n\r\n Background:\r\n Given" + - " the MCP server is running\r\n\r\n # FR-MCP-001 / TR-MCP-CFG-001 / TR-MCP-CFG-002 /" + - " TEST-MCP-001 / TEST-MCP-003\r\n\r\n Scenario: Server starts successfully with in-m" + - "emory test configuration\r\n When I send a GET request to \"/health\"\r\n Then t" + - "he response status code should be 200\r\n And the response body should contain " + - "\"Healthy\"\r\n\r\n Scenario: PORT environment variable overrides Mcp:Port\r\n # TR-" + - "MCP-CFG-002 — PORT env takes highest priority\r\n # This is configuration behav" + - "ior tested at the infra level; verified via /health\r\n When I send a GET reque" + - "st to \"/health\"\r\n Then the response status code should be 200\r\n\r\n Scenario: " + - "Diagnostic execution-path endpoint returns process path and base directory\r\n " + - "When I send a GET request to \"/mcp/diagnostic/execution-path\"\r\n Then the resp" + - "onse status code should be 200\r\n And the response body should contain \"proces" + - "sPath\"\r\n And the response body should contain \"baseDirectory\"\r\n\r\n Scenario: " + - "Diagnostic appsettings-path endpoint returns environment and content root\r\n W" + - "hen I send a GET request to \"/mcp/diagnostic/appsettings-path\"\r\n Then the res" + - "ponse status code should be 200\r\n And the response body should contain \"envir" + - "onmentName\"\r\n And the response body should contain \"contentRootPath\"\r\n\r\n Sce" + - "nario: Mcp:DataSource set to :memory: uses in-memory SQLite database\r\n # Test" + - " environment uses DataSource=:memory:\r\n When I send a GET request to \"/mcp/to" + - "do\"\r\n Then the response status code should be 200\r\n\r\n Scenario: TODO YAML ba" + - "ckend resolves file path relative to configured root\r\n When I send a GET requ" + - "est to \"/mcp/todo\"\r\n Then the response status code should be 200\r\n And the" + - " response body should contain \"totalCount\"\r\n\r\n Scenario: Multiple instances hav" + - "e isolated ports and data roots\r\n # TEST-MCP-003 — per-instance isolation\r\n " + - " When I send a GET request to \"/health\"\r\n Then the response status code shou" + - "ld be 200\r\n", global::Io.Cucumber.Messages.Types.SourceMediaType.TEXT_X_CUCUMBER_GHERKIN_PLAIN); - } - - private static global::Io.Cucumber.Messages.Types.GherkinDocument GherkinDocumentFunc() - { - return new global::Io.Cucumber.Messages.Types.GherkinDocument("Features/Configuration/ConfigurationPaths.feature", new global::Io.Cucumber.Messages.Types.Feature(new global::Io.Cucumber.Messages.Types.Location(1, new System.Nullable(1)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "en-US", "Feature", "Configuration and Path Resolution", " As a server operator\r\n I want the server to correctly resolve all configured p" + - "aths at startup\r\n So that data files, TODO files, and database files are found " + - "reliably", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.FeatureChild[] { - new global::Io.Cucumber.Messages.Types.FeatureChild(null, new global::Io.Cucumber.Messages.Types.Background(new global::Io.Cucumber.Messages.Types.Location(6, new System.Nullable(3)), "Background", "", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(7, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "the MCP server is running", null, null, "aba2b9526df8e751bced3d2f7baca174")}), "79a5cacf8741a65d99abbd560b776b4a"), null), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(11, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Server starts successfully with in-memory test configuration", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(12, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/health\"", null, null, "686022553b69c451b2d963959f0eb54e"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(13, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "a7d09b8492c56f58aa5c4f145107be69"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(14, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the response body should contain \"Healthy\"", null, null, "20ead4b7757f8753925fd1ba4395ae81")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "1e064f342e21f05d9d92364cfd91cf65")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(16, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "PORT environment variable overrides Mcp:Port", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(19, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/health\"", null, null, "47e7c14b8014255bbf45d2b24a925438"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(20, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "87b3985305085858bd59263d76050820")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "1365f0ae5e91d05eae20e48ce9e6b46f")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(22, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Diagnostic execution-path endpoint returns process path and base directory", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(23, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/diagnostic/execution-path\"", null, null, "2c40a8c29fc5ec56a4238b27d76e7963"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(24, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "8551934da895595da3be4b1a59d84dd5"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(25, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the response body should contain \"processPath\"", null, null, "267ef28920b5e358b0e4f0b38cd15b24"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(26, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the response body should contain \"baseDirectory\"", null, null, "a3640c96a398bb58b85e8669b7d77a80")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "d910acdd8aa9d25e9af3dbe1767b2213")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(28, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Diagnostic appsettings-path endpoint returns environment and content root", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(29, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/diagnostic/appsettings-path\"", null, null, "080734555fc24854a1b30fd1dbe96478"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(30, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "9f4d647c85602f51b6da7de7e242578d"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(31, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the response body should contain \"environmentName\"", null, null, "dcf6fb095cdf685db9c5be1f583aa43e"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(32, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the response body should contain \"contentRootPath\"", null, null, "9144cb4f13e563588603f82eb5fac47e")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "734bae3e352b1b5ebc3cec7a1ac38423")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(34, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Mcp:DataSource set to :memory: uses in-memory SQLite database", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(36, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/todo\"", null, null, "ffa10aaf2a039158833202218961e72f"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(37, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "8d2eb56327262b5fbb6d0f5366cfcfc5")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "0e7435b5c809cc56a76a4dd01dc58d9d")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(39, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "TODO YAML backend resolves file path relative to configured root", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(40, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/todo\"", null, null, "aba47e89f825a850ac50687eb4d53b85"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(41, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "2648c86763e1c857b0cc20d56cabc9b4"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(42, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the response body should contain \"totalCount\"", null, null, "6d64b4e5731368568002ccf2e8101a97")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "774ae100aae8c55d8fc08ef70555e579")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(44, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Multiple instances have isolated ports and data roots", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(46, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/health\"", null, null, "766643d758b1ba5da52d5eab96ff425e"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(47, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "bd8a777140da745a8985bc61371cf213")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "292d52a39f34a05095bf784cc3aa8558"))})), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Comment[] { - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(9, new System.Nullable(1)), " # FR-MCP-001 / TR-MCP-CFG-001 / TR-MCP-CFG-002 / TEST-MCP-001 / TEST-MCP-003"), - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(17, new System.Nullable(1)), " # TR-MCP-CFG-002 — PORT env takes highest priority"), - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(18, new System.Nullable(1)), " # This is configuration behavior tested at the infra level; verified via /hea" + - "lth"), - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(35, new System.Nullable(1)), " # Test environment uses DataSource=:memory:"), - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(45, new System.Nullable(1)), " # TEST-MCP-003 — per-instance isolation")})); - } - - private static global::System.Collections.Generic.IEnumerable PicklesFunc() - { - return new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Pickle[] { - new global::Io.Cucumber.Messages.Types.Pickle("3001c798e81f8855875b911d1da301cf", "Features/Configuration/ConfigurationPaths.feature", "Server starts successfully with in-memory test configuration", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "aba2b9526df8e751bced3d2f7baca174"}), "1c7e36589b81095c9705d86e10b156a5", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "686022553b69c451b2d963959f0eb54e"}), "2ede4c19fca7745488b9d54987fa0161", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/health\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "a7d09b8492c56f58aa5c4f145107be69"}), "74e37efcad684f52b0f7bfd571d187da", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "20ead4b7757f8753925fd1ba4395ae81"}), "779a0b26156f2d5f9ce6241d53a2074e", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response body should contain \"Healthy\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "1e064f342e21f05d9d92364cfd91cf65"})), - new global::Io.Cucumber.Messages.Types.Pickle("6941e1d6bd8f94588db968a00abc3c40", "Features/Configuration/ConfigurationPaths.feature", "PORT environment variable overrides Mcp:Port", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "aba2b9526df8e751bced3d2f7baca174"}), "ee38e1383bd3695bb096adc319f3b887", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "47e7c14b8014255bbf45d2b24a925438"}), "73125c8d6c38b5588103583cf14e6107", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/health\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "87b3985305085858bd59263d76050820"}), "096a28eaa348365ba073f3872b6382ad", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "1365f0ae5e91d05eae20e48ce9e6b46f"})), - new global::Io.Cucumber.Messages.Types.Pickle("e4b90ed82e13d95399eeec7e3d3ab44f", "Features/Configuration/ConfigurationPaths.feature", "Diagnostic execution-path endpoint returns process path and base directory", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "aba2b9526df8e751bced3d2f7baca174"}), "24fc406cf2cea1538b4bf9dfcec78857", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "2c40a8c29fc5ec56a4238b27d76e7963"}), "f311939d5cc1305189f64e114241da08", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/diagnostic/execution-path\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "8551934da895595da3be4b1a59d84dd5"}), "1b3a993955403959a8e24c7948f1be5b", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "267ef28920b5e358b0e4f0b38cd15b24"}), "bca883103b2920539fc37e5ca4d7e28f", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response body should contain \"processPath\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "a3640c96a398bb58b85e8669b7d77a80"}), "002338916a098e5397cd01616d384ccc", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response body should contain \"baseDirectory\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "d910acdd8aa9d25e9af3dbe1767b2213"})), - new global::Io.Cucumber.Messages.Types.Pickle("9db412ad80bd26579220134f8a684223", "Features/Configuration/ConfigurationPaths.feature", "Diagnostic appsettings-path endpoint returns environment and content root", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "aba2b9526df8e751bced3d2f7baca174"}), "6ef42c67c451a05c8bd2dbbd960d60bf", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "080734555fc24854a1b30fd1dbe96478"}), "2a171bd3a5aa565f8ac28809caa8ccd9", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/diagnostic/appsettings-path\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "9f4d647c85602f51b6da7de7e242578d"}), "1eb5096a6cdcc558a6ebc39d8562fdf6", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "dcf6fb095cdf685db9c5be1f583aa43e"}), "aaf5add1bd63135e94c3ab2f0095acf0", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response body should contain \"environmentName\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "9144cb4f13e563588603f82eb5fac47e"}), "08fe33138966f35ca092d01292a5c5c7", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response body should contain \"contentRootPath\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "734bae3e352b1b5ebc3cec7a1ac38423"})), - new global::Io.Cucumber.Messages.Types.Pickle("d8bab9d3baccc759abded404d4797ad2", "Features/Configuration/ConfigurationPaths.feature", "Mcp:DataSource set to :memory: uses in-memory SQLite database", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "aba2b9526df8e751bced3d2f7baca174"}), "b1cb9b08216a1f50a41c839b738d9771", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "ffa10aaf2a039158833202218961e72f"}), "bcc9f69d6036f1559e2e70ee9b596d7d", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/todo\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "8d2eb56327262b5fbb6d0f5366cfcfc5"}), "d399e705bbf27a51b062a17be1d3dc9d", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "0e7435b5c809cc56a76a4dd01dc58d9d"})), - new global::Io.Cucumber.Messages.Types.Pickle("b87007a68c2ecc5cb4bc8ce7d153224b", "Features/Configuration/ConfigurationPaths.feature", "TODO YAML backend resolves file path relative to configured root", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "aba2b9526df8e751bced3d2f7baca174"}), "588e7a7096e8c25184ca28cfd86b2415", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "aba47e89f825a850ac50687eb4d53b85"}), "66a802a74f7d2c5e8e3083bee427c041", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/todo\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "2648c86763e1c857b0cc20d56cabc9b4"}), "c7e91ef54dc4e057be8ffc870af79916", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "6d64b4e5731368568002ccf2e8101a97"}), "513dc718557a9d5b8cd05e7c7a107ba7", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response body should contain \"totalCount\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "774ae100aae8c55d8fc08ef70555e579"})), - new global::Io.Cucumber.Messages.Types.Pickle("f812caf3bdebf85395e8dda0cdf4f902", "Features/Configuration/ConfigurationPaths.feature", "Multiple instances have isolated ports and data roots", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "aba2b9526df8e751bced3d2f7baca174"}), "cb0e636a00d53f5c9f873a5a3625a755", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "766643d758b1ba5da52d5eab96ff425e"}), "8c72be5f91d44153aa951766bf5bee63", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/health\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "bd8a777140da745a8985bc61371cf213"}), "ef2ac64ff076eb5fbf15d88ef79fd96b", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "292d52a39f34a05095bf784cc3aa8558"}))}); - } - - private static global::Reqnroll.Formatters.RuntimeSupport.FeatureLevelCucumberMessages InitializeCucumberMessages() - { - return new global::Reqnroll.Formatters.RuntimeSupport.FeatureLevelCucumberMessages(new global::System.Func(ConfigurationAndPathResolutionFeature.SourceFunc), new global::System.Func(ConfigurationAndPathResolutionFeature.GherkinDocumentFunc), new global::System.Func>(ConfigurationAndPathResolutionFeature.PicklesFunc)); - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.InitializeAsync() - { - try - { - await this.TestInitializeAsync(); - } - catch (System.Exception e1) - { - try - { - ((global::Xunit.IAsyncLifetime)(this)).DisposeAsync(); - } - catch (System.Exception e2) - { - throw new System.AggregateException("Test initialization failed", e1, e2); - } - throw; - } - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.DisposeAsync() - { - await this.TestTearDownAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Server starts successfully with in-memory test configuration")] - [global::Xunit.TraitAttribute("FeatureTitle", "Configuration and Path Resolution")] - [global::Xunit.TraitAttribute("Description", "Server starts successfully with in-memory test configuration")] - public async global::System.Threading.Tasks.Task ServerStartsSuccessfullyWithIn_MemoryTestConfiguration() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "0"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Server starts successfully with in-memory test configuration", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 11 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 12 - await testRunner.WhenAsync("I send a GET request to \"/health\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 13 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 14 - await testRunner.AndAsync("the response body should contain \"Healthy\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="PORT environment variable overrides Mcp:Port")] - [global::Xunit.TraitAttribute("FeatureTitle", "Configuration and Path Resolution")] - [global::Xunit.TraitAttribute("Description", "PORT environment variable overrides Mcp:Port")] - public async global::System.Threading.Tasks.Task PORTEnvironmentVariableOverridesMcpPort() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "1"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("PORT environment variable overrides Mcp:Port", "", tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 16 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 19 - await testRunner.WhenAsync("I send a GET request to \"/health\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 20 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Diagnostic execution-path endpoint returns process path and base directory")] - [global::Xunit.TraitAttribute("FeatureTitle", "Configuration and Path Resolution")] - [global::Xunit.TraitAttribute("Description", "Diagnostic execution-path endpoint returns process path and base directory")] - public async global::System.Threading.Tasks.Task DiagnosticExecution_PathEndpointReturnsProcessPathAndBaseDirectory() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "2"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Diagnostic execution-path endpoint returns process path and base directory", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 22 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 23 - await testRunner.WhenAsync("I send a GET request to \"/mcp/diagnostic/execution-path\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 24 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 25 - await testRunner.AndAsync("the response body should contain \"processPath\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 26 - await testRunner.AndAsync("the response body should contain \"baseDirectory\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Diagnostic appsettings-path endpoint returns environment and content root")] - [global::Xunit.TraitAttribute("FeatureTitle", "Configuration and Path Resolution")] - [global::Xunit.TraitAttribute("Description", "Diagnostic appsettings-path endpoint returns environment and content root")] - public async global::System.Threading.Tasks.Task DiagnosticAppsettings_PathEndpointReturnsEnvironmentAndContentRoot() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "3"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Diagnostic appsettings-path endpoint returns environment and content root", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 28 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 29 - await testRunner.WhenAsync("I send a GET request to \"/mcp/diagnostic/appsettings-path\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 30 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 31 - await testRunner.AndAsync("the response body should contain \"environmentName\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 32 - await testRunner.AndAsync("the response body should contain \"contentRootPath\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Mcp:DataSource set to :memory: uses in-memory SQLite database")] - [global::Xunit.TraitAttribute("FeatureTitle", "Configuration and Path Resolution")] - [global::Xunit.TraitAttribute("Description", "Mcp:DataSource set to :memory: uses in-memory SQLite database")] - public async global::System.Threading.Tasks.Task McpDataSourceSetToMemoryUsesIn_MemorySQLiteDatabase() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "4"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Mcp:DataSource set to :memory: uses in-memory SQLite database", "", tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 34 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 36 - await testRunner.WhenAsync("I send a GET request to \"/mcp/todo\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 37 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="TODO YAML backend resolves file path relative to configured root")] - [global::Xunit.TraitAttribute("FeatureTitle", "Configuration and Path Resolution")] - [global::Xunit.TraitAttribute("Description", "TODO YAML backend resolves file path relative to configured root")] - public async global::System.Threading.Tasks.Task TODOYAMLBackendResolvesFilePathRelativeToConfiguredRoot() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "5"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("TODO YAML backend resolves file path relative to configured root", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 39 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 40 - await testRunner.WhenAsync("I send a GET request to \"/mcp/todo\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 41 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 42 - await testRunner.AndAsync("the response body should contain \"totalCount\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Multiple instances have isolated ports and data roots")] - [global::Xunit.TraitAttribute("FeatureTitle", "Configuration and Path Resolution")] - [global::Xunit.TraitAttribute("Description", "Multiple instances have isolated ports and data roots")] - public async global::System.Threading.Tasks.Task MultipleInstancesHaveIsolatedPortsAndDataRoots() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "6"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Multiple instances have isolated ports and data roots", "", tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 44 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 46 - await testRunner.WhenAsync("I send a GET request to \"/health\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 47 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Reqnroll", "3.0.0.0")] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - public class FixtureData : object, global::Xunit.IAsyncLifetime - { - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.InitializeAsync() - { - await ConfigurationAndPathResolutionFeature.FeatureSetupAsync(); - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.DisposeAsync() - { - await ConfigurationAndPathResolutionFeature.FeatureTearDownAsync(); - } - } - } -} -#pragma warning restore -#endregion diff --git a/tests/McpServer.SpecFlow.Tests/Features/Context/HybridContextSearch.feature b/tests/McpServer.SpecFlow.Tests/Features/Context/HybridContextSearch.feature deleted file mode 100644 index e3a03702..00000000 --- a/tests/McpServer.SpecFlow.Tests/Features/Context/HybridContextSearch.feature +++ /dev/null @@ -1,57 +0,0 @@ -Feature: Hybrid Context Search - As an AI agent - I want to search indexed content using hybrid FTS5 and vector search - So that I can retrieve relevant context for my queries - - Background: - Given the MCP server is running - - # FR-MCP-004 / FR-SUPPORT-010 / TEST-MCP-004 / TR-MCP-DATA-002 / TR-MCP-DATA-003 - - Scenario: Context search returns 200 with results - When I POST to "/mcp/context/search" with body: - """ - { "query": "test", "limit": 5 } - """ - Then the response status code should be 200 - And the response body should contain "chunks" - - Scenario: Context search with source type filter restricts results - When I POST to "/mcp/context/search" with body: - """ - { "query": "test", "sourceType": "todo", "limit": 10 } - """ - Then the response status code should be 200 - - Scenario: Context search clamps limit to maximum of 100 - When I POST to "/mcp/context/search" with body: - """ - { "query": "test", "limit": 9999 } - """ - Then the response status code should be 200 - - Scenario: Context search clamps limit to minimum of 1 - When I POST to "/mcp/context/search" with body: - """ - { "query": "test", "limit": 0 } - """ - Then the response status code should be 200 - - Scenario: Context pack returns ordered chunks with sourceKeys - When I POST to "/mcp/context/pack" with body: - """ - { "queryId": "specflow-test-query", "query": "test context", "limit": 3 } - """ - Then the response status code should be 200 - And the response body should contain "queryId" - - Scenario: Context sources returns indexed document list - When I send a GET request to "/mcp/context/sources" - Then the response status code should be 200 - - Scenario: Context search empty query still returns 200 - When I POST to "/mcp/context/search" with body: - """ - { "query": "", "limit": 5 } - """ - Then the response status code should be 200 diff --git a/tests/McpServer.SpecFlow.Tests/Features/Context/HybridContextSearch.feature.cs b/tests/McpServer.SpecFlow.Tests/Features/Context/HybridContextSearch.feature.cs deleted file mode 100644 index 85e54194..00000000 --- a/tests/McpServer.SpecFlow.Tests/Features/Context/HybridContextSearch.feature.cs +++ /dev/null @@ -1,536 +0,0 @@ -// ------------------------------------------------------------------------------ -// -// This code was generated by Reqnroll (https://www.reqnroll.net/). -// Reqnroll Version:3.0.0.0 -// Reqnroll Generator Version:3.0.0.0 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -// ------------------------------------------------------------------------------ -#region Designer generated code -#pragma warning disable -using Reqnroll; -namespace McpServer.SpecFlow.Tests.Features.Context -{ - - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Reqnroll", "3.0.0.0")] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - public partial class HybridContextSearchFeature : object, global::Xunit.IClassFixture, global::Xunit.IAsyncLifetime - { - - private global::Reqnroll.ITestRunner testRunner; - - private static string[] featureTags = ((string[])(null)); - - private static global::Reqnroll.FeatureInfo featureInfo = new global::Reqnroll.FeatureInfo(new global::System.Globalization.CultureInfo("en-US"), "Features/Context", "Hybrid Context Search", " As an AI agent\r\n I want to search indexed content using hybrid FTS5 and vector" + - " search\r\n So that I can retrieve relevant context for my queries", global::Reqnroll.ProgrammingLanguage.CSharp, featureTags, InitializeCucumberMessages()); - - private global::Xunit.Abstractions.ITestOutputHelper _testOutputHelper; - -#line 1 "HybridContextSearch.feature" -#line hidden - - public HybridContextSearchFeature(HybridContextSearchFeature.FixtureData fixtureData, global::Xunit.Abstractions.ITestOutputHelper testOutputHelper) - { - this._testOutputHelper = testOutputHelper; - } - - public static async global::System.Threading.Tasks.Task FeatureSetupAsync() - { - } - - public static async global::System.Threading.Tasks.Task FeatureTearDownAsync() - { - await global::Reqnroll.TestRunnerManager.ReleaseFeatureAsync(featureInfo); - } - - public async global::System.Threading.Tasks.Task TestInitializeAsync() - { - testRunner = global::Reqnroll.TestRunnerManager.GetTestRunnerForAssembly(featureHint: featureInfo); - try - { - if (((testRunner.FeatureContext != null) - && (testRunner.FeatureContext.FeatureInfo.Equals(featureInfo) == false))) - { - await testRunner.OnFeatureEndAsync(); - } - } - finally - { - if (((testRunner.FeatureContext != null) - && testRunner.FeatureContext.BeforeFeatureHookFailed)) - { - throw new global::Reqnroll.ReqnrollException("Scenario skipped because of previous before feature hook error"); - } - if ((testRunner.FeatureContext == null)) - { - await testRunner.OnFeatureStartAsync(featureInfo); - } - } - } - - public async global::System.Threading.Tasks.Task TestTearDownAsync() - { - if ((testRunner == null)) - { - return; - } - try - { - await testRunner.OnScenarioEndAsync(); - } - finally - { - global::Reqnroll.TestRunnerManager.ReleaseTestRunner(testRunner); - testRunner = null; - } - } - - public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, global::Reqnroll.RuleInfo ruleInfo) - { - testRunner.OnScenarioInitialize(scenarioInfo, ruleInfo); - testRunner.ScenarioContext.ScenarioContainer.RegisterInstanceAs(_testOutputHelper); - } - - public async global::System.Threading.Tasks.Task ScenarioStartAsync() - { - await testRunner.OnScenarioStartAsync(); - } - - public async global::System.Threading.Tasks.Task ScenarioCleanupAsync() - { - await testRunner.CollectScenarioErrorsAsync(); - } - - public virtual async global::System.Threading.Tasks.Task FeatureBackgroundAsync() - { -#line 6 - #line hidden -#line 7 - await testRunner.GivenAsync("the MCP server is running", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden - } - - private static global::Io.Cucumber.Messages.Types.Source SourceFunc() - { - return new global::Io.Cucumber.Messages.Types.Source("Features/Context/HybridContextSearch.feature", "Feature: Hybrid Context Search\r\n As an AI agent\r\n I want to search indexed cont" + - "ent using hybrid FTS5 and vector search\r\n So that I can retrieve relevant conte" + - "xt for my queries\r\n\r\n Background:\r\n Given the MCP server is running\r\n\r\n # F" + - "R-MCP-004 / FR-SUPPORT-010 / TEST-MCP-004 / TR-MCP-DATA-002 / TR-MCP-DATA-003\r\n\r" + - "\n Scenario: Context search returns 200 with results\r\n When I POST to \"/mcp/c" + - "ontext/search\" with body:\r\n \"\"\"\r\n { \"query\": \"test\", \"limit\": 5 }\r\n " + - " \"\"\"\r\n Then the response status code should be 200\r\n And the response bo" + - "dy should contain \"chunks\"\r\n\r\n Scenario: Context search with source type filter" + - " restricts results\r\n When I POST to \"/mcp/context/search\" with body:\r\n \"" + - "\"\"\r\n { \"query\": \"test\", \"sourceType\": \"todo\", \"limit\": 10 }\r\n \"\"\"\r\n " + - " Then the response status code should be 200\r\n\r\n Scenario: Context search clamp" + - "s limit to maximum of 100\r\n When I POST to \"/mcp/context/search\" with body:\r\n" + - " \"\"\"\r\n { \"query\": \"test\", \"limit\": 9999 }\r\n \"\"\"\r\n Then the res" + - "ponse status code should be 200\r\n\r\n Scenario: Context search clamps limit to mi" + - "nimum of 1\r\n When I POST to \"/mcp/context/search\" with body:\r\n \"\"\"\r\n " + - " { \"query\": \"test\", \"limit\": 0 }\r\n \"\"\"\r\n Then the response status code " + - "should be 200\r\n\r\n Scenario: Context pack returns ordered chunks with sourceKeys" + - "\r\n When I POST to \"/mcp/context/pack\" with body:\r\n \"\"\"\r\n { \"queryId" + - "\": \"specflow-test-query\", \"query\": \"test context\", \"limit\": 3 }\r\n \"\"\"\r\n " + - "Then the response status code should be 200\r\n And the response body should co" + - "ntain \"queryId\"\r\n\r\n Scenario: Context sources returns indexed document list\r\n " + - " When I send a GET request to \"/mcp/context/sources\"\r\n Then the response sta" + - "tus code should be 200\r\n\r\n Scenario: Context search empty query still returns 2" + - "00\r\n When I POST to \"/mcp/context/search\" with body:\r\n \"\"\"\r\n { \"que" + - "ry\": \"\", \"limit\": 5 }\r\n \"\"\"\r\n Then the response status code should be 20" + - "0\r\n", global::Io.Cucumber.Messages.Types.SourceMediaType.TEXT_X_CUCUMBER_GHERKIN_PLAIN); - } - - private static global::Io.Cucumber.Messages.Types.GherkinDocument GherkinDocumentFunc() - { - return new global::Io.Cucumber.Messages.Types.GherkinDocument("Features/Context/HybridContextSearch.feature", new global::Io.Cucumber.Messages.Types.Feature(new global::Io.Cucumber.Messages.Types.Location(1, new System.Nullable(1)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "en-US", "Feature", "Hybrid Context Search", " As an AI agent\r\n I want to search indexed content using hybrid FTS5 and vector" + - " search\r\n So that I can retrieve relevant context for my queries", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.FeatureChild[] { - new global::Io.Cucumber.Messages.Types.FeatureChild(null, new global::Io.Cucumber.Messages.Types.Background(new global::Io.Cucumber.Messages.Types.Location(6, new System.Nullable(3)), "Background", "", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(7, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "the MCP server is running", null, null, "753a9b8a87be3450ae6f9a1ea3bec3d8")}), "27fd157a4dcf8a5f87f8592ef7bf87fc"), null), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(11, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Context search returns 200 with results", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(12, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/context/search\" with body:", new global::Io.Cucumber.Messages.Types.DocString(new global::Io.Cucumber.Messages.Types.Location(13, new System.Nullable(7)), null, "{ \"query\": \"test\", \"limit\": 5 }", "\"\"\""), null, "4e569e2855d5fa5b97495dfa56d2e9b8"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(16, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "0bd08bfe2450a251afdd66cafff9522a"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(17, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the response body should contain \"chunks\"", null, null, "d8b6146ab991fe59bee49b72aca327fb")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "b6922ea0e3da70509c573ee2ded57616")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(19, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Context search with source type filter restricts results", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(20, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/context/search\" with body:", new global::Io.Cucumber.Messages.Types.DocString(new global::Io.Cucumber.Messages.Types.Location(21, new System.Nullable(7)), null, "{ \"query\": \"test\", \"sourceType\": \"todo\", \"limit\": 10 }", "\"\"\""), null, "528c8ea6f0afdd54b40edaed2ae078bd"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(24, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "d0ce2e4cb828865b8f9279a666897483")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "834fe85e8a2f5651b638ad60aba25846")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(26, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Context search clamps limit to maximum of 100", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(27, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/context/search\" with body:", new global::Io.Cucumber.Messages.Types.DocString(new global::Io.Cucumber.Messages.Types.Location(28, new System.Nullable(7)), null, "{ \"query\": \"test\", \"limit\": 9999 }", "\"\"\""), null, "8b8878a073ccd253a52c265cdefedc04"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(31, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "bb4050183a967f5ebbe9e026abcded73")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "006780df077c0c54aa6e550bab63d9ef")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(33, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Context search clamps limit to minimum of 1", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(34, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/context/search\" with body:", new global::Io.Cucumber.Messages.Types.DocString(new global::Io.Cucumber.Messages.Types.Location(35, new System.Nullable(7)), null, "{ \"query\": \"test\", \"limit\": 0 }", "\"\"\""), null, "207ec02109a70154a6c85a543cf13c73"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(38, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "e3b45c2aa2a0865591960e6c498114db")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "e18bbed7d404f758b24a3dc87514e166")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(40, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Context pack returns ordered chunks with sourceKeys", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(41, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/context/pack\" with body:", new global::Io.Cucumber.Messages.Types.DocString(new global::Io.Cucumber.Messages.Types.Location(42, new System.Nullable(7)), null, "{ \"queryId\": \"specflow-test-query\", \"query\": \"test context\", \"limit\": 3 }", "\"\"\""), null, "c44b133228c3135b8776fd588b563b01"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(45, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "c4581dbf8e7c8e529652c99b1677f138"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(46, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the response body should contain \"queryId\"", null, null, "41e636146640c653b93ddef2609e15c5")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "709c97256b7bd85f84a2ec0ad64ced6c")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(48, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Context sources returns indexed document list", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(49, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/context/sources\"", null, null, "fc959a6aaf7db65da90b1913bf0bc024"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(50, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "8d2c5310cb85a053a5d1d73b6031e5f0")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "cc2f6e916bd0f9568d8353a680645fb2")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(52, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Context search empty query still returns 200", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(53, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/context/search\" with body:", new global::Io.Cucumber.Messages.Types.DocString(new global::Io.Cucumber.Messages.Types.Location(54, new System.Nullable(7)), null, "{ \"query\": \"\", \"limit\": 5 }", "\"\"\""), null, "19d48b326361485f9930a42244d25377"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(57, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "2088636de0c8db55bb812f0b58ac5e95")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "bc1002e380e2b15894650619583f22c1"))})), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Comment[] { - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(9, new System.Nullable(1)), " # FR-MCP-004 / FR-SUPPORT-010 / TEST-MCP-004 / TR-MCP-DATA-002 / TR-MCP-DATA-00" + - "3")})); - } - - private static global::System.Collections.Generic.IEnumerable PicklesFunc() - { - return new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Pickle[] { - new global::Io.Cucumber.Messages.Types.Pickle("05de9376c61b9d5382f9b78aaa402154", "Features/Context/HybridContextSearch.feature", "Context search returns 200 with results", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "753a9b8a87be3450ae6f9a1ea3bec3d8"}), "505a51437238b75295e4c71f9076c9fb", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(new global::Io.Cucumber.Messages.Types.PickleStepArgument(new global::Io.Cucumber.Messages.Types.PickleDocString(null, "{ \"query\": \"test\", \"limit\": 5 }"), null), new System.Collections.Generic.List(new string[] { - "4e569e2855d5fa5b97495dfa56d2e9b8"}), "c7f395b7fee2fa5d9dc2ebbe3dbb20c0", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/context/search\" with body:"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "0bd08bfe2450a251afdd66cafff9522a"}), "10d1e3cca2697654a9437a9978c2220f", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "d8b6146ab991fe59bee49b72aca327fb"}), "f52d02a34dbeaf5d91dd0ca0d5e05dde", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response body should contain \"chunks\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "b6922ea0e3da70509c573ee2ded57616"})), - new global::Io.Cucumber.Messages.Types.Pickle("6aeef2d4730efd55b0031adf8ab5ca33", "Features/Context/HybridContextSearch.feature", "Context search with source type filter restricts results", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "753a9b8a87be3450ae6f9a1ea3bec3d8"}), "e7394286fa207d58b07cf843b480071e", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(new global::Io.Cucumber.Messages.Types.PickleStepArgument(new global::Io.Cucumber.Messages.Types.PickleDocString(null, "{ \"query\": \"test\", \"sourceType\": \"todo\", \"limit\": 10 }"), null), new System.Collections.Generic.List(new string[] { - "528c8ea6f0afdd54b40edaed2ae078bd"}), "fc1e43be0c3566599ce6c05b7b44cda9", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/context/search\" with body:"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "d0ce2e4cb828865b8f9279a666897483"}), "dda7f8088c330856baeefce3b7a83f4e", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "834fe85e8a2f5651b638ad60aba25846"})), - new global::Io.Cucumber.Messages.Types.Pickle("2882d5ab384a2d5ab3ef2b11ca4274a9", "Features/Context/HybridContextSearch.feature", "Context search clamps limit to maximum of 100", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "753a9b8a87be3450ae6f9a1ea3bec3d8"}), "298495189ebeb756898e0e7fb4c52fbd", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(new global::Io.Cucumber.Messages.Types.PickleStepArgument(new global::Io.Cucumber.Messages.Types.PickleDocString(null, "{ \"query\": \"test\", \"limit\": 9999 }"), null), new System.Collections.Generic.List(new string[] { - "8b8878a073ccd253a52c265cdefedc04"}), "8633786db271425a9de90302a8c01716", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/context/search\" with body:"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "bb4050183a967f5ebbe9e026abcded73"}), "008ae349f617e458b0390a2ae62b7368", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "006780df077c0c54aa6e550bab63d9ef"})), - new global::Io.Cucumber.Messages.Types.Pickle("f49fd45619a2db55ae39f9018011a9a2", "Features/Context/HybridContextSearch.feature", "Context search clamps limit to minimum of 1", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "753a9b8a87be3450ae6f9a1ea3bec3d8"}), "94909a59fd4faf5b8bc17d847b16e311", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(new global::Io.Cucumber.Messages.Types.PickleStepArgument(new global::Io.Cucumber.Messages.Types.PickleDocString(null, "{ \"query\": \"test\", \"limit\": 0 }"), null), new System.Collections.Generic.List(new string[] { - "207ec02109a70154a6c85a543cf13c73"}), "42cb3d5a8502da5a8af5145e12c9d355", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/context/search\" with body:"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "e3b45c2aa2a0865591960e6c498114db"}), "509620c2742d3d57abb26fc5f9a367c3", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "e18bbed7d404f758b24a3dc87514e166"})), - new global::Io.Cucumber.Messages.Types.Pickle("08e1c7e8ee9528579c62bfcffed272e5", "Features/Context/HybridContextSearch.feature", "Context pack returns ordered chunks with sourceKeys", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "753a9b8a87be3450ae6f9a1ea3bec3d8"}), "eea65febe5b9d650bfc5bc2d470bd111", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(new global::Io.Cucumber.Messages.Types.PickleStepArgument(new global::Io.Cucumber.Messages.Types.PickleDocString(null, "{ \"queryId\": \"specflow-test-query\", \"query\": \"test context\", \"limit\": 3 }"), null), new System.Collections.Generic.List(new string[] { - "c44b133228c3135b8776fd588b563b01"}), "40888f34cc63605cb243d48cbfb9b49b", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/context/pack\" with body:"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "c4581dbf8e7c8e529652c99b1677f138"}), "e1711e0c5461dc55a28441ecce30ac2f", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "41e636146640c653b93ddef2609e15c5"}), "61e3586e7b61fa57888583688f5e37c6", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response body should contain \"queryId\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "709c97256b7bd85f84a2ec0ad64ced6c"})), - new global::Io.Cucumber.Messages.Types.Pickle("7fbcedd1339af050b01e928fe80819f5", "Features/Context/HybridContextSearch.feature", "Context sources returns indexed document list", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "753a9b8a87be3450ae6f9a1ea3bec3d8"}), "e2ffc17c190c6c518d9485db8bfec85d", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "fc959a6aaf7db65da90b1913bf0bc024"}), "ac16b74893b7a058969e01c10118a40c", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/context/sources\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "8d2c5310cb85a053a5d1d73b6031e5f0"}), "a0878eae3fc05756b459f7293bc093a6", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "cc2f6e916bd0f9568d8353a680645fb2"})), - new global::Io.Cucumber.Messages.Types.Pickle("fd84f230acdc8b5db81ca2a2800f4279", "Features/Context/HybridContextSearch.feature", "Context search empty query still returns 200", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "753a9b8a87be3450ae6f9a1ea3bec3d8"}), "7c7dcf50bcadca59b01da6885cb569d4", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(new global::Io.Cucumber.Messages.Types.PickleStepArgument(new global::Io.Cucumber.Messages.Types.PickleDocString(null, "{ \"query\": \"\", \"limit\": 5 }"), null), new System.Collections.Generic.List(new string[] { - "19d48b326361485f9930a42244d25377"}), "86b6b1422f19355792eab4be113052d1", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/context/search\" with body:"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "2088636de0c8db55bb812f0b58ac5e95"}), "372818f7e305db5d9ebbf9b11fdc2711", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "bc1002e380e2b15894650619583f22c1"}))}); - } - - private static global::Reqnroll.Formatters.RuntimeSupport.FeatureLevelCucumberMessages InitializeCucumberMessages() - { - return new global::Reqnroll.Formatters.RuntimeSupport.FeatureLevelCucumberMessages(new global::System.Func(HybridContextSearchFeature.SourceFunc), new global::System.Func(HybridContextSearchFeature.GherkinDocumentFunc), new global::System.Func>(HybridContextSearchFeature.PicklesFunc)); - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.InitializeAsync() - { - try - { - await this.TestInitializeAsync(); - } - catch (System.Exception e1) - { - try - { - ((global::Xunit.IAsyncLifetime)(this)).DisposeAsync(); - } - catch (System.Exception e2) - { - throw new System.AggregateException("Test initialization failed", e1, e2); - } - throw; - } - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.DisposeAsync() - { - await this.TestTearDownAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Context search returns 200 with results")] - [global::Xunit.TraitAttribute("FeatureTitle", "Hybrid Context Search")] - [global::Xunit.TraitAttribute("Description", "Context search returns 200 with results")] - public async global::System.Threading.Tasks.Task ContextSearchReturns200WithResults() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "0"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Context search returns 200 with results", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 11 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 12 - await testRunner.WhenAsync("I POST to \"/mcp/context/search\" with body:", "{ \"query\": \"test\", \"limit\": 5 }", ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 16 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 17 - await testRunner.AndAsync("the response body should contain \"chunks\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Context search with source type filter restricts results")] - [global::Xunit.TraitAttribute("FeatureTitle", "Hybrid Context Search")] - [global::Xunit.TraitAttribute("Description", "Context search with source type filter restricts results")] - public async global::System.Threading.Tasks.Task ContextSearchWithSourceTypeFilterRestrictsResults() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "1"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Context search with source type filter restricts results", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 19 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 20 - await testRunner.WhenAsync("I POST to \"/mcp/context/search\" with body:", "{ \"query\": \"test\", \"sourceType\": \"todo\", \"limit\": 10 }", ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 24 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Context search clamps limit to maximum of 100")] - [global::Xunit.TraitAttribute("FeatureTitle", "Hybrid Context Search")] - [global::Xunit.TraitAttribute("Description", "Context search clamps limit to maximum of 100")] - public async global::System.Threading.Tasks.Task ContextSearchClampsLimitToMaximumOf100() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "2"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Context search clamps limit to maximum of 100", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 26 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 27 - await testRunner.WhenAsync("I POST to \"/mcp/context/search\" with body:", "{ \"query\": \"test\", \"limit\": 9999 }", ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 31 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Context search clamps limit to minimum of 1")] - [global::Xunit.TraitAttribute("FeatureTitle", "Hybrid Context Search")] - [global::Xunit.TraitAttribute("Description", "Context search clamps limit to minimum of 1")] - public async global::System.Threading.Tasks.Task ContextSearchClampsLimitToMinimumOf1() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "3"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Context search clamps limit to minimum of 1", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 33 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 34 - await testRunner.WhenAsync("I POST to \"/mcp/context/search\" with body:", "{ \"query\": \"test\", \"limit\": 0 }", ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 38 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Context pack returns ordered chunks with sourceKeys")] - [global::Xunit.TraitAttribute("FeatureTitle", "Hybrid Context Search")] - [global::Xunit.TraitAttribute("Description", "Context pack returns ordered chunks with sourceKeys")] - public async global::System.Threading.Tasks.Task ContextPackReturnsOrderedChunksWithSourceKeys() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "4"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Context pack returns ordered chunks with sourceKeys", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 40 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 41 - await testRunner.WhenAsync("I POST to \"/mcp/context/pack\" with body:", "{ \"queryId\": \"specflow-test-query\", \"query\": \"test context\", \"limit\": 3 }", ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 45 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 46 - await testRunner.AndAsync("the response body should contain \"queryId\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Context sources returns indexed document list")] - [global::Xunit.TraitAttribute("FeatureTitle", "Hybrid Context Search")] - [global::Xunit.TraitAttribute("Description", "Context sources returns indexed document list")] - public async global::System.Threading.Tasks.Task ContextSourcesReturnsIndexedDocumentList() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "5"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Context sources returns indexed document list", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 48 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 49 - await testRunner.WhenAsync("I send a GET request to \"/mcp/context/sources\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 50 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Context search empty query still returns 200")] - [global::Xunit.TraitAttribute("FeatureTitle", "Hybrid Context Search")] - [global::Xunit.TraitAttribute("Description", "Context search empty query still returns 200")] - public async global::System.Threading.Tasks.Task ContextSearchEmptyQueryStillReturns200() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "6"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Context search empty query still returns 200", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 52 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 53 - await testRunner.WhenAsync("I POST to \"/mcp/context/search\" with body:", "{ \"query\": \"\", \"limit\": 5 }", ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 57 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Reqnroll", "3.0.0.0")] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - public class FixtureData : object, global::Xunit.IAsyncLifetime - { - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.InitializeAsync() - { - await HybridContextSearchFeature.FeatureSetupAsync(); - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.DisposeAsync() - { - await HybridContextSearchFeature.FeatureTearDownAsync(); - } - } - } -} -#pragma warning restore -#endregion diff --git a/tests/McpServer.SpecFlow.Tests/Features/GitHub/GitHubIssueSync.feature b/tests/McpServer.SpecFlow.Tests/Features/GitHub/GitHubIssueSync.feature deleted file mode 100644 index 8382d754..00000000 --- a/tests/McpServer.SpecFlow.Tests/Features/GitHub/GitHubIssueSync.feature +++ /dev/null @@ -1,88 +0,0 @@ -Feature: GitHub Issue Sync and Integration - As an AI agent - I want to manage GitHub issues via the MCP REST API - So that TODO items can be synchronized bidirectionally with GitHub issues - - Background: - Given the MCP server is running - - # FR-SUPPORT-013 / FR-MCP-005 / TR-GH-013-001 through 006 - - Scenario: List GitHub issues returns 200 - When I send a GET request to "/mcp/gh/issues" - Then the response status code should be 200 - And the response body is valid JSON - - Scenario: Get GitHub issue by number returns 200 - When I send a GET request to "/mcp/gh/issues/1" - Then the response status code is 200 or 404 - - Scenario: Create GitHub issue with missing title returns 400 - When I POST to "/mcp/gh/issues" with body: - """ - { "body": "Missing title" } - """ - Then the response status code should be 400 - - Scenario: Create GitHub issue with valid payload returns 201 or error - When I POST to "/mcp/gh/issues" with body: - """ - { "title": "SpecFlow Test Issue", "body": "Created by SpecFlow" } - """ - Then the response status code is 201 or 400 or 422 - - Scenario: Update GitHub issue with missing body returns 400 - When I PUT to "/mcp/gh/issues/1" with body: - """ - {} - """ - Then the response status code should be 400 - - Scenario: Close GitHub issue returns 200 or error - When I POST to "/mcp/gh/issues/1/close" with empty body - Then the response status code is 200 or 400 or 422 - - Scenario: Reopen GitHub issue returns 200 or error - When I POST to "/mcp/gh/issues/1/reopen" with empty body - Then the response status code is 200 or 400 or 422 - - Scenario: Comment on GitHub issue with missing body returns 400 - When I POST to "/mcp/gh/issues/1/comments" with body: - """ - {} - """ - Then the response status code should be 400 - - Scenario: List GitHub labels returns 200 - When I send a GET request to "/mcp/gh/labels" - Then the response status code should be 200 - And the response body is valid JSON - - Scenario: List GitHub pull requests returns 200 - When I send a GET request to "/mcp/gh/pulls" - Then the response status code should be 200 - And the response body is valid JSON - - Scenario: Comment on pull request with missing body returns 400 - When I POST to "/mcp/gh/pulls/1/comments" with body: - """ - {} - """ - Then the response status code should be 400 - - Scenario: Sync issues from GitHub returns 200 or 422 - When I POST to "/mcp/gh/issues/sync/from-github" with empty body - Then the response status code is 200 or 422 - - Scenario: Sync issues to GitHub returns 200 or 422 - When I POST to "/mcp/gh/issues/sync/to-github" with empty body - Then the response status code is 200 or 422 - - Scenario: Sync single issue returns 200 or error - When I POST to "/mcp/gh/issues/1/sync" with empty body - Then the response status code is 200 or 400 or 404 or 422 - - # TR-GH-013-002: ISSUE-{number} TODO ID convention is respected - Scenario: GitHub sync creates TODO items with ISSUE-{number} IDs - When I POST to "/mcp/gh/issues/sync/from-github" with empty body - Then the response status code is 200 or 400 or 422 diff --git a/tests/McpServer.SpecFlow.Tests/Features/GitHub/GitHubIssueSync.feature.cs b/tests/McpServer.SpecFlow.Tests/Features/GitHub/GitHubIssueSync.feature.cs deleted file mode 100644 index cdbe4ed1..00000000 --- a/tests/McpServer.SpecFlow.Tests/Features/GitHub/GitHubIssueSync.feature.cs +++ /dev/null @@ -1,917 +0,0 @@ -// ------------------------------------------------------------------------------ -// -// This code was generated by Reqnroll (https://www.reqnroll.net/). -// Reqnroll Version:3.0.0.0 -// Reqnroll Generator Version:3.0.0.0 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -// ------------------------------------------------------------------------------ -#region Designer generated code -#pragma warning disable -using Reqnroll; -namespace McpServer.SpecFlow.Tests.Features.GitHub -{ - - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Reqnroll", "3.0.0.0")] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - public partial class GitHubIssueSyncAndIntegrationFeature : object, global::Xunit.IClassFixture, global::Xunit.IAsyncLifetime - { - - private global::Reqnroll.ITestRunner testRunner; - - private static string[] featureTags = ((string[])(null)); - - private static global::Reqnroll.FeatureInfo featureInfo = new global::Reqnroll.FeatureInfo(new global::System.Globalization.CultureInfo("en-US"), "Features/GitHub", "GitHub Issue Sync and Integration", " As an AI agent\r\n I want to manage GitHub issues via the MCP REST API\r\n So tha" + - "t TODO items can be synchronized bidirectionally with GitHub issues", global::Reqnroll.ProgrammingLanguage.CSharp, featureTags, InitializeCucumberMessages()); - - private global::Xunit.Abstractions.ITestOutputHelper _testOutputHelper; - -#line 1 "GitHubIssueSync.feature" -#line hidden - - public GitHubIssueSyncAndIntegrationFeature(GitHubIssueSyncAndIntegrationFeature.FixtureData fixtureData, global::Xunit.Abstractions.ITestOutputHelper testOutputHelper) - { - this._testOutputHelper = testOutputHelper; - } - - public static async global::System.Threading.Tasks.Task FeatureSetupAsync() - { - } - - public static async global::System.Threading.Tasks.Task FeatureTearDownAsync() - { - await global::Reqnroll.TestRunnerManager.ReleaseFeatureAsync(featureInfo); - } - - public async global::System.Threading.Tasks.Task TestInitializeAsync() - { - testRunner = global::Reqnroll.TestRunnerManager.GetTestRunnerForAssembly(featureHint: featureInfo); - try - { - if (((testRunner.FeatureContext != null) - && (testRunner.FeatureContext.FeatureInfo.Equals(featureInfo) == false))) - { - await testRunner.OnFeatureEndAsync(); - } - } - finally - { - if (((testRunner.FeatureContext != null) - && testRunner.FeatureContext.BeforeFeatureHookFailed)) - { - throw new global::Reqnroll.ReqnrollException("Scenario skipped because of previous before feature hook error"); - } - if ((testRunner.FeatureContext == null)) - { - await testRunner.OnFeatureStartAsync(featureInfo); - } - } - } - - public async global::System.Threading.Tasks.Task TestTearDownAsync() - { - if ((testRunner == null)) - { - return; - } - try - { - await testRunner.OnScenarioEndAsync(); - } - finally - { - global::Reqnroll.TestRunnerManager.ReleaseTestRunner(testRunner); - testRunner = null; - } - } - - public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, global::Reqnroll.RuleInfo ruleInfo) - { - testRunner.OnScenarioInitialize(scenarioInfo, ruleInfo); - testRunner.ScenarioContext.ScenarioContainer.RegisterInstanceAs(_testOutputHelper); - } - - public async global::System.Threading.Tasks.Task ScenarioStartAsync() - { - await testRunner.OnScenarioStartAsync(); - } - - public async global::System.Threading.Tasks.Task ScenarioCleanupAsync() - { - await testRunner.CollectScenarioErrorsAsync(); - } - - public virtual async global::System.Threading.Tasks.Task FeatureBackgroundAsync() - { -#line 6 - #line hidden -#line 7 - await testRunner.GivenAsync("the MCP server is running", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden - } - - private static global::Io.Cucumber.Messages.Types.Source SourceFunc() - { - return new global::Io.Cucumber.Messages.Types.Source("Features/GitHub/GitHubIssueSync.feature", "Feature: GitHub Issue Sync and Integration\r\n As an AI agent\r\n I want to manage " + - "GitHub issues via the MCP REST API\r\n So that TODO items can be synchronized bid" + - "irectionally with GitHub issues\r\n\r\n Background:\r\n Given the MCP server is ru" + - "nning\r\n\r\n # FR-SUPPORT-013 / FR-MCP-005 / TR-GH-013-001 through 006\r\n\r\n Scenar" + - "io: List GitHub issues returns 200\r\n When I send a GET request to \"/mcp/gh/is" + - "sues\"\r\n Then the response status code should be 200\r\n And the response bod" + - "y is valid JSON\r\n\r\n Scenario: Get GitHub issue by number returns 200\r\n When " + - "I send a GET request to \"/mcp/gh/issues/1\"\r\n Then the response status code is" + - " 200 or 404\r\n\r\n Scenario: Create GitHub issue with missing title returns 400\r\n " + - " When I POST to \"/mcp/gh/issues\" with body:\r\n \"\"\"\r\n { \"body\": \"Missi" + - "ng title\" }\r\n \"\"\"\r\n Then the response status code should be 400\r\n\r\n Sce" + - "nario: Create GitHub issue with valid payload returns 201 or error\r\n When I P" + - "OST to \"/mcp/gh/issues\" with body:\r\n \"\"\"\r\n { \"title\": \"SpecFlow Test I" + - "ssue\", \"body\": \"Created by SpecFlow\" }\r\n \"\"\"\r\n Then the response status " + - "code is 201 or 400 or 422\r\n\r\n Scenario: Update GitHub issue with missing body r" + - "eturns 400\r\n When I PUT to \"/mcp/gh/issues/1\" with body:\r\n \"\"\"\r\n {}" + - "\r\n \"\"\"\r\n Then the response status code should be 400\r\n\r\n Scenario: Clos" + - "e GitHub issue returns 200 or error\r\n When I POST to \"/mcp/gh/issues/1/close\"" + - " with empty body\r\n Then the response status code is 200 or 400 or 422\r\n\r\n Sc" + - "enario: Reopen GitHub issue returns 200 or error\r\n When I POST to \"/mcp/gh/is" + - "sues/1/reopen\" with empty body\r\n Then the response status code is 200 or 400 " + - "or 422\r\n\r\n Scenario: Comment on GitHub issue with missing body returns 400\r\n " + - " When I POST to \"/mcp/gh/issues/1/comments\" with body:\r\n \"\"\"\r\n {}\r\n " + - " \"\"\"\r\n Then the response status code should be 400\r\n\r\n Scenario: List GitH" + - "ub labels returns 200\r\n When I send a GET request to \"/mcp/gh/labels\"\r\n Th" + - "en the response status code should be 200\r\n And the response body is valid JS" + - "ON\r\n\r\n Scenario: List GitHub pull requests returns 200\r\n When I send a GET r" + - "equest to \"/mcp/gh/pulls\"\r\n Then the response status code should be 200\r\n " + - "And the response body is valid JSON\r\n\r\n Scenario: Comment on pull request with " + - "missing body returns 400\r\n When I POST to \"/mcp/gh/pulls/1/comments\" with bod" + - "y:\r\n \"\"\"\r\n {}\r\n \"\"\"\r\n Then the response status code should be " + - "400\r\n\r\n Scenario: Sync issues from GitHub returns 200 or 422\r\n When I POST t" + - "o \"/mcp/gh/issues/sync/from-github\" with empty body\r\n Then the response statu" + - "s code is 200 or 422\r\n\r\n Scenario: Sync issues to GitHub returns 200 or 422\r\n " + - " When I POST to \"/mcp/gh/issues/sync/to-github\" with empty body\r\n Then the r" + - "esponse status code is 200 or 422\r\n\r\n Scenario: Sync single issue returns 200 o" + - "r error\r\n When I POST to \"/mcp/gh/issues/1/sync\" with empty body\r\n Then th" + - "e response status code is 200 or 400 or 404 or 422\r\n\r\n # TR-GH-013-002: ISSUE-{" + - "number} TODO ID convention is respected\r\n Scenario: GitHub sync creates TODO it" + - "ems with ISSUE-{number} IDs\r\n When I POST to \"/mcp/gh/issues/sync/from-github" + - "\" with empty body\r\n Then the response status code is 200 or 400 or 422\r\n", global::Io.Cucumber.Messages.Types.SourceMediaType.TEXT_X_CUCUMBER_GHERKIN_PLAIN); - } - - private static global::Io.Cucumber.Messages.Types.GherkinDocument GherkinDocumentFunc() - { - return new global::Io.Cucumber.Messages.Types.GherkinDocument("Features/GitHub/GitHubIssueSync.feature", new global::Io.Cucumber.Messages.Types.Feature(new global::Io.Cucumber.Messages.Types.Location(1, new System.Nullable(1)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "en-US", "Feature", "GitHub Issue Sync and Integration", " As an AI agent\r\n I want to manage GitHub issues via the MCP REST API\r\n So tha" + - "t TODO items can be synchronized bidirectionally with GitHub issues", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.FeatureChild[] { - new global::Io.Cucumber.Messages.Types.FeatureChild(null, new global::Io.Cucumber.Messages.Types.Background(new global::Io.Cucumber.Messages.Types.Location(6, new System.Nullable(3)), "Background", "", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(7, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "the MCP server is running", null, null, "7508ce1a4f1bfc5fbd815934162e1cea")}), "62feaebba10cdc5d86f82b4b52305ca2"), null), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(11, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "List GitHub issues returns 200", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(12, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/gh/issues\"", null, null, "d41e01b0e54b7e53aa5d14c627b50a21"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(13, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "91e712a81310ce5c871a750f2caf4ae7"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(14, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the response body is valid JSON", null, null, "b1de0d66d7dd9f5382ab686161e4d63d")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "fd321ee5912ee559986830168580fc5b")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(16, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Get GitHub issue by number returns 200", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(17, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/gh/issues/1\"", null, null, "504f0257aa654c55a9c26edbe523fef4"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(18, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code is 200 or 404", null, null, "ef9e0ec8e1b75a5a9ecbeab1cdb535f5")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "6d614b7845cdc25c9c62874cca5e6a1d")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(20, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Create GitHub issue with missing title returns 400", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(21, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/gh/issues\" with body:", new global::Io.Cucumber.Messages.Types.DocString(new global::Io.Cucumber.Messages.Types.Location(22, new System.Nullable(7)), null, "{ \"body\": \"Missing title\" }", "\"\"\""), null, "46a1ecb807167554bf6752740fdfcb8f"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(25, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 400", null, null, "4d6616e00f1ee855b3d4305a314ab451")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "93369ca67c4f6d5e9786410ff0013466")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(27, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Create GitHub issue with valid payload returns 201 or error", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(28, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/gh/issues\" with body:", new global::Io.Cucumber.Messages.Types.DocString(new global::Io.Cucumber.Messages.Types.Location(29, new System.Nullable(7)), null, "{ \"title\": \"SpecFlow Test Issue\", \"body\": \"Created by SpecFlow\" }", "\"\"\""), null, "09efdb25e9bafa55aac153871d5a39e6"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(32, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code is 201 or 400 or 422", null, null, "38a69fa832831f5096200f0a51088ede")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "ec82190f5964e25991b2d0c310caf94d")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(34, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Update GitHub issue with missing body returns 400", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(35, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I PUT to \"/mcp/gh/issues/1\" with body:", new global::Io.Cucumber.Messages.Types.DocString(new global::Io.Cucumber.Messages.Types.Location(36, new System.Nullable(7)), null, "{}", "\"\"\""), null, "a5d9af8406bfed58a12f65ae281dd0ec"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(39, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 400", null, null, "7a62665ab46e0f5a957ff9d8e1216691")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "cc6a959d0e74fb5b87c12e184a99db67")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(41, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Close GitHub issue returns 200 or error", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(42, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/gh/issues/1/close\" with empty body", null, null, "e10d87e1224d085e9f9bf15e47039bd1"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(43, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code is 200 or 400 or 422", null, null, "5f25fe9dff1a2b5eae0c51449fc791f7")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "6d03254654005256bbf1a1bfa2d71e4f")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(45, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Reopen GitHub issue returns 200 or error", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(46, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/gh/issues/1/reopen\" with empty body", null, null, "3c6ff83eb5f55c59a2224beb31f374ae"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(47, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code is 200 or 400 or 422", null, null, "a2ffc1825363475e8f404e3db887e6a2")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "f412e85df675fc5795e24ec4315d3f20")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(49, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Comment on GitHub issue with missing body returns 400", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(50, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/gh/issues/1/comments\" with body:", new global::Io.Cucumber.Messages.Types.DocString(new global::Io.Cucumber.Messages.Types.Location(51, new System.Nullable(7)), null, "{}", "\"\"\""), null, "2cc30001ff17ce5e8af4fc8c02b12935"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(54, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 400", null, null, "8d36e0acfb607d54a93d4476bd3f6265")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "a1ee30b032c8765ba01674c6328c14f8")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(56, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "List GitHub labels returns 200", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(57, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/gh/labels\"", null, null, "58bfb20fa8e99050974886481c444c1e"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(58, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "0e301b2e9efd135cab2477513310ce46"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(59, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the response body is valid JSON", null, null, "67212773b9ee1f5088333f4fb6c3993f")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "c7c5efd51607c7509aa1a3859510ab87")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(61, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "List GitHub pull requests returns 200", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(62, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/gh/pulls\"", null, null, "44296335641bfb51a146f1ac23520ae9"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(63, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "fb479418d28d605ba5550277b716f660"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(64, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the response body is valid JSON", null, null, "a4b9b71287a4c158afc10c93cd44fd12")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "bb79cb4f9c304b5c9bf54a5779db969a")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(66, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Comment on pull request with missing body returns 400", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(67, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/gh/pulls/1/comments\" with body:", new global::Io.Cucumber.Messages.Types.DocString(new global::Io.Cucumber.Messages.Types.Location(68, new System.Nullable(7)), null, "{}", "\"\"\""), null, "6b4209e2f06ecc5c9c2547c1a25f7019"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(71, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 400", null, null, "1dc788b7796a4753a7b0aad007ba62b0")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "4206bc59b5900e5c8d4d160dc4d80d25")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(73, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Sync issues from GitHub returns 200 or 422", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(74, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/gh/issues/sync/from-github\" with empty body", null, null, "cebf8f16f927a551b4edb799ee37311d"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(75, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code is 200 or 422", null, null, "a90f2b93fd432e5f8e762971b8821976")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "76fd7d7707a6cc50802e7ce37b223451")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(77, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Sync issues to GitHub returns 200 or 422", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(78, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/gh/issues/sync/to-github\" with empty body", null, null, "6bfc80030ac2305e9833986efd7ce370"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(79, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code is 200 or 422", null, null, "ff34b20b8687eb5eb4d20e1f6de98026")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "d1bb0311f1e0555eb3b61da67b1bdce0")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(81, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Sync single issue returns 200 or error", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(82, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/gh/issues/1/sync\" with empty body", null, null, "d038872a88e5a055beb0bbc748668401"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(83, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code is 200 or 400 or 404 or 422", null, null, "d191c4ac7cfc0657a66233d305db94cf")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "ec4fb83225eccc59810a4d6acf3cebe6")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(86, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "GitHub sync creates TODO items with ISSUE-{number} IDs", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(87, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/gh/issues/sync/from-github\" with empty body", null, null, "607a21b5f5eca653b68b5fd620465803"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(88, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code is 200 or 400 or 422", null, null, "cc91ee29d4cdbd57b1ab037aef5f0e6e")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "cdad86642b8b725abd9e4d7d9fe9c495"))})), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Comment[] { - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(9, new System.Nullable(1)), " # FR-SUPPORT-013 / FR-MCP-005 / TR-GH-013-001 through 006"), - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(85, new System.Nullable(1)), " # TR-GH-013-002: ISSUE-{number} TODO ID convention is respected")})); - } - - private static global::System.Collections.Generic.IEnumerable PicklesFunc() - { - return new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Pickle[] { - new global::Io.Cucumber.Messages.Types.Pickle("04b3a61dd845fe51b24e8e3a3e7a7cd9", "Features/GitHub/GitHubIssueSync.feature", "List GitHub issues returns 200", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "7508ce1a4f1bfc5fbd815934162e1cea"}), "644a00c9016edb589e7de0204afc400c", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "d41e01b0e54b7e53aa5d14c627b50a21"}), "bfd6198178538b5fb50e1c2376ab14d2", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/gh/issues\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "91e712a81310ce5c871a750f2caf4ae7"}), "7f29f1150f9f145c999bb966c4fda4dc", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "b1de0d66d7dd9f5382ab686161e4d63d"}), "9cca6e9a5134315b853747d9fe5a6a70", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response body is valid JSON")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "fd321ee5912ee559986830168580fc5b"})), - new global::Io.Cucumber.Messages.Types.Pickle("a110e901216f705dadd05903bc531c9e", "Features/GitHub/GitHubIssueSync.feature", "Get GitHub issue by number returns 200", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "7508ce1a4f1bfc5fbd815934162e1cea"}), "ab19854ddfb14f55b2291b2f54d1aea9", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "504f0257aa654c55a9c26edbe523fef4"}), "a6259cddddc5f75cb6c06a9cd4ea2995", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/gh/issues/1\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "ef9e0ec8e1b75a5a9ecbeab1cdb535f5"}), "f7d7062fc560a15ea2c2c6e63a0e5cf8", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code is 200 or 404")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "6d614b7845cdc25c9c62874cca5e6a1d"})), - new global::Io.Cucumber.Messages.Types.Pickle("d4fd65906ad6055591f098711de7244f", "Features/GitHub/GitHubIssueSync.feature", "Create GitHub issue with missing title returns 400", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "7508ce1a4f1bfc5fbd815934162e1cea"}), "a025c47581d7fa5c87493cdbbebef6c1", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(new global::Io.Cucumber.Messages.Types.PickleStepArgument(new global::Io.Cucumber.Messages.Types.PickleDocString(null, "{ \"body\": \"Missing title\" }"), null), new System.Collections.Generic.List(new string[] { - "46a1ecb807167554bf6752740fdfcb8f"}), "a0f0410c44a6b550a40f517b53304cd7", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/gh/issues\" with body:"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "4d6616e00f1ee855b3d4305a314ab451"}), "0788b6a593bb7158a07e324cd00e3e41", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 400")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "93369ca67c4f6d5e9786410ff0013466"})), - new global::Io.Cucumber.Messages.Types.Pickle("43cbae5f2e854953a0d485449b624a02", "Features/GitHub/GitHubIssueSync.feature", "Create GitHub issue with valid payload returns 201 or error", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "7508ce1a4f1bfc5fbd815934162e1cea"}), "304933fc8158335185c02e82b4d43c5d", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(new global::Io.Cucumber.Messages.Types.PickleStepArgument(new global::Io.Cucumber.Messages.Types.PickleDocString(null, "{ \"title\": \"SpecFlow Test Issue\", \"body\": \"Created by SpecFlow\" }"), null), new System.Collections.Generic.List(new string[] { - "09efdb25e9bafa55aac153871d5a39e6"}), "e414c196ad30db599a6ec1f1a7296283", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/gh/issues\" with body:"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "38a69fa832831f5096200f0a51088ede"}), "6baacda580d2de5d85a191c922d4aa37", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code is 201 or 400 or 422")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "ec82190f5964e25991b2d0c310caf94d"})), - new global::Io.Cucumber.Messages.Types.Pickle("5aab545703cf2d5fa195cc9a6e10cdd7", "Features/GitHub/GitHubIssueSync.feature", "Update GitHub issue with missing body returns 400", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "7508ce1a4f1bfc5fbd815934162e1cea"}), "240d83923afb1550b612b234d106c49f", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(new global::Io.Cucumber.Messages.Types.PickleStepArgument(new global::Io.Cucumber.Messages.Types.PickleDocString(null, "{}"), null), new System.Collections.Generic.List(new string[] { - "a5d9af8406bfed58a12f65ae281dd0ec"}), "8438dfb8794266568d8a41e87f6f2abe", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I PUT to \"/mcp/gh/issues/1\" with body:"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "7a62665ab46e0f5a957ff9d8e1216691"}), "80f240c339723a518e6fe29d71fa3d31", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 400")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "cc6a959d0e74fb5b87c12e184a99db67"})), - new global::Io.Cucumber.Messages.Types.Pickle("ffb40cf7d7d26b56ab5cbdd9c0e49b18", "Features/GitHub/GitHubIssueSync.feature", "Close GitHub issue returns 200 or error", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "7508ce1a4f1bfc5fbd815934162e1cea"}), "b95d840635759354b8fcd6abd478b93a", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "e10d87e1224d085e9f9bf15e47039bd1"}), "d32c1dd7fc32ab5090e094de5a46c5c9", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/gh/issues/1/close\" with empty body"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "5f25fe9dff1a2b5eae0c51449fc791f7"}), "ac27fffbf66acc50af3b5f1e7f72bc43", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code is 200 or 400 or 422")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "6d03254654005256bbf1a1bfa2d71e4f"})), - new global::Io.Cucumber.Messages.Types.Pickle("64703db67958d859b1f2d61ace0e77f6", "Features/GitHub/GitHubIssueSync.feature", "Reopen GitHub issue returns 200 or error", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "7508ce1a4f1bfc5fbd815934162e1cea"}), "840ab23cde04c155a65f5bc441b22069", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "3c6ff83eb5f55c59a2224beb31f374ae"}), "b20621f9c927ed5e9a1a2c2a02af9e3e", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/gh/issues/1/reopen\" with empty body"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "a2ffc1825363475e8f404e3db887e6a2"}), "97ce3c78ba73485dbcbbb913e7b28e2c", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code is 200 or 400 or 422")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "f412e85df675fc5795e24ec4315d3f20"})), - new global::Io.Cucumber.Messages.Types.Pickle("137d584c34b52a5a8582c1302aa7af17", "Features/GitHub/GitHubIssueSync.feature", "Comment on GitHub issue with missing body returns 400", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "7508ce1a4f1bfc5fbd815934162e1cea"}), "4b53ebf866ef0b5da2d6039f8cf3cb9f", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(new global::Io.Cucumber.Messages.Types.PickleStepArgument(new global::Io.Cucumber.Messages.Types.PickleDocString(null, "{}"), null), new System.Collections.Generic.List(new string[] { - "2cc30001ff17ce5e8af4fc8c02b12935"}), "35e40eb8c8d28751aa4e1c249301a5cc", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/gh/issues/1/comments\" with body:"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "8d36e0acfb607d54a93d4476bd3f6265"}), "7bf97029cb03c85eb95d7142bf303d7a", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 400")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "a1ee30b032c8765ba01674c6328c14f8"})), - new global::Io.Cucumber.Messages.Types.Pickle("9d4ab2a49d931453804d04fe4aaec0c5", "Features/GitHub/GitHubIssueSync.feature", "List GitHub labels returns 200", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "7508ce1a4f1bfc5fbd815934162e1cea"}), "156093a9cf543e58a96c6a53883f2fe9", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "58bfb20fa8e99050974886481c444c1e"}), "ec687743203b1d559b5f4330a6de9c42", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/gh/labels\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "0e301b2e9efd135cab2477513310ce46"}), "5dd2e9817736945db5fb656d246fa644", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "67212773b9ee1f5088333f4fb6c3993f"}), "48e9677bb9c45c58b32c46f477fb13aa", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response body is valid JSON")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "c7c5efd51607c7509aa1a3859510ab87"})), - new global::Io.Cucumber.Messages.Types.Pickle("54d6523a0388165ea52016e9ae7c3b9c", "Features/GitHub/GitHubIssueSync.feature", "List GitHub pull requests returns 200", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "7508ce1a4f1bfc5fbd815934162e1cea"}), "91e499ecc5145558b365061b729bb56a", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "44296335641bfb51a146f1ac23520ae9"}), "bb2443f492e81d56a464d9a26b46f551", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/gh/pulls\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "fb479418d28d605ba5550277b716f660"}), "ad1eb059cc0813539d933d95d732116b", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "a4b9b71287a4c158afc10c93cd44fd12"}), "8e78da9267d91b54aba24c247b9891f6", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response body is valid JSON")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "bb79cb4f9c304b5c9bf54a5779db969a"})), - new global::Io.Cucumber.Messages.Types.Pickle("660b2f0eecb73f55b7f97f844553c86c", "Features/GitHub/GitHubIssueSync.feature", "Comment on pull request with missing body returns 400", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "7508ce1a4f1bfc5fbd815934162e1cea"}), "a20db1b8363d4551ad9e397fd1f901d9", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(new global::Io.Cucumber.Messages.Types.PickleStepArgument(new global::Io.Cucumber.Messages.Types.PickleDocString(null, "{}"), null), new System.Collections.Generic.List(new string[] { - "6b4209e2f06ecc5c9c2547c1a25f7019"}), "7d337877070bf55fac3194a35762483a", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/gh/pulls/1/comments\" with body:"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "1dc788b7796a4753a7b0aad007ba62b0"}), "11a427c0a7812f558871a95b73d940e5", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 400")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "4206bc59b5900e5c8d4d160dc4d80d25"})), - new global::Io.Cucumber.Messages.Types.Pickle("40394da75b296c50982e609c1ed85f30", "Features/GitHub/GitHubIssueSync.feature", "Sync issues from GitHub returns 200 or 422", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "7508ce1a4f1bfc5fbd815934162e1cea"}), "6bb545e62dc3ac5d910327a9ee49ed49", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "cebf8f16f927a551b4edb799ee37311d"}), "6c158e979284e75e8d64a09950a37950", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/gh/issues/sync/from-github\" with empty body"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "a90f2b93fd432e5f8e762971b8821976"}), "404c1851aa3ba859aa17b2254d55c514", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code is 200 or 422")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "76fd7d7707a6cc50802e7ce37b223451"})), - new global::Io.Cucumber.Messages.Types.Pickle("67fd57c6a17a3c539628b18115672bb0", "Features/GitHub/GitHubIssueSync.feature", "Sync issues to GitHub returns 200 or 422", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "7508ce1a4f1bfc5fbd815934162e1cea"}), "9e71da5ce60a0252ae20c478957013fa", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "6bfc80030ac2305e9833986efd7ce370"}), "3a32c31be65c655b8c1e888d28f046bc", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/gh/issues/sync/to-github\" with empty body"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "ff34b20b8687eb5eb4d20e1f6de98026"}), "bcbebbba4e84465197c837332a5d04a3", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code is 200 or 422")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "d1bb0311f1e0555eb3b61da67b1bdce0"})), - new global::Io.Cucumber.Messages.Types.Pickle("ae75c4f9e342ac5b9e201bb00a9fa4ca", "Features/GitHub/GitHubIssueSync.feature", "Sync single issue returns 200 or error", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "7508ce1a4f1bfc5fbd815934162e1cea"}), "ca2e3a4e81f8e1529762c855a8740d91", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "d038872a88e5a055beb0bbc748668401"}), "a008a29ed4affe5b802ff952b8fcb97b", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/gh/issues/1/sync\" with empty body"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "d191c4ac7cfc0657a66233d305db94cf"}), "11bfe24a0e923d58aeb3a5ee0facefeb", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code is 200 or 400 or 404 or 422")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "ec4fb83225eccc59810a4d6acf3cebe6"})), - new global::Io.Cucumber.Messages.Types.Pickle("57de4770c625645ba5a91e9fd2728b36", "Features/GitHub/GitHubIssueSync.feature", "GitHub sync creates TODO items with ISSUE-{number} IDs", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "7508ce1a4f1bfc5fbd815934162e1cea"}), "04418ef446867f57b238161828245865", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "607a21b5f5eca653b68b5fd620465803"}), "4d7588adbb0b01598c6cf99ecbfb6f5b", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/gh/issues/sync/from-github\" with empty body"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "cc91ee29d4cdbd57b1ab037aef5f0e6e"}), "e31cec539a1566569ff964551c1ab5c4", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code is 200 or 400 or 422")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "cdad86642b8b725abd9e4d7d9fe9c495"}))}); - } - - private static global::Reqnroll.Formatters.RuntimeSupport.FeatureLevelCucumberMessages InitializeCucumberMessages() - { - return new global::Reqnroll.Formatters.RuntimeSupport.FeatureLevelCucumberMessages(new global::System.Func(GitHubIssueSyncAndIntegrationFeature.SourceFunc), new global::System.Func(GitHubIssueSyncAndIntegrationFeature.GherkinDocumentFunc), new global::System.Func>(GitHubIssueSyncAndIntegrationFeature.PicklesFunc)); - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.InitializeAsync() - { - try - { - await this.TestInitializeAsync(); - } - catch (System.Exception e1) - { - try - { - ((global::Xunit.IAsyncLifetime)(this)).DisposeAsync(); - } - catch (System.Exception e2) - { - throw new System.AggregateException("Test initialization failed", e1, e2); - } - throw; - } - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.DisposeAsync() - { - await this.TestTearDownAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="List GitHub issues returns 200")] - [global::Xunit.TraitAttribute("FeatureTitle", "GitHub Issue Sync and Integration")] - [global::Xunit.TraitAttribute("Description", "List GitHub issues returns 200")] - public async global::System.Threading.Tasks.Task ListGitHubIssuesReturns200() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "0"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("List GitHub issues returns 200", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 11 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 12 - await testRunner.WhenAsync("I send a GET request to \"/mcp/gh/issues\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 13 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 14 - await testRunner.AndAsync("the response body is valid JSON", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Get GitHub issue by number returns 200")] - [global::Xunit.TraitAttribute("FeatureTitle", "GitHub Issue Sync and Integration")] - [global::Xunit.TraitAttribute("Description", "Get GitHub issue by number returns 200")] - public async global::System.Threading.Tasks.Task GetGitHubIssueByNumberReturns200() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "1"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Get GitHub issue by number returns 200", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 16 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 17 - await testRunner.WhenAsync("I send a GET request to \"/mcp/gh/issues/1\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 18 - await testRunner.ThenAsync("the response status code is 200 or 404", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Create GitHub issue with missing title returns 400")] - [global::Xunit.TraitAttribute("FeatureTitle", "GitHub Issue Sync and Integration")] - [global::Xunit.TraitAttribute("Description", "Create GitHub issue with missing title returns 400")] - public async global::System.Threading.Tasks.Task CreateGitHubIssueWithMissingTitleReturns400() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "2"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Create GitHub issue with missing title returns 400", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 20 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 21 - await testRunner.WhenAsync("I POST to \"/mcp/gh/issues\" with body:", "{ \"body\": \"Missing title\" }", ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 25 - await testRunner.ThenAsync("the response status code should be 400", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Create GitHub issue with valid payload returns 201 or error")] - [global::Xunit.TraitAttribute("FeatureTitle", "GitHub Issue Sync and Integration")] - [global::Xunit.TraitAttribute("Description", "Create GitHub issue with valid payload returns 201 or error")] - public async global::System.Threading.Tasks.Task CreateGitHubIssueWithValidPayloadReturns201OrError() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "3"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Create GitHub issue with valid payload returns 201 or error", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 27 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 28 - await testRunner.WhenAsync("I POST to \"/mcp/gh/issues\" with body:", "{ \"title\": \"SpecFlow Test Issue\", \"body\": \"Created by SpecFlow\" }", ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 32 - await testRunner.ThenAsync("the response status code is 201 or 400 or 422", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Update GitHub issue with missing body returns 400")] - [global::Xunit.TraitAttribute("FeatureTitle", "GitHub Issue Sync and Integration")] - [global::Xunit.TraitAttribute("Description", "Update GitHub issue with missing body returns 400")] - public async global::System.Threading.Tasks.Task UpdateGitHubIssueWithMissingBodyReturns400() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "4"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Update GitHub issue with missing body returns 400", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 34 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 35 - await testRunner.WhenAsync("I PUT to \"/mcp/gh/issues/1\" with body:", "{}", ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 39 - await testRunner.ThenAsync("the response status code should be 400", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Close GitHub issue returns 200 or error")] - [global::Xunit.TraitAttribute("FeatureTitle", "GitHub Issue Sync and Integration")] - [global::Xunit.TraitAttribute("Description", "Close GitHub issue returns 200 or error")] - public async global::System.Threading.Tasks.Task CloseGitHubIssueReturns200OrError() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "5"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Close GitHub issue returns 200 or error", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 41 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 42 - await testRunner.WhenAsync("I POST to \"/mcp/gh/issues/1/close\" with empty body", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 43 - await testRunner.ThenAsync("the response status code is 200 or 400 or 422", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Reopen GitHub issue returns 200 or error")] - [global::Xunit.TraitAttribute("FeatureTitle", "GitHub Issue Sync and Integration")] - [global::Xunit.TraitAttribute("Description", "Reopen GitHub issue returns 200 or error")] - public async global::System.Threading.Tasks.Task ReopenGitHubIssueReturns200OrError() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "6"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Reopen GitHub issue returns 200 or error", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 45 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 46 - await testRunner.WhenAsync("I POST to \"/mcp/gh/issues/1/reopen\" with empty body", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 47 - await testRunner.ThenAsync("the response status code is 200 or 400 or 422", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Comment on GitHub issue with missing body returns 400")] - [global::Xunit.TraitAttribute("FeatureTitle", "GitHub Issue Sync and Integration")] - [global::Xunit.TraitAttribute("Description", "Comment on GitHub issue with missing body returns 400")] - public async global::System.Threading.Tasks.Task CommentOnGitHubIssueWithMissingBodyReturns400() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "7"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Comment on GitHub issue with missing body returns 400", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 49 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 50 - await testRunner.WhenAsync("I POST to \"/mcp/gh/issues/1/comments\" with body:", "{}", ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 54 - await testRunner.ThenAsync("the response status code should be 400", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="List GitHub labels returns 200")] - [global::Xunit.TraitAttribute("FeatureTitle", "GitHub Issue Sync and Integration")] - [global::Xunit.TraitAttribute("Description", "List GitHub labels returns 200")] - public async global::System.Threading.Tasks.Task ListGitHubLabelsReturns200() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "8"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("List GitHub labels returns 200", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 56 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 57 - await testRunner.WhenAsync("I send a GET request to \"/mcp/gh/labels\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 58 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 59 - await testRunner.AndAsync("the response body is valid JSON", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="List GitHub pull requests returns 200")] - [global::Xunit.TraitAttribute("FeatureTitle", "GitHub Issue Sync and Integration")] - [global::Xunit.TraitAttribute("Description", "List GitHub pull requests returns 200")] - public async global::System.Threading.Tasks.Task ListGitHubPullRequestsReturns200() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "9"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("List GitHub pull requests returns 200", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 61 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 62 - await testRunner.WhenAsync("I send a GET request to \"/mcp/gh/pulls\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 63 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 64 - await testRunner.AndAsync("the response body is valid JSON", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Comment on pull request with missing body returns 400")] - [global::Xunit.TraitAttribute("FeatureTitle", "GitHub Issue Sync and Integration")] - [global::Xunit.TraitAttribute("Description", "Comment on pull request with missing body returns 400")] - public async global::System.Threading.Tasks.Task CommentOnPullRequestWithMissingBodyReturns400() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "10"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Comment on pull request with missing body returns 400", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 66 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 67 - await testRunner.WhenAsync("I POST to \"/mcp/gh/pulls/1/comments\" with body:", "{}", ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 71 - await testRunner.ThenAsync("the response status code should be 400", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Sync issues from GitHub returns 200 or 422")] - [global::Xunit.TraitAttribute("FeatureTitle", "GitHub Issue Sync and Integration")] - [global::Xunit.TraitAttribute("Description", "Sync issues from GitHub returns 200 or 422")] - public async global::System.Threading.Tasks.Task SyncIssuesFromGitHubReturns200Or422() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "11"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Sync issues from GitHub returns 200 or 422", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 73 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 74 - await testRunner.WhenAsync("I POST to \"/mcp/gh/issues/sync/from-github\" with empty body", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 75 - await testRunner.ThenAsync("the response status code is 200 or 422", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Sync issues to GitHub returns 200 or 422")] - [global::Xunit.TraitAttribute("FeatureTitle", "GitHub Issue Sync and Integration")] - [global::Xunit.TraitAttribute("Description", "Sync issues to GitHub returns 200 or 422")] - public async global::System.Threading.Tasks.Task SyncIssuesToGitHubReturns200Or422() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "12"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Sync issues to GitHub returns 200 or 422", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 77 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 78 - await testRunner.WhenAsync("I POST to \"/mcp/gh/issues/sync/to-github\" with empty body", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 79 - await testRunner.ThenAsync("the response status code is 200 or 422", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Sync single issue returns 200 or error")] - [global::Xunit.TraitAttribute("FeatureTitle", "GitHub Issue Sync and Integration")] - [global::Xunit.TraitAttribute("Description", "Sync single issue returns 200 or error")] - public async global::System.Threading.Tasks.Task SyncSingleIssueReturns200OrError() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "13"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Sync single issue returns 200 or error", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 81 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 82 - await testRunner.WhenAsync("I POST to \"/mcp/gh/issues/1/sync\" with empty body", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 83 - await testRunner.ThenAsync("the response status code is 200 or 400 or 404 or 422", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="GitHub sync creates TODO items with ISSUE-{number} IDs")] - [global::Xunit.TraitAttribute("FeatureTitle", "GitHub Issue Sync and Integration")] - [global::Xunit.TraitAttribute("Description", "GitHub sync creates TODO items with ISSUE-{number} IDs")] - public async global::System.Threading.Tasks.Task GitHubSyncCreatesTODOItemsWithISSUE_NumberIDs() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "14"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("GitHub sync creates TODO items with ISSUE-{number} IDs", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 86 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 87 - await testRunner.WhenAsync("I POST to \"/mcp/gh/issues/sync/from-github\" with empty body", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 88 - await testRunner.ThenAsync("the response status code is 200 or 400 or 422", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Reqnroll", "3.0.0.0")] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - public class FixtureData : object, global::Xunit.IAsyncLifetime - { - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.InitializeAsync() - { - await GitHubIssueSyncAndIntegrationFeature.FeatureSetupAsync(); - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.DisposeAsync() - { - await GitHubIssueSyncAndIntegrationFeature.FeatureTearDownAsync(); - } - } - } -} -#pragma warning restore -#endregion diff --git a/tests/McpServer.SpecFlow.Tests/Features/MultiInstance/MultiInstanceIsolation.feature b/tests/McpServer.SpecFlow.Tests/Features/MultiInstance/MultiInstanceIsolation.feature deleted file mode 100644 index 62abf417..00000000 --- a/tests/McpServer.SpecFlow.Tests/Features/MultiInstance/MultiInstanceIsolation.feature +++ /dev/null @@ -1,30 +0,0 @@ -Feature: Multi-Instance Isolation - As a server operator - I want to run multiple MCP server instances on different ports - So that different workspaces have isolated data and configuration - - Background: - Given the MCP server is running - - # TEST-MCP-003 / FR-MCP-007 / TR-MCP-CFG-002 - - Scenario: Two instances with distinct ports do not share data - # Each instance has its own DataSource, RepoRoot, and port - When I send a GET request to "/mcp/todo" - Then the response status code should be 200 - And the response body should contain "totalCount" - - Scenario: Duplicate instance ports are rejected at startup validation - # appsettings.json validation rejects same port assigned to two instances - When I send a GET request to "/health" - Then the response status code should be 200 - - Scenario: SQLite instance stores todo items independently - # sqlite backend on one instance doesn't affect yaml backend on another - When I send a GET request to "/mcp/todo" - Then the response status code should be 200 - - Scenario: MCP_INSTANCE environment variable selects the instance - # ENV: MCP_INSTANCE= overrides --instance CLI argument - When I send a GET request to "/health" - Then the response status code should be 200 diff --git a/tests/McpServer.SpecFlow.Tests/Features/MultiInstance/MultiInstanceIsolation.feature.cs b/tests/McpServer.SpecFlow.Tests/Features/MultiInstance/MultiInstanceIsolation.feature.cs deleted file mode 100644 index 655a177f..00000000 --- a/tests/McpServer.SpecFlow.Tests/Features/MultiInstance/MultiInstanceIsolation.feature.cs +++ /dev/null @@ -1,403 +0,0 @@ -// ------------------------------------------------------------------------------ -// -// This code was generated by Reqnroll (https://www.reqnroll.net/). -// Reqnroll Version:3.0.0.0 -// Reqnroll Generator Version:3.0.0.0 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -// ------------------------------------------------------------------------------ -#region Designer generated code -#pragma warning disable -using Reqnroll; -namespace McpServer.SpecFlow.Tests.Features.MultiInstance -{ - - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Reqnroll", "3.0.0.0")] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - public partial class Multi_InstanceIsolationFeature : object, global::Xunit.IClassFixture, global::Xunit.IAsyncLifetime - { - - private global::Reqnroll.ITestRunner testRunner; - - private static string[] featureTags = ((string[])(null)); - - private static global::Reqnroll.FeatureInfo featureInfo = new global::Reqnroll.FeatureInfo(new global::System.Globalization.CultureInfo("en-US"), "Features/MultiInstance", "Multi-Instance Isolation", " As a server operator\r\n I want to run multiple MCP server instances on differen" + - "t ports\r\n So that different workspaces have isolated data and configuration", global::Reqnroll.ProgrammingLanguage.CSharp, featureTags, InitializeCucumberMessages()); - - private global::Xunit.Abstractions.ITestOutputHelper _testOutputHelper; - -#line 1 "MultiInstanceIsolation.feature" -#line hidden - - public Multi_InstanceIsolationFeature(Multi_InstanceIsolationFeature.FixtureData fixtureData, global::Xunit.Abstractions.ITestOutputHelper testOutputHelper) - { - this._testOutputHelper = testOutputHelper; - } - - public static async global::System.Threading.Tasks.Task FeatureSetupAsync() - { - } - - public static async global::System.Threading.Tasks.Task FeatureTearDownAsync() - { - await global::Reqnroll.TestRunnerManager.ReleaseFeatureAsync(featureInfo); - } - - public async global::System.Threading.Tasks.Task TestInitializeAsync() - { - testRunner = global::Reqnroll.TestRunnerManager.GetTestRunnerForAssembly(featureHint: featureInfo); - try - { - if (((testRunner.FeatureContext != null) - && (testRunner.FeatureContext.FeatureInfo.Equals(featureInfo) == false))) - { - await testRunner.OnFeatureEndAsync(); - } - } - finally - { - if (((testRunner.FeatureContext != null) - && testRunner.FeatureContext.BeforeFeatureHookFailed)) - { - throw new global::Reqnroll.ReqnrollException("Scenario skipped because of previous before feature hook error"); - } - if ((testRunner.FeatureContext == null)) - { - await testRunner.OnFeatureStartAsync(featureInfo); - } - } - } - - public async global::System.Threading.Tasks.Task TestTearDownAsync() - { - if ((testRunner == null)) - { - return; - } - try - { - await testRunner.OnScenarioEndAsync(); - } - finally - { - global::Reqnroll.TestRunnerManager.ReleaseTestRunner(testRunner); - testRunner = null; - } - } - - public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, global::Reqnroll.RuleInfo ruleInfo) - { - testRunner.OnScenarioInitialize(scenarioInfo, ruleInfo); - testRunner.ScenarioContext.ScenarioContainer.RegisterInstanceAs(_testOutputHelper); - } - - public async global::System.Threading.Tasks.Task ScenarioStartAsync() - { - await testRunner.OnScenarioStartAsync(); - } - - public async global::System.Threading.Tasks.Task ScenarioCleanupAsync() - { - await testRunner.CollectScenarioErrorsAsync(); - } - - public virtual async global::System.Threading.Tasks.Task FeatureBackgroundAsync() - { -#line 6 - #line hidden -#line 7 - await testRunner.GivenAsync("the MCP server is running", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden - } - - private static global::Io.Cucumber.Messages.Types.Source SourceFunc() - { - return new global::Io.Cucumber.Messages.Types.Source("Features/MultiInstance/MultiInstanceIsolation.feature", @"Feature: Multi-Instance Isolation - As a server operator - I want to run multiple MCP server instances on different ports - So that different workspaces have isolated data and configuration - - Background: - Given the MCP server is running - - # TEST-MCP-003 / FR-MCP-007 / TR-MCP-CFG-002 - - Scenario: Two instances with distinct ports do not share data - # Each instance has its own DataSource, RepoRoot, and port - When I send a GET request to ""/mcp/todo"" - Then the response status code should be 200 - And the response body should contain ""totalCount"" - - Scenario: Duplicate instance ports are rejected at startup validation - # appsettings.json validation rejects same port assigned to two instances - When I send a GET request to ""/health"" - Then the response status code should be 200 - - Scenario: SQLite instance stores todo items independently - # sqlite backend on one instance doesn't affect yaml backend on another - When I send a GET request to ""/mcp/todo"" - Then the response status code should be 200 - - Scenario: MCP_INSTANCE environment variable selects the instance - # ENV: MCP_INSTANCE= overrides --instance CLI argument - When I send a GET request to ""/health"" - Then the response status code should be 200 -", global::Io.Cucumber.Messages.Types.SourceMediaType.TEXT_X_CUCUMBER_GHERKIN_PLAIN); - } - - private static global::Io.Cucumber.Messages.Types.GherkinDocument GherkinDocumentFunc() - { - return new global::Io.Cucumber.Messages.Types.GherkinDocument("Features/MultiInstance/MultiInstanceIsolation.feature", new global::Io.Cucumber.Messages.Types.Feature(new global::Io.Cucumber.Messages.Types.Location(1, new System.Nullable(1)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "en-US", "Feature", "Multi-Instance Isolation", " As a server operator\r\n I want to run multiple MCP server instances on differen" + - "t ports\r\n So that different workspaces have isolated data and configuration", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.FeatureChild[] { - new global::Io.Cucumber.Messages.Types.FeatureChild(null, new global::Io.Cucumber.Messages.Types.Background(new global::Io.Cucumber.Messages.Types.Location(6, new System.Nullable(3)), "Background", "", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(7, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "the MCP server is running", null, null, "1666021f7876cb569a332d6872e9ec6a")}), "a6a35b224f2de85981322293fc4fa890"), null), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(11, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Two instances with distinct ports do not share data", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(13, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/todo\"", null, null, "5c3974180e28c45e88fdd9358792c717"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(14, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "f1b49a86760640589954c78c9456522b"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(15, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the response body should contain \"totalCount\"", null, null, "f898ca9f90cf6154bf01c0460d4b743d")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "2c8e3c63838bbf5b9a817620f0567496")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(17, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Duplicate instance ports are rejected at startup validation", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(19, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/health\"", null, null, "1e7ccd46c7508f5cbf6831cf21fe7867"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(20, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "eb0c93aa73109551aa74b87f2b3696d1")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "fbe6123d3c5c965fa6b495c6257ab185")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(22, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "SQLite instance stores todo items independently", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(24, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/todo\"", null, null, "5c5a5d1dabc39651a356feee418c03d5"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(25, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "70c0ac82141a085f91f31eacdb505ffd")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "f8962c533f39dc53810fc7e9ceef9d44")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(27, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "MCP_INSTANCE environment variable selects the instance", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(29, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/health\"", null, null, "759f43c9e4e0ae5e962842626b2d570a"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(30, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "ab70a860ac91af5c8b1e0ea525d0b63c")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "6ae4e982d9d28e58aeb9d111f0cbf10d"))})), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Comment[] { - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(9, new System.Nullable(1)), " # TEST-MCP-003 / FR-MCP-007 / TR-MCP-CFG-002"), - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(12, new System.Nullable(1)), " # Each instance has its own DataSource, RepoRoot, and port"), - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(18, new System.Nullable(1)), " # appsettings.json validation rejects same port assigned to two instances"), - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(23, new System.Nullable(1)), " # sqlite backend on one instance doesn\'t affect yaml backend on another"), - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(28, new System.Nullable(1)), " # ENV: MCP_INSTANCE= overrides --instance CLI argument")})); - } - - private static global::System.Collections.Generic.IEnumerable PicklesFunc() - { - return new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Pickle[] { - new global::Io.Cucumber.Messages.Types.Pickle("4e8340667334ca57b8c1241380f502db", "Features/MultiInstance/MultiInstanceIsolation.feature", "Two instances with distinct ports do not share data", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "1666021f7876cb569a332d6872e9ec6a"}), "340f76b76f0a7b5ebc24b46ad48d9bc1", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "5c3974180e28c45e88fdd9358792c717"}), "549b55126e41f15bb96be6f1bd2c6807", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/todo\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "f1b49a86760640589954c78c9456522b"}), "8a11c4b12df426599aa235c07e594361", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "f898ca9f90cf6154bf01c0460d4b743d"}), "7c8578ef572cc653878d5bddc5a9fa3f", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response body should contain \"totalCount\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "2c8e3c63838bbf5b9a817620f0567496"})), - new global::Io.Cucumber.Messages.Types.Pickle("c8f12c1d5a8e4855b653d7c0633594b2", "Features/MultiInstance/MultiInstanceIsolation.feature", "Duplicate instance ports are rejected at startup validation", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "1666021f7876cb569a332d6872e9ec6a"}), "c76f72f479a7e252b377438fabd8225c", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "1e7ccd46c7508f5cbf6831cf21fe7867"}), "269916f1c0996853b426edf82b2bf036", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/health\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "eb0c93aa73109551aa74b87f2b3696d1"}), "08674262913d9c52895d1953231a18ad", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "fbe6123d3c5c965fa6b495c6257ab185"})), - new global::Io.Cucumber.Messages.Types.Pickle("9d467296d4c70c509934130bf0887aab", "Features/MultiInstance/MultiInstanceIsolation.feature", "SQLite instance stores todo items independently", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "1666021f7876cb569a332d6872e9ec6a"}), "8476b11350e4cd569644d5d7acb4323e", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "5c5a5d1dabc39651a356feee418c03d5"}), "890fdc80f7033856881c4c230fe0b52b", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/todo\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "70c0ac82141a085f91f31eacdb505ffd"}), "89774530080fb95690f1af26898de2ab", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "f8962c533f39dc53810fc7e9ceef9d44"})), - new global::Io.Cucumber.Messages.Types.Pickle("9ec290d1c92faa5ebaacb87d00379efc", "Features/MultiInstance/MultiInstanceIsolation.feature", "MCP_INSTANCE environment variable selects the instance", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "1666021f7876cb569a332d6872e9ec6a"}), "1fcab3102971405d8216bd2c299f82b6", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "759f43c9e4e0ae5e962842626b2d570a"}), "17c9db189a6e5f5d9d725eb0bb0ba331", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/health\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "ab70a860ac91af5c8b1e0ea525d0b63c"}), "adbc86fec977cf519820df3b05477280", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "6ae4e982d9d28e58aeb9d111f0cbf10d"}))}); - } - - private static global::Reqnroll.Formatters.RuntimeSupport.FeatureLevelCucumberMessages InitializeCucumberMessages() - { - return new global::Reqnroll.Formatters.RuntimeSupport.FeatureLevelCucumberMessages(new global::System.Func(Multi_InstanceIsolationFeature.SourceFunc), new global::System.Func(Multi_InstanceIsolationFeature.GherkinDocumentFunc), new global::System.Func>(Multi_InstanceIsolationFeature.PicklesFunc)); - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.InitializeAsync() - { - try - { - await this.TestInitializeAsync(); - } - catch (System.Exception e1) - { - try - { - ((global::Xunit.IAsyncLifetime)(this)).DisposeAsync(); - } - catch (System.Exception e2) - { - throw new System.AggregateException("Test initialization failed", e1, e2); - } - throw; - } - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.DisposeAsync() - { - await this.TestTearDownAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Two instances with distinct ports do not share data")] - [global::Xunit.TraitAttribute("FeatureTitle", "Multi-Instance Isolation")] - [global::Xunit.TraitAttribute("Description", "Two instances with distinct ports do not share data")] - public async global::System.Threading.Tasks.Task TwoInstancesWithDistinctPortsDoNotShareData() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "0"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Two instances with distinct ports do not share data", "", tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 11 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 13 - await testRunner.WhenAsync("I send a GET request to \"/mcp/todo\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 14 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 15 - await testRunner.AndAsync("the response body should contain \"totalCount\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Duplicate instance ports are rejected at startup validation")] - [global::Xunit.TraitAttribute("FeatureTitle", "Multi-Instance Isolation")] - [global::Xunit.TraitAttribute("Description", "Duplicate instance ports are rejected at startup validation")] - public async global::System.Threading.Tasks.Task DuplicateInstancePortsAreRejectedAtStartupValidation() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "1"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Duplicate instance ports are rejected at startup validation", "", tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 17 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 19 - await testRunner.WhenAsync("I send a GET request to \"/health\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 20 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="SQLite instance stores todo items independently")] - [global::Xunit.TraitAttribute("FeatureTitle", "Multi-Instance Isolation")] - [global::Xunit.TraitAttribute("Description", "SQLite instance stores todo items independently")] - public async global::System.Threading.Tasks.Task SQLiteInstanceStoresTodoItemsIndependently() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "2"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("SQLite instance stores todo items independently", "", tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 22 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 24 - await testRunner.WhenAsync("I send a GET request to \"/mcp/todo\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 25 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="MCP_INSTANCE environment variable selects the instance")] - [global::Xunit.TraitAttribute("FeatureTitle", "Multi-Instance Isolation")] - [global::Xunit.TraitAttribute("Description", "MCP_INSTANCE environment variable selects the instance")] - public async global::System.Threading.Tasks.Task MCP_INSTANCEEnvironmentVariableSelectsTheInstance() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "3"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("MCP_INSTANCE environment variable selects the instance", "", tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 27 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 29 - await testRunner.WhenAsync("I send a GET request to \"/health\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 30 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Reqnroll", "3.0.0.0")] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - public class FixtureData : object, global::Xunit.IAsyncLifetime - { - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.InitializeAsync() - { - await Multi_InstanceIsolationFeature.FeatureSetupAsync(); - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.DisposeAsync() - { - await Multi_InstanceIsolationFeature.FeatureTearDownAsync(); - } - } - } -} -#pragma warning restore -#endregion diff --git a/tests/McpServer.SpecFlow.Tests/Features/Repo/RepoFileAccess.feature b/tests/McpServer.SpecFlow.Tests/Features/Repo/RepoFileAccess.feature deleted file mode 100644 index 4bfb1abb..00000000 --- a/tests/McpServer.SpecFlow.Tests/Features/Repo/RepoFileAccess.feature +++ /dev/null @@ -1,53 +0,0 @@ -Feature: Repo File Access - As an AI agent - I want to read, write, and list repository files via the REST API - So that I can access project files from within the MCP context - - Background: - Given the MCP server is running - - # FR-SUPPORT-010 / TR-MCP-API-001 - - Scenario: List repo files at root returns 200 with entries - When I send a GET request to "/mcp/repo/list" - Then the response status code should be 200 - And the response body should contain "entries" - - Scenario: List repo files with path returns 200 - When I send a GET request to "/mcp/repo/list?path=docs" - Then the response status code is 200 or 400 - - Scenario: Read repo file with missing path parameter returns 400 - When I send a GET request to "/mcp/repo/file" - Then the response status code should be 400 - - Scenario: Read repo file with valid path returns 200 - When I send a GET request to "/mcp/repo/file?path=README.md" - Then the response status code is 200 or 400 - - Scenario: Write repo file with missing path returns 400 - When I POST to "/mcp/repo/file" with body: - """ - { "content": "some content without path" } - """ - Then the response status code should be 400 - - Scenario: Write repo file with path outside repo root returns 400 - When I POST to "/mcp/repo/file" with body: - """ - { "path": "../../../etc/passwd", "content": "hack" } - """ - Then the response status code should be 400 - - Scenario: Write to disallowed path is rejected with 400 - When I POST to "/mcp/repo/file" with body: - """ - { "path": "../../etc/passwd", "body": "hack attempt" } - """ - Then the response status code should be 400 - - Scenario: List returns path field and entries array - When I send a GET request to "/mcp/repo/list" - Then the response status code should be 200 - And the response body should contain "path" - And the response body should contain "entries" diff --git a/tests/McpServer.SpecFlow.Tests/Features/Repo/RepoFileAccess.feature.cs b/tests/McpServer.SpecFlow.Tests/Features/Repo/RepoFileAccess.feature.cs deleted file mode 100644 index e57a7af6..00000000 --- a/tests/McpServer.SpecFlow.Tests/Features/Repo/RepoFileAccess.feature.cs +++ /dev/null @@ -1,585 +0,0 @@ -// ------------------------------------------------------------------------------ -// -// This code was generated by Reqnroll (https://www.reqnroll.net/). -// Reqnroll Version:3.0.0.0 -// Reqnroll Generator Version:3.0.0.0 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -// ------------------------------------------------------------------------------ -#region Designer generated code -#pragma warning disable -using Reqnroll; -namespace McpServer.SpecFlow.Tests.Features.Repo -{ - - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Reqnroll", "3.0.0.0")] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - public partial class RepoFileAccessFeature : object, global::Xunit.IClassFixture, global::Xunit.IAsyncLifetime - { - - private global::Reqnroll.ITestRunner testRunner; - - private static string[] featureTags = ((string[])(null)); - - private static global::Reqnroll.FeatureInfo featureInfo = new global::Reqnroll.FeatureInfo(new global::System.Globalization.CultureInfo("en-US"), "Features/Repo", "Repo File Access", " As an AI agent\r\n I want to read, write, and list repository files via the REST" + - " API\r\n So that I can access project files from within the MCP context", global::Reqnroll.ProgrammingLanguage.CSharp, featureTags, InitializeCucumberMessages()); - - private global::Xunit.Abstractions.ITestOutputHelper _testOutputHelper; - -#line 1 "RepoFileAccess.feature" -#line hidden - - public RepoFileAccessFeature(RepoFileAccessFeature.FixtureData fixtureData, global::Xunit.Abstractions.ITestOutputHelper testOutputHelper) - { - this._testOutputHelper = testOutputHelper; - } - - public static async global::System.Threading.Tasks.Task FeatureSetupAsync() - { - } - - public static async global::System.Threading.Tasks.Task FeatureTearDownAsync() - { - await global::Reqnroll.TestRunnerManager.ReleaseFeatureAsync(featureInfo); - } - - public async global::System.Threading.Tasks.Task TestInitializeAsync() - { - testRunner = global::Reqnroll.TestRunnerManager.GetTestRunnerForAssembly(featureHint: featureInfo); - try - { - if (((testRunner.FeatureContext != null) - && (testRunner.FeatureContext.FeatureInfo.Equals(featureInfo) == false))) - { - await testRunner.OnFeatureEndAsync(); - } - } - finally - { - if (((testRunner.FeatureContext != null) - && testRunner.FeatureContext.BeforeFeatureHookFailed)) - { - throw new global::Reqnroll.ReqnrollException("Scenario skipped because of previous before feature hook error"); - } - if ((testRunner.FeatureContext == null)) - { - await testRunner.OnFeatureStartAsync(featureInfo); - } - } - } - - public async global::System.Threading.Tasks.Task TestTearDownAsync() - { - if ((testRunner == null)) - { - return; - } - try - { - await testRunner.OnScenarioEndAsync(); - } - finally - { - global::Reqnroll.TestRunnerManager.ReleaseTestRunner(testRunner); - testRunner = null; - } - } - - public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, global::Reqnroll.RuleInfo ruleInfo) - { - testRunner.OnScenarioInitialize(scenarioInfo, ruleInfo); - testRunner.ScenarioContext.ScenarioContainer.RegisterInstanceAs(_testOutputHelper); - } - - public async global::System.Threading.Tasks.Task ScenarioStartAsync() - { - await testRunner.OnScenarioStartAsync(); - } - - public async global::System.Threading.Tasks.Task ScenarioCleanupAsync() - { - await testRunner.CollectScenarioErrorsAsync(); - } - - public virtual async global::System.Threading.Tasks.Task FeatureBackgroundAsync() - { -#line 6 - #line hidden -#line 7 - await testRunner.GivenAsync("the MCP server is running", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden - } - - private static global::Io.Cucumber.Messages.Types.Source SourceFunc() - { - return new global::Io.Cucumber.Messages.Types.Source("Features/Repo/RepoFileAccess.feature", "Feature: Repo File Access\r\n As an AI agent\r\n I want to read, write, and list re" + - "pository files via the REST API\r\n So that I can access project files from withi" + - "n the MCP context\r\n\r\n Background:\r\n Given the MCP server is running\r\n\r\n # F" + - "R-SUPPORT-010 / TR-MCP-API-001\r\n\r\n Scenario: List repo files at root returns 20" + - "0 with entries\r\n When I send a GET request to \"/mcp/repo/list\"\r\n Then the " + - "response status code should be 200\r\n And the response body should contain \"en" + - "tries\"\r\n\r\n Scenario: List repo files with path returns 200\r\n When I send a G" + - "ET request to \"/mcp/repo/list?path=docs\"\r\n Then the response status code is 2" + - "00 or 400\r\n\r\n Scenario: Read repo file with missing path parameter returns 400\r" + - "\n When I send a GET request to \"/mcp/repo/file\"\r\n Then the response status" + - " code should be 400\r\n\r\n Scenario: Read repo file with valid path returns 200\r\n " + - " When I send a GET request to \"/mcp/repo/file?path=README.md\"\r\n Then the re" + - "sponse status code is 200 or 400\r\n\r\n Scenario: Write repo file with missing pat" + - "h returns 400\r\n When I POST to \"/mcp/repo/file\" with body:\r\n \"\"\"\r\n " + - "{ \"content\": \"some content without path\" }\r\n \"\"\"\r\n Then the response sta" + - "tus code should be 400\r\n\r\n Scenario: Write repo file with path outside repo roo" + - "t returns 400\r\n When I POST to \"/mcp/repo/file\" with body:\r\n \"\"\"\r\n " + - "{ \"path\": \"../../../etc/passwd\", \"content\": \"hack\" }\r\n \"\"\"\r\n Then the re" + - "sponse status code should be 400\r\n\r\n Scenario: Write to disallowed path is reje" + - "cted with 400\r\n When I POST to \"/mcp/repo/file\" with body:\r\n \"\"\"\r\n " + - "{ \"path\": \"../../etc/passwd\", \"body\": \"hack attempt\" }\r\n \"\"\"\r\n Then the " + - "response status code should be 400\r\n\r\n Scenario: List returns path field and en" + - "tries array\r\n When I send a GET request to \"/mcp/repo/list\"\r\n Then the res" + - "ponse status code should be 200\r\n And the response body should contain \"path\"" + - "\r\n And the response body should contain \"entries\"\r\n", global::Io.Cucumber.Messages.Types.SourceMediaType.TEXT_X_CUCUMBER_GHERKIN_PLAIN); - } - - private static global::Io.Cucumber.Messages.Types.GherkinDocument GherkinDocumentFunc() - { - return new global::Io.Cucumber.Messages.Types.GherkinDocument("Features/Repo/RepoFileAccess.feature", new global::Io.Cucumber.Messages.Types.Feature(new global::Io.Cucumber.Messages.Types.Location(1, new System.Nullable(1)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "en-US", "Feature", "Repo File Access", " As an AI agent\r\n I want to read, write, and list repository files via the REST" + - " API\r\n So that I can access project files from within the MCP context", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.FeatureChild[] { - new global::Io.Cucumber.Messages.Types.FeatureChild(null, new global::Io.Cucumber.Messages.Types.Background(new global::Io.Cucumber.Messages.Types.Location(6, new System.Nullable(3)), "Background", "", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(7, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "the MCP server is running", null, null, "549a76b649ce335d89974558281e3699")}), "bfaa0f6f32fee650b463f4f11ef5f45b"), null), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(11, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "List repo files at root returns 200 with entries", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(12, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/repo/list\"", null, null, "e0cd512eefd4bd54bdf882d87c67d6c9"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(13, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "97aa0f7d1fb308579af765b95b8e1829"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(14, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the response body should contain \"entries\"", null, null, "8e24bba2ab651a52a46a8008f1128a07")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "bb90816d353edf50b5ccc8ba11ad4fcb")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(16, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "List repo files with path returns 200", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(17, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/repo/list?path=docs\"", null, null, "f5788405474387598e15d13478773724"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(18, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code is 200 or 400", null, null, "e8965155d6130e56a7f282d4a8cdce37")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "601ec183debbc45f96f264b37cfa4d16")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(20, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Read repo file with missing path parameter returns 400", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(21, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/repo/file\"", null, null, "59b460c38759f75dbdfa6514273d3215"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(22, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 400", null, null, "2bd6911572207c5d87e1c3a8555af8eb")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "01d38ead96af1d58be9229544b8ac62e")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(24, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Read repo file with valid path returns 200", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(25, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/repo/file?path=README.md\"", null, null, "e8aa309a6adff553bf5ea8aa8937edc2"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(26, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code is 200 or 400", null, null, "8bcf68f4873bcb50997265dea5b4431b")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "8c9c880486ca4f5cb3c0bb0295328f44")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(28, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Write repo file with missing path returns 400", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(29, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/repo/file\" with body:", new global::Io.Cucumber.Messages.Types.DocString(new global::Io.Cucumber.Messages.Types.Location(30, new System.Nullable(7)), null, "{ \"content\": \"some content without path\" }", "\"\"\""), null, "05b5b4a339e0c750a1705824344e6864"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(33, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 400", null, null, "13aa34a85284bf548fd701a9538b6a9e")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "389fce010b8edc558d42e34e8fa383cc")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(35, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Write repo file with path outside repo root returns 400", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(36, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/repo/file\" with body:", new global::Io.Cucumber.Messages.Types.DocString(new global::Io.Cucumber.Messages.Types.Location(37, new System.Nullable(7)), null, "{ \"path\": \"../../../etc/passwd\", \"content\": \"hack\" }", "\"\"\""), null, "4c77f8dca56b2754b6cfbe473d09686f"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(40, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 400", null, null, "d6a47774c2ecb55f9f71e1fa214d4ef8")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "3db638c1b10e7f5891cb1747675a7b25")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(42, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Write to disallowed path is rejected with 400", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(43, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/repo/file\" with body:", new global::Io.Cucumber.Messages.Types.DocString(new global::Io.Cucumber.Messages.Types.Location(44, new System.Nullable(7)), null, "{ \"path\": \"../../etc/passwd\", \"body\": \"hack attempt\" }", "\"\"\""), null, "21654047ba853a5cae13c6454f306f26"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(47, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 400", null, null, "e65f86263973f95f811f83c5d38c2a17")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "5ec07f646d1e835e8a8777e0f33534e4")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(49, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "List returns path field and entries array", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(50, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/repo/list\"", null, null, "91265591fd45575884ade6f18840e11f"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(51, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "29bebcd1fc4f155aaaacfde7c9a010e2"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(52, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the response body should contain \"path\"", null, null, "fb2a2e40e055115c96e340b7c60db9fb"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(53, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the response body should contain \"entries\"", null, null, "872337f8a3c11c53967bf2b9469b7d43")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "9d40f3735362e85885d5e955c9920550"))})), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Comment[] { - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(9, new System.Nullable(1)), " # FR-SUPPORT-010 / TR-MCP-API-001")})); - } - - private static global::System.Collections.Generic.IEnumerable PicklesFunc() - { - return new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Pickle[] { - new global::Io.Cucumber.Messages.Types.Pickle("844cf9ab9309785ea404143248c2d058", "Features/Repo/RepoFileAccess.feature", "List repo files at root returns 200 with entries", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "549a76b649ce335d89974558281e3699"}), "002aee5fb2b3b05c9a1856b07ccdb8b4", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "e0cd512eefd4bd54bdf882d87c67d6c9"}), "31a30921e7e4545996fd47f5072eccb1", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/repo/list\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "97aa0f7d1fb308579af765b95b8e1829"}), "9bc7a2547461f350bdc12162721b1370", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "8e24bba2ab651a52a46a8008f1128a07"}), "abf833ae926b3c5ca1bf2a9b21ba138f", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response body should contain \"entries\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "bb90816d353edf50b5ccc8ba11ad4fcb"})), - new global::Io.Cucumber.Messages.Types.Pickle("0e505971947bef5795622d31edd081cb", "Features/Repo/RepoFileAccess.feature", "List repo files with path returns 200", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "549a76b649ce335d89974558281e3699"}), "ea943af2e171685c8d858334cd3b26b8", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "f5788405474387598e15d13478773724"}), "b8f7f0abab0fa057baf04e02540988e6", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/repo/list?path=docs\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "e8965155d6130e56a7f282d4a8cdce37"}), "f092b74ea376d05da012f30b7233941b", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code is 200 or 400")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "601ec183debbc45f96f264b37cfa4d16"})), - new global::Io.Cucumber.Messages.Types.Pickle("6d435ab81cfdc1589bbd7269f2ccfdd3", "Features/Repo/RepoFileAccess.feature", "Read repo file with missing path parameter returns 400", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "549a76b649ce335d89974558281e3699"}), "ee5306dd8daa4e5b8d2d187db50c9a63", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "59b460c38759f75dbdfa6514273d3215"}), "1c35517b5c05bb5d99893391dde2701b", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/repo/file\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "2bd6911572207c5d87e1c3a8555af8eb"}), "c0491203e4f5aa598d6ad7712967ede9", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 400")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "01d38ead96af1d58be9229544b8ac62e"})), - new global::Io.Cucumber.Messages.Types.Pickle("2d20ca18460d8b569e5341b560073d08", "Features/Repo/RepoFileAccess.feature", "Read repo file with valid path returns 200", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "549a76b649ce335d89974558281e3699"}), "5ef3459fe6f6915f85da5f1c7480ed60", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "e8aa309a6adff553bf5ea8aa8937edc2"}), "b7d29f17ecf41f518023e0e43dc38483", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/repo/file?path=README.md\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "8bcf68f4873bcb50997265dea5b4431b"}), "5efeffe9ce024758be779fc538b84d3a", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code is 200 or 400")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "8c9c880486ca4f5cb3c0bb0295328f44"})), - new global::Io.Cucumber.Messages.Types.Pickle("c2502b855d0a7f56a210545297b45dee", "Features/Repo/RepoFileAccess.feature", "Write repo file with missing path returns 400", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "549a76b649ce335d89974558281e3699"}), "9cc14134b175b25a9edf260e8d3b6748", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(new global::Io.Cucumber.Messages.Types.PickleStepArgument(new global::Io.Cucumber.Messages.Types.PickleDocString(null, "{ \"content\": \"some content without path\" }"), null), new System.Collections.Generic.List(new string[] { - "05b5b4a339e0c750a1705824344e6864"}), "864f950983f8a258bf893d6adf77acaf", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/repo/file\" with body:"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "13aa34a85284bf548fd701a9538b6a9e"}), "2cf2f5859663b45ab40a53fc59b3221e", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 400")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "389fce010b8edc558d42e34e8fa383cc"})), - new global::Io.Cucumber.Messages.Types.Pickle("6c5b1d56db52f65a81d07dbc300f6298", "Features/Repo/RepoFileAccess.feature", "Write repo file with path outside repo root returns 400", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "549a76b649ce335d89974558281e3699"}), "ba2b35e52f5f105782b248c64e5ff990", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(new global::Io.Cucumber.Messages.Types.PickleStepArgument(new global::Io.Cucumber.Messages.Types.PickleDocString(null, "{ \"path\": \"../../../etc/passwd\", \"content\": \"hack\" }"), null), new System.Collections.Generic.List(new string[] { - "4c77f8dca56b2754b6cfbe473d09686f"}), "6c22483b8b0342568d9afc452d106e26", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/repo/file\" with body:"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "d6a47774c2ecb55f9f71e1fa214d4ef8"}), "314f6b99472bd854aabf21c7c23ccc4d", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 400")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "3db638c1b10e7f5891cb1747675a7b25"})), - new global::Io.Cucumber.Messages.Types.Pickle("1dc531d6bf056c5ba18589160ef26043", "Features/Repo/RepoFileAccess.feature", "Write to disallowed path is rejected with 400", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "549a76b649ce335d89974558281e3699"}), "1743d933fc817650b2f503e77ab7d65f", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(new global::Io.Cucumber.Messages.Types.PickleStepArgument(new global::Io.Cucumber.Messages.Types.PickleDocString(null, "{ \"path\": \"../../etc/passwd\", \"body\": \"hack attempt\" }"), null), new System.Collections.Generic.List(new string[] { - "21654047ba853a5cae13c6454f306f26"}), "f908b90199ef6251929a96dc7c8fad69", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/repo/file\" with body:"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "e65f86263973f95f811f83c5d38c2a17"}), "fd09222e78a3d15da814bd52eb3c06d3", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 400")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "5ec07f646d1e835e8a8777e0f33534e4"})), - new global::Io.Cucumber.Messages.Types.Pickle("5209f671c72c2b50b9c5a72ba457cd51", "Features/Repo/RepoFileAccess.feature", "List returns path field and entries array", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "549a76b649ce335d89974558281e3699"}), "f39ad7e89c580555b5db0a20d77cc9f4", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "91265591fd45575884ade6f18840e11f"}), "65c1abe1bfae095c98dd292bfdee4393", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/repo/list\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "29bebcd1fc4f155aaaacfde7c9a010e2"}), "139f308d99b869598a51d69808540d38", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "fb2a2e40e055115c96e340b7c60db9fb"}), "eb6febd642b1f751a4c13bab3823a424", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response body should contain \"path\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "872337f8a3c11c53967bf2b9469b7d43"}), "d8f90da95830b05ab7142e0f54d8743a", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response body should contain \"entries\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "9d40f3735362e85885d5e955c9920550"}))}); - } - - private static global::Reqnroll.Formatters.RuntimeSupport.FeatureLevelCucumberMessages InitializeCucumberMessages() - { - return new global::Reqnroll.Formatters.RuntimeSupport.FeatureLevelCucumberMessages(new global::System.Func(RepoFileAccessFeature.SourceFunc), new global::System.Func(RepoFileAccessFeature.GherkinDocumentFunc), new global::System.Func>(RepoFileAccessFeature.PicklesFunc)); - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.InitializeAsync() - { - try - { - await this.TestInitializeAsync(); - } - catch (System.Exception e1) - { - try - { - ((global::Xunit.IAsyncLifetime)(this)).DisposeAsync(); - } - catch (System.Exception e2) - { - throw new System.AggregateException("Test initialization failed", e1, e2); - } - throw; - } - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.DisposeAsync() - { - await this.TestTearDownAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="List repo files at root returns 200 with entries")] - [global::Xunit.TraitAttribute("FeatureTitle", "Repo File Access")] - [global::Xunit.TraitAttribute("Description", "List repo files at root returns 200 with entries")] - public async global::System.Threading.Tasks.Task ListRepoFilesAtRootReturns200WithEntries() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "0"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("List repo files at root returns 200 with entries", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 11 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 12 - await testRunner.WhenAsync("I send a GET request to \"/mcp/repo/list\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 13 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 14 - await testRunner.AndAsync("the response body should contain \"entries\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="List repo files with path returns 200")] - [global::Xunit.TraitAttribute("FeatureTitle", "Repo File Access")] - [global::Xunit.TraitAttribute("Description", "List repo files with path returns 200")] - public async global::System.Threading.Tasks.Task ListRepoFilesWithPathReturns200() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "1"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("List repo files with path returns 200", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 16 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 17 - await testRunner.WhenAsync("I send a GET request to \"/mcp/repo/list?path=docs\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 18 - await testRunner.ThenAsync("the response status code is 200 or 400", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Read repo file with missing path parameter returns 400")] - [global::Xunit.TraitAttribute("FeatureTitle", "Repo File Access")] - [global::Xunit.TraitAttribute("Description", "Read repo file with missing path parameter returns 400")] - public async global::System.Threading.Tasks.Task ReadRepoFileWithMissingPathParameterReturns400() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "2"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Read repo file with missing path parameter returns 400", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 20 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 21 - await testRunner.WhenAsync("I send a GET request to \"/mcp/repo/file\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 22 - await testRunner.ThenAsync("the response status code should be 400", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Read repo file with valid path returns 200")] - [global::Xunit.TraitAttribute("FeatureTitle", "Repo File Access")] - [global::Xunit.TraitAttribute("Description", "Read repo file with valid path returns 200")] - public async global::System.Threading.Tasks.Task ReadRepoFileWithValidPathReturns200() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "3"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Read repo file with valid path returns 200", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 24 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 25 - await testRunner.WhenAsync("I send a GET request to \"/mcp/repo/file?path=README.md\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 26 - await testRunner.ThenAsync("the response status code is 200 or 400", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Write repo file with missing path returns 400")] - [global::Xunit.TraitAttribute("FeatureTitle", "Repo File Access")] - [global::Xunit.TraitAttribute("Description", "Write repo file with missing path returns 400")] - public async global::System.Threading.Tasks.Task WriteRepoFileWithMissingPathReturns400() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "4"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Write repo file with missing path returns 400", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 28 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 29 - await testRunner.WhenAsync("I POST to \"/mcp/repo/file\" with body:", "{ \"content\": \"some content without path\" }", ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 33 - await testRunner.ThenAsync("the response status code should be 400", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Write repo file with path outside repo root returns 400")] - [global::Xunit.TraitAttribute("FeatureTitle", "Repo File Access")] - [global::Xunit.TraitAttribute("Description", "Write repo file with path outside repo root returns 400")] - public async global::System.Threading.Tasks.Task WriteRepoFileWithPathOutsideRepoRootReturns400() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "5"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Write repo file with path outside repo root returns 400", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 35 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 36 - await testRunner.WhenAsync("I POST to \"/mcp/repo/file\" with body:", "{ \"path\": \"../../../etc/passwd\", \"content\": \"hack\" }", ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 40 - await testRunner.ThenAsync("the response status code should be 400", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Write to disallowed path is rejected with 400")] - [global::Xunit.TraitAttribute("FeatureTitle", "Repo File Access")] - [global::Xunit.TraitAttribute("Description", "Write to disallowed path is rejected with 400")] - public async global::System.Threading.Tasks.Task WriteToDisallowedPathIsRejectedWith400() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "6"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Write to disallowed path is rejected with 400", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 42 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 43 - await testRunner.WhenAsync("I POST to \"/mcp/repo/file\" with body:", "{ \"path\": \"../../etc/passwd\", \"body\": \"hack attempt\" }", ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 47 - await testRunner.ThenAsync("the response status code should be 400", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="List returns path field and entries array")] - [global::Xunit.TraitAttribute("FeatureTitle", "Repo File Access")] - [global::Xunit.TraitAttribute("Description", "List returns path field and entries array")] - public async global::System.Threading.Tasks.Task ListReturnsPathFieldAndEntriesArray() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "7"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("List returns path field and entries array", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 49 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 50 - await testRunner.WhenAsync("I send a GET request to \"/mcp/repo/list\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 51 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 52 - await testRunner.AndAsync("the response body should contain \"path\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 53 - await testRunner.AndAsync("the response body should contain \"entries\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Reqnroll", "3.0.0.0")] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - public class FixtureData : object, global::Xunit.IAsyncLifetime - { - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.InitializeAsync() - { - await RepoFileAccessFeature.FeatureSetupAsync(); - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.DisposeAsync() - { - await RepoFileAccessFeature.FeatureTearDownAsync(); - } - } - } -} -#pragma warning restore -#endregion diff --git a/tests/McpServer.SpecFlow.Tests/Features/Requirements/AIRequirementsAnalysis.feature b/tests/McpServer.SpecFlow.Tests/Features/Requirements/AIRequirementsAnalysis.feature deleted file mode 100644 index ea55c51c..00000000 --- a/tests/McpServer.SpecFlow.Tests/Features/Requirements/AIRequirementsAnalysis.feature +++ /dev/null @@ -1,72 +0,0 @@ -Feature: AI-Assisted Requirements Analysis - As a developer - I want the server to invoke the Copilot CLI to analyze a TODO item - So that FR/TR requirement IDs can be assigned automatically - - Background: - Given the MCP server is running - - # FR-MCP-023 / TR-MCP-REQ-001 / TEST-MCP-014 - - Scenario: Requirements endpoint returns 422 when Copilot CLI is unavailable - Given a TODO item exists with title "AnalysisItem" and id stored as "analysisId" - When I POST to "/mcp/todo/{analysisId}/requirements" with empty body - Then the response status code should be 422 - - Scenario: RequirementsService extracts JSON-block format requirement IDs - Given a Copilot response containing: - """ - {"functionalRequirements": ["FR-MCP-001"], "technicalRequirements": ["TR-MCP-ARCH-001"]} - """ - When I extract requirement IDs from the JSON block response - Then the extracted IDs should contain "FR-MCP-001" - And the extracted IDs should contain "TR-MCP-ARCH-001" - And the extracted IDs should be distinct - - Scenario: RequirementsService falls back to regex extraction when no JSON block present - Given a Copilot response containing: - """ - Based on the analysis, the following requirements apply: - FR-MCP-002 covers the TODO API. - TR-MCP-001 covers persistence. - """ - When I extract requirement IDs using regex fallback - Then the extracted IDs should contain "FR-MCP-002" - And the extracted IDs should contain "TR-MCP-001" - And the extracted IDs should be distinct - - Scenario: RequirementsService returns empty list for response with no IDs - Given a Copilot response containing: - """ - No matching requirements were found for this item. - """ - When I extract requirement IDs using regex fallback - Then the extracted IDs should be empty - - Scenario: RequirementsService matches FR pattern FR-[A-Z]+-\d{3} - Given a Copilot response containing: - """ - FR-SUPPORT-010 is relevant. FR-MCP-009 also applies. - """ - When I extract requirement IDs using regex fallback - Then the extracted IDs should contain "FR-SUPPORT-010" - And the extracted IDs should contain "FR-MCP-009" - - Scenario: RequirementsService matches TR pattern TR-[A-Z]+-\d{3} - Given a Copilot response containing: - """ - TR-GH-013 and TR-MCP-002 are the technical requirements. - """ - When I extract requirement IDs using regex fallback - Then the extracted IDs should contain "TR-GH-013" - And the extracted IDs should contain "TR-MCP-002" - - Scenario: Discovered IDs are merged without duplicates - Given a Copilot response containing: - """ - {"functionalRequirements": ["FR-MCP-001", "FR-MCP-002"], "technicalRequirements": []} - """ - When I extract requirement IDs from the JSON block response - Then the extracted IDs should contain "FR-MCP-001" - And the extracted IDs should contain "FR-MCP-002" - And the extracted IDs should be distinct diff --git a/tests/McpServer.SpecFlow.Tests/Features/Requirements/AIRequirementsAnalysis.feature.cs b/tests/McpServer.SpecFlow.Tests/Features/Requirements/AIRequirementsAnalysis.feature.cs deleted file mode 100644 index 68182e10..00000000 --- a/tests/McpServer.SpecFlow.Tests/Features/Requirements/AIRequirementsAnalysis.feature.cs +++ /dev/null @@ -1,634 +0,0 @@ -// ------------------------------------------------------------------------------ -// -// This code was generated by Reqnroll (https://www.reqnroll.net/). -// Reqnroll Version:3.0.0.0 -// Reqnroll Generator Version:3.0.0.0 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -// ------------------------------------------------------------------------------ -#region Designer generated code -#pragma warning disable -using Reqnroll; -namespace McpServer.SpecFlow.Tests.Features.Requirements -{ - - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Reqnroll", "3.0.0.0")] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - public partial class AI_AssistedRequirementsAnalysisFeature : object, global::Xunit.IClassFixture, global::Xunit.IAsyncLifetime - { - - private global::Reqnroll.ITestRunner testRunner; - - private static string[] featureTags = ((string[])(null)); - - private static global::Reqnroll.FeatureInfo featureInfo = new global::Reqnroll.FeatureInfo(new global::System.Globalization.CultureInfo("en-US"), "Features/Requirements", "AI-Assisted Requirements Analysis", " As a developer\r\n I want the server to invoke the Copilot CLI to analyze a TODO" + - " item\r\n So that FR/TR requirement IDs can be assigned automatically", global::Reqnroll.ProgrammingLanguage.CSharp, featureTags, InitializeCucumberMessages()); - - private global::Xunit.Abstractions.ITestOutputHelper _testOutputHelper; - -#line 1 "AIRequirementsAnalysis.feature" -#line hidden - - public AI_AssistedRequirementsAnalysisFeature(AI_AssistedRequirementsAnalysisFeature.FixtureData fixtureData, global::Xunit.Abstractions.ITestOutputHelper testOutputHelper) - { - this._testOutputHelper = testOutputHelper; - } - - public static async global::System.Threading.Tasks.Task FeatureSetupAsync() - { - } - - public static async global::System.Threading.Tasks.Task FeatureTearDownAsync() - { - await global::Reqnroll.TestRunnerManager.ReleaseFeatureAsync(featureInfo); - } - - public async global::System.Threading.Tasks.Task TestInitializeAsync() - { - testRunner = global::Reqnroll.TestRunnerManager.GetTestRunnerForAssembly(featureHint: featureInfo); - try - { - if (((testRunner.FeatureContext != null) - && (testRunner.FeatureContext.FeatureInfo.Equals(featureInfo) == false))) - { - await testRunner.OnFeatureEndAsync(); - } - } - finally - { - if (((testRunner.FeatureContext != null) - && testRunner.FeatureContext.BeforeFeatureHookFailed)) - { - throw new global::Reqnroll.ReqnrollException("Scenario skipped because of previous before feature hook error"); - } - if ((testRunner.FeatureContext == null)) - { - await testRunner.OnFeatureStartAsync(featureInfo); - } - } - } - - public async global::System.Threading.Tasks.Task TestTearDownAsync() - { - if ((testRunner == null)) - { - return; - } - try - { - await testRunner.OnScenarioEndAsync(); - } - finally - { - global::Reqnroll.TestRunnerManager.ReleaseTestRunner(testRunner); - testRunner = null; - } - } - - public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, global::Reqnroll.RuleInfo ruleInfo) - { - testRunner.OnScenarioInitialize(scenarioInfo, ruleInfo); - testRunner.ScenarioContext.ScenarioContainer.RegisterInstanceAs(_testOutputHelper); - } - - public async global::System.Threading.Tasks.Task ScenarioStartAsync() - { - await testRunner.OnScenarioStartAsync(); - } - - public async global::System.Threading.Tasks.Task ScenarioCleanupAsync() - { - await testRunner.CollectScenarioErrorsAsync(); - } - - public virtual async global::System.Threading.Tasks.Task FeatureBackgroundAsync() - { -#line 6 - #line hidden -#line 7 - await testRunner.GivenAsync("the MCP server is running", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden - } - - private static global::Io.Cucumber.Messages.Types.Source SourceFunc() - { - return new global::Io.Cucumber.Messages.Types.Source("Features/Requirements/AIRequirementsAnalysis.feature", "Feature: AI-Assisted Requirements Analysis\r\n As a developer\r\n I want the server" + - " to invoke the Copilot CLI to analyze a TODO item\r\n So that FR/TR requirement I" + - "Ds can be assigned automatically\r\n\r\n Background:\r\n Given the MCP server is r" + - "unning\r\n\r\n # FR-MCP-023 / TR-MCP-REQ-001 / TEST-MCP-014\r\n\r\n Scenario: Requirem" + - "ents endpoint returns 422 when Copilot CLI is unavailable\r\n Given a TODO item" + - " exists with title \"AnalysisItem\" and id stored as \"analysisId\"\r\n When I POST" + - " to \"/mcp/todo/{analysisId}/requirements\" with empty body\r\n Then the response" + - " status code should be 422\r\n\r\n Scenario: RequirementsService extracts JSON-bloc" + - "k format requirement IDs\r\n Given a Copilot response containing:\r\n \"\"\"\r\n " + - " {\"functionalRequirements\": [\"FR-MCP-001\"], \"technicalRequirements\": [\"TR-MC" + - "P-ARCH-001\"]}\r\n \"\"\"\r\n When I extract requirement IDs from the JSON block" + - " response\r\n Then the extracted IDs should contain \"FR-MCP-001\"\r\n And the e" + - "xtracted IDs should contain \"TR-MCP-ARCH-001\"\r\n And the extracted IDs should " + - "be distinct\r\n\r\n Scenario: RequirementsService falls back to regex extraction wh" + - "en no JSON block present\r\n Given a Copilot response containing:\r\n \"\"\"\r\n " + - " Based on the analysis, the following requirements apply:\r\n FR-MCP-002 " + - "covers the TODO API.\r\n TR-MCP-001 covers persistence.\r\n \"\"\"\r\n When " + - "I extract requirement IDs using regex fallback\r\n Then the extracted IDs shoul" + - "d contain \"FR-MCP-002\"\r\n And the extracted IDs should contain \"TR-MCP-001\"\r\n " + - " And the extracted IDs should be distinct\r\n\r\n Scenario: RequirementsService r" + - "eturns empty list for response with no IDs\r\n Given a Copilot response contain" + - "ing:\r\n \"\"\"\r\n No matching requirements were found for this item.\r\n " + - " \"\"\"\r\n When I extract requirement IDs using regex fallback\r\n Then the extr" + - "acted IDs should be empty\r\n\r\n Scenario: RequirementsService matches FR pattern " + - "FR-[A-Z]+-\\d{3}\r\n Given a Copilot response containing:\r\n \"\"\"\r\n FR-S" + - "UPPORT-010 is relevant. FR-MCP-009 also applies.\r\n \"\"\"\r\n When I extract " + - "requirement IDs using regex fallback\r\n Then the extracted IDs should contain " + - "\"FR-SUPPORT-010\"\r\n And the extracted IDs should contain \"FR-MCP-009\"\r\n\r\n Sce" + - "nario: RequirementsService matches TR pattern TR-[A-Z]+-\\d{3}\r\n Given a Copil" + - "ot response containing:\r\n \"\"\"\r\n TR-GH-013 and TR-MCP-002 are the techn" + - "ical requirements.\r\n \"\"\"\r\n When I extract requirement IDs using regex fa" + - "llback\r\n Then the extracted IDs should contain \"TR-GH-013\"\r\n And the extra" + - "cted IDs should contain \"TR-MCP-002\"\r\n\r\n Scenario: Discovered IDs are merged wi" + - "thout duplicates\r\n Given a Copilot response containing:\r\n \"\"\"\r\n {\"f" + - "unctionalRequirements\": [\"FR-MCP-001\", \"FR-MCP-002\"], \"technicalRequirements\": [" + - "]}\r\n \"\"\"\r\n When I extract requirement IDs from the JSON block response\r\n" + - " Then the extracted IDs should contain \"FR-MCP-001\"\r\n And the extracted ID" + - "s should contain \"FR-MCP-002\"\r\n And the extracted IDs should be distinct\r\n", global::Io.Cucumber.Messages.Types.SourceMediaType.TEXT_X_CUCUMBER_GHERKIN_PLAIN); - } - - private static global::Io.Cucumber.Messages.Types.GherkinDocument GherkinDocumentFunc() - { - return new global::Io.Cucumber.Messages.Types.GherkinDocument("Features/Requirements/AIRequirementsAnalysis.feature", new global::Io.Cucumber.Messages.Types.Feature(new global::Io.Cucumber.Messages.Types.Location(1, new System.Nullable(1)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "en-US", "Feature", "AI-Assisted Requirements Analysis", " As a developer\r\n I want the server to invoke the Copilot CLI to analyze a TODO" + - " item\r\n So that FR/TR requirement IDs can be assigned automatically", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.FeatureChild[] { - new global::Io.Cucumber.Messages.Types.FeatureChild(null, new global::Io.Cucumber.Messages.Types.Background(new global::Io.Cucumber.Messages.Types.Location(6, new System.Nullable(3)), "Background", "", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(7, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "the MCP server is running", null, null, "2bc452c39da2925195853bb2aef107e6")}), "6701287ba6a94658bbfee913316d135c"), null), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(11, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Requirements endpoint returns 422 when Copilot CLI is unavailable", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(12, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "a TODO item exists with title \"AnalysisItem\" and id stored as \"analysisId\"", null, null, "0b3ce7a06078745fac8437c031a0189f"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(13, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/todo/{analysisId}/requirements\" with empty body", null, null, "50ed83f0cde7c35b998023d0a564d5b5"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(14, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 422", null, null, "a8fd86dbe2de8e519f5417569a88f187")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "aee00227e8771d50b17eb7269029926b")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(16, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "RequirementsService extracts JSON-block format requirement IDs", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(17, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "a Copilot response containing:", new global::Io.Cucumber.Messages.Types.DocString(new global::Io.Cucumber.Messages.Types.Location(18, new System.Nullable(7)), null, "{\"functionalRequirements\": [\"FR-MCP-001\"], \"technicalRequirements\": [\"TR-MCP-ARCH" + - "-001\"]}", "\"\"\""), null, "62c362e11695935c9b0b6c16d425997e"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(21, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I extract requirement IDs from the JSON block response", null, null, "18d0c9052354045c8b86dbef56de6e9c"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(22, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the extracted IDs should contain \"FR-MCP-001\"", null, null, "578816d6707d5352adb62f9f7784eee2"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(23, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the extracted IDs should contain \"TR-MCP-ARCH-001\"", null, null, "3549d3adeac10957bc5da8296bc03fb9"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(24, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the extracted IDs should be distinct", null, null, "ef8a15ee122ec75ba3ecaa57dfe6bf03")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "a1dbf4742d46365aaa1fdcdcd956cae7")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(26, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "RequirementsService falls back to regex extraction when no JSON block present", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(27, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "a Copilot response containing:", new global::Io.Cucumber.Messages.Types.DocString(new global::Io.Cucumber.Messages.Types.Location(28, new System.Nullable(7)), null, "Based on the analysis, the following requirements apply:\r\nFR-MCP-002 covers the T" + - "ODO API.\r\nTR-MCP-001 covers persistence.", "\"\"\""), null, "cac54eec3602055e91932a89eb049511"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(33, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I extract requirement IDs using regex fallback", null, null, "dbe5402ac31d9751b2794db65978be5e"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(34, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the extracted IDs should contain \"FR-MCP-002\"", null, null, "807f09c61d348e58ba2b344af8ac4119"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(35, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the extracted IDs should contain \"TR-MCP-001\"", null, null, "60a8af21bf94bc589ec4dd53d210bc4c"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(36, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the extracted IDs should be distinct", null, null, "a891efec1d729c55bec0fded85f5720d")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "44bed3196a843e5dace4251a12135444")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(38, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "RequirementsService returns empty list for response with no IDs", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(39, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "a Copilot response containing:", new global::Io.Cucumber.Messages.Types.DocString(new global::Io.Cucumber.Messages.Types.Location(40, new System.Nullable(7)), null, "No matching requirements were found for this item.", "\"\"\""), null, "5e8ed94cfedb8d5dbd2afacb2a6cdb90"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(43, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I extract requirement IDs using regex fallback", null, null, "f2d4849a449fae56bc80f771986c3d7b"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(44, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the extracted IDs should be empty", null, null, "4830aad3566c2d50a4c0237dc24cab8c")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "cbff09404b0098598d2f901246d27d5b")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(46, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "RequirementsService matches FR pattern FR-[A-Z]+-\\d{3}", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(47, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "a Copilot response containing:", new global::Io.Cucumber.Messages.Types.DocString(new global::Io.Cucumber.Messages.Types.Location(48, new System.Nullable(7)), null, "FR-SUPPORT-010 is relevant. FR-MCP-009 also applies.", "\"\"\""), null, "994cca49c797995281d4894c667c29fe"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(51, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I extract requirement IDs using regex fallback", null, null, "861c5376666c0156b6852e564e6e7808"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(52, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the extracted IDs should contain \"FR-SUPPORT-010\"", null, null, "b8a01dc1f5bfd5559ba94320796e6c19"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(53, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the extracted IDs should contain \"FR-MCP-009\"", null, null, "63420253060cd75aac74e5a378122371")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "ff1fa3fb874c665aae8ed8be6ffe6a8c")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(55, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "RequirementsService matches TR pattern TR-[A-Z]+-\\d{3}", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(56, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "a Copilot response containing:", new global::Io.Cucumber.Messages.Types.DocString(new global::Io.Cucumber.Messages.Types.Location(57, new System.Nullable(7)), null, "TR-GH-013 and TR-MCP-002 are the technical requirements.", "\"\"\""), null, "19e5540f3bf0b45c99b8fe5f97572941"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(60, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I extract requirement IDs using regex fallback", null, null, "55cf9a4bd92bde5ab88578f3461d8896"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(61, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the extracted IDs should contain \"TR-GH-013\"", null, null, "010eee01a065c45486b2cb93effff2ec"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(62, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the extracted IDs should contain \"TR-MCP-002\"", null, null, "f8a5d42f11c0e9569a24facb4d7129fe")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "ea78d48aae16df568e8ce8b260e2ceb5")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(64, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Discovered IDs are merged without duplicates", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(65, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "a Copilot response containing:", new global::Io.Cucumber.Messages.Types.DocString(new global::Io.Cucumber.Messages.Types.Location(66, new System.Nullable(7)), null, "{\"functionalRequirements\": [\"FR-MCP-001\", \"FR-MCP-002\"], \"technicalRequirements\":" + - " []}", "\"\"\""), null, "0045602e4aa44756b5669bbb231eaa27"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(69, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I extract requirement IDs from the JSON block response", null, null, "b84b99d99b4a9c54a6b6039f3f6f462b"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(70, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the extracted IDs should contain \"FR-MCP-001\"", null, null, "04160336ef83e65082a0f66cad330047"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(71, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the extracted IDs should contain \"FR-MCP-002\"", null, null, "eac4835406d26854b41c0b1792bbe948"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(72, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the extracted IDs should be distinct", null, null, "978645931d868b5285af8c1529c622de")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "e89172b7d4d12c5abb5ddadc34e77f4e"))})), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Comment[] { - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(9, new System.Nullable(1)), " # FR-MCP-023 / TR-MCP-REQ-001 / TEST-MCP-014")})); - } - - private static global::System.Collections.Generic.IEnumerable PicklesFunc() - { - return new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Pickle[] { - new global::Io.Cucumber.Messages.Types.Pickle("036ae2a148435c5a906a211a16ee1ab0", "Features/Requirements/AIRequirementsAnalysis.feature", "Requirements endpoint returns 422 when Copilot CLI is unavailable", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "2bc452c39da2925195853bb2aef107e6"}), "0cc2ad8737b9f2508223bbdcb3542eda", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "0b3ce7a06078745fac8437c031a0189f"}), "e7abd54388240655a29065b91e766eff", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a TODO item exists with title \"AnalysisItem\" and id stored as \"analysisId\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "50ed83f0cde7c35b998023d0a564d5b5"}), "465d4ddf802fb65fb1ba50799050499d", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/todo/{analysisId}/requirements\" with empty body"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "a8fd86dbe2de8e519f5417569a88f187"}), "79258a6a9f093a558fb5a0bdf8059ddd", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 422")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "aee00227e8771d50b17eb7269029926b"})), - new global::Io.Cucumber.Messages.Types.Pickle("dd405d707132b35bbbf6b3a6a110464f", "Features/Requirements/AIRequirementsAnalysis.feature", "RequirementsService extracts JSON-block format requirement IDs", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "2bc452c39da2925195853bb2aef107e6"}), "b1410b12adf1f851b82fc06d436e677e", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(new global::Io.Cucumber.Messages.Types.PickleStepArgument(new global::Io.Cucumber.Messages.Types.PickleDocString(null, "{\"functionalRequirements\": [\"FR-MCP-001\"], \"technicalRequirements\": [\"TR-MCP-ARCH" + - "-001\"]}"), null), new System.Collections.Generic.List(new string[] { - "62c362e11695935c9b0b6c16d425997e"}), "c25faaaad47d4b50a16a53378c51155a", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a Copilot response containing:"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "18d0c9052354045c8b86dbef56de6e9c"}), "8b4022d44986c15b853fb65e35c0a285", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I extract requirement IDs from the JSON block response"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "578816d6707d5352adb62f9f7784eee2"}), "24405829d61799528f9e960d9af91580", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the extracted IDs should contain \"FR-MCP-001\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "3549d3adeac10957bc5da8296bc03fb9"}), "ff3a68841a92f759a9513ab578140295", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the extracted IDs should contain \"TR-MCP-ARCH-001\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "ef8a15ee122ec75ba3ecaa57dfe6bf03"}), "6e6e30660635f350bee0eba0ee3b5f42", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the extracted IDs should be distinct")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "a1dbf4742d46365aaa1fdcdcd956cae7"})), - new global::Io.Cucumber.Messages.Types.Pickle("0899124fa0f47a508d1ee41479f5f10b", "Features/Requirements/AIRequirementsAnalysis.feature", "RequirementsService falls back to regex extraction when no JSON block present", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "2bc452c39da2925195853bb2aef107e6"}), "919491dff93f115eb64c5a3485bcae79", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(new global::Io.Cucumber.Messages.Types.PickleStepArgument(new global::Io.Cucumber.Messages.Types.PickleDocString(null, "Based on the analysis, the following requirements apply:\r\nFR-MCP-002 covers the T" + - "ODO API.\r\nTR-MCP-001 covers persistence."), null), new System.Collections.Generic.List(new string[] { - "cac54eec3602055e91932a89eb049511"}), "a0cfd2e11518c250bbe42f9af766b88f", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a Copilot response containing:"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "dbe5402ac31d9751b2794db65978be5e"}), "7f580b7bfa7fcf5b9cc2a6149f3c3419", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I extract requirement IDs using regex fallback"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "807f09c61d348e58ba2b344af8ac4119"}), "8edb79688435835a849639f340037ec8", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the extracted IDs should contain \"FR-MCP-002\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "60a8af21bf94bc589ec4dd53d210bc4c"}), "d1172bb392c1ee519250e2863587ee1e", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the extracted IDs should contain \"TR-MCP-001\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "a891efec1d729c55bec0fded85f5720d"}), "b9408d9be4e18a59aabae98ed1607bc8", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the extracted IDs should be distinct")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "44bed3196a843e5dace4251a12135444"})), - new global::Io.Cucumber.Messages.Types.Pickle("f92ecbd04236125b90aca4cdbbf4c84a", "Features/Requirements/AIRequirementsAnalysis.feature", "RequirementsService returns empty list for response with no IDs", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "2bc452c39da2925195853bb2aef107e6"}), "c54ba23aed4fb55d8c313672b1d6b6a6", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(new global::Io.Cucumber.Messages.Types.PickleStepArgument(new global::Io.Cucumber.Messages.Types.PickleDocString(null, "No matching requirements were found for this item."), null), new System.Collections.Generic.List(new string[] { - "5e8ed94cfedb8d5dbd2afacb2a6cdb90"}), "d446c8187607e75bb444f01d2284500c", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a Copilot response containing:"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "f2d4849a449fae56bc80f771986c3d7b"}), "18d5af5cfcf60f5fb58e43c31d86b337", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I extract requirement IDs using regex fallback"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "4830aad3566c2d50a4c0237dc24cab8c"}), "8c080a09ff719854923f89adc3e4a9b9", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the extracted IDs should be empty")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "cbff09404b0098598d2f901246d27d5b"})), - new global::Io.Cucumber.Messages.Types.Pickle("75451fb0952b1950b88e1ea5860986bf", "Features/Requirements/AIRequirementsAnalysis.feature", "RequirementsService matches FR pattern FR-[A-Z]+-\\d{3}", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "2bc452c39da2925195853bb2aef107e6"}), "60e2daf52bde37518834fca2eabadb93", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(new global::Io.Cucumber.Messages.Types.PickleStepArgument(new global::Io.Cucumber.Messages.Types.PickleDocString(null, "FR-SUPPORT-010 is relevant. FR-MCP-009 also applies."), null), new System.Collections.Generic.List(new string[] { - "994cca49c797995281d4894c667c29fe"}), "6074948cf6c6b158aa6ae88463fb4ee0", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a Copilot response containing:"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "861c5376666c0156b6852e564e6e7808"}), "d6034b91f6b9ee59827d53d99db34f0d", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I extract requirement IDs using regex fallback"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "b8a01dc1f5bfd5559ba94320796e6c19"}), "d1d4fb726cf6f85192725f2e8a0ec8c7", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the extracted IDs should contain \"FR-SUPPORT-010\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "63420253060cd75aac74e5a378122371"}), "20904efbd6faf15199d3920653c38c60", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the extracted IDs should contain \"FR-MCP-009\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "ff1fa3fb874c665aae8ed8be6ffe6a8c"})), - new global::Io.Cucumber.Messages.Types.Pickle("4963bfbcb667ea558685bed65a08fa2a", "Features/Requirements/AIRequirementsAnalysis.feature", "RequirementsService matches TR pattern TR-[A-Z]+-\\d{3}", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "2bc452c39da2925195853bb2aef107e6"}), "cb787cca18178e5686374add435124a8", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(new global::Io.Cucumber.Messages.Types.PickleStepArgument(new global::Io.Cucumber.Messages.Types.PickleDocString(null, "TR-GH-013 and TR-MCP-002 are the technical requirements."), null), new System.Collections.Generic.List(new string[] { - "19e5540f3bf0b45c99b8fe5f97572941"}), "0deb9659509bd25c96f764e3facdb22f", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a Copilot response containing:"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "55cf9a4bd92bde5ab88578f3461d8896"}), "23ede6dcb23b0b5e935cdcafd45133ab", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I extract requirement IDs using regex fallback"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "010eee01a065c45486b2cb93effff2ec"}), "cac011697f113f55bf984836c16a89f4", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the extracted IDs should contain \"TR-GH-013\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "f8a5d42f11c0e9569a24facb4d7129fe"}), "104973f0350d6455be259431aeba2557", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the extracted IDs should contain \"TR-MCP-002\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "ea78d48aae16df568e8ce8b260e2ceb5"})), - new global::Io.Cucumber.Messages.Types.Pickle("c7f52f5c3d5e1653b091a3e7002ac6b5", "Features/Requirements/AIRequirementsAnalysis.feature", "Discovered IDs are merged without duplicates", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "2bc452c39da2925195853bb2aef107e6"}), "8cdf6a5a882310539611dc9beff169d3", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(new global::Io.Cucumber.Messages.Types.PickleStepArgument(new global::Io.Cucumber.Messages.Types.PickleDocString(null, "{\"functionalRequirements\": [\"FR-MCP-001\", \"FR-MCP-002\"], \"technicalRequirements\":" + - " []}"), null), new System.Collections.Generic.List(new string[] { - "0045602e4aa44756b5669bbb231eaa27"}), "deda7e470380d4539780cc8283c19376", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a Copilot response containing:"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "b84b99d99b4a9c54a6b6039f3f6f462b"}), "82eea69e7a054457b41dd53cb4103ba6", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I extract requirement IDs from the JSON block response"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "04160336ef83e65082a0f66cad330047"}), "2e515f61c118b952add705a3a1bcf74c", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the extracted IDs should contain \"FR-MCP-001\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "eac4835406d26854b41c0b1792bbe948"}), "79b3a0714c318b51a685118e66d43caa", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the extracted IDs should contain \"FR-MCP-002\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "978645931d868b5285af8c1529c622de"}), "9e65f91d1f2f36549ee60aa8ed0ca099", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the extracted IDs should be distinct")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "e89172b7d4d12c5abb5ddadc34e77f4e"}))}); - } - - private static global::Reqnroll.Formatters.RuntimeSupport.FeatureLevelCucumberMessages InitializeCucumberMessages() - { - return new global::Reqnroll.Formatters.RuntimeSupport.FeatureLevelCucumberMessages(new global::System.Func(AI_AssistedRequirementsAnalysisFeature.SourceFunc), new global::System.Func(AI_AssistedRequirementsAnalysisFeature.GherkinDocumentFunc), new global::System.Func>(AI_AssistedRequirementsAnalysisFeature.PicklesFunc)); - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.InitializeAsync() - { - try - { - await this.TestInitializeAsync(); - } - catch (System.Exception e1) - { - try - { - ((global::Xunit.IAsyncLifetime)(this)).DisposeAsync(); - } - catch (System.Exception e2) - { - throw new System.AggregateException("Test initialization failed", e1, e2); - } - throw; - } - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.DisposeAsync() - { - await this.TestTearDownAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Requirements endpoint returns 422 when Copilot CLI is unavailable")] - [global::Xunit.TraitAttribute("FeatureTitle", "AI-Assisted Requirements Analysis")] - [global::Xunit.TraitAttribute("Description", "Requirements endpoint returns 422 when Copilot CLI is unavailable")] - public async global::System.Threading.Tasks.Task RequirementsEndpointReturns422WhenCopilotCLIIsUnavailable() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "0"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Requirements endpoint returns 422 when Copilot CLI is unavailable", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 11 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 12 - await testRunner.GivenAsync("a TODO item exists with title \"AnalysisItem\" and id stored as \"analysisId\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 13 - await testRunner.WhenAsync("I POST to \"/mcp/todo/{analysisId}/requirements\" with empty body", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 14 - await testRunner.ThenAsync("the response status code should be 422", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="RequirementsService extracts JSON-block format requirement IDs")] - [global::Xunit.TraitAttribute("FeatureTitle", "AI-Assisted Requirements Analysis")] - [global::Xunit.TraitAttribute("Description", "RequirementsService extracts JSON-block format requirement IDs")] - public async global::System.Threading.Tasks.Task RequirementsServiceExtractsJSON_BlockFormatRequirementIDs() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "1"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("RequirementsService extracts JSON-block format requirement IDs", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 16 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 17 - await testRunner.GivenAsync("a Copilot response containing:", "{\"functionalRequirements\": [\"FR-MCP-001\"], \"technicalRequirements\": [\"TR-MCP-ARCH" + - "-001\"]}", ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 21 - await testRunner.WhenAsync("I extract requirement IDs from the JSON block response", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 22 - await testRunner.ThenAsync("the extracted IDs should contain \"FR-MCP-001\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 23 - await testRunner.AndAsync("the extracted IDs should contain \"TR-MCP-ARCH-001\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 24 - await testRunner.AndAsync("the extracted IDs should be distinct", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="RequirementsService falls back to regex extraction when no JSON block present")] - [global::Xunit.TraitAttribute("FeatureTitle", "AI-Assisted Requirements Analysis")] - [global::Xunit.TraitAttribute("Description", "RequirementsService falls back to regex extraction when no JSON block present")] - public async global::System.Threading.Tasks.Task RequirementsServiceFallsBackToRegexExtractionWhenNoJSONBlockPresent() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "2"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("RequirementsService falls back to regex extraction when no JSON block present", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 26 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 27 - await testRunner.GivenAsync("a Copilot response containing:", "Based on the analysis, the following requirements apply:\r\nFR-MCP-002 covers the T" + - "ODO API.\r\nTR-MCP-001 covers persistence.", ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 33 - await testRunner.WhenAsync("I extract requirement IDs using regex fallback", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 34 - await testRunner.ThenAsync("the extracted IDs should contain \"FR-MCP-002\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 35 - await testRunner.AndAsync("the extracted IDs should contain \"TR-MCP-001\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 36 - await testRunner.AndAsync("the extracted IDs should be distinct", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="RequirementsService returns empty list for response with no IDs")] - [global::Xunit.TraitAttribute("FeatureTitle", "AI-Assisted Requirements Analysis")] - [global::Xunit.TraitAttribute("Description", "RequirementsService returns empty list for response with no IDs")] - public async global::System.Threading.Tasks.Task RequirementsServiceReturnsEmptyListForResponseWithNoIDs() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "3"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("RequirementsService returns empty list for response with no IDs", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 38 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 39 - await testRunner.GivenAsync("a Copilot response containing:", "No matching requirements were found for this item.", ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 43 - await testRunner.WhenAsync("I extract requirement IDs using regex fallback", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 44 - await testRunner.ThenAsync("the extracted IDs should be empty", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="RequirementsService matches FR pattern FR-[A-Z]+-\\d{3}")] - [global::Xunit.TraitAttribute("FeatureTitle", "AI-Assisted Requirements Analysis")] - [global::Xunit.TraitAttribute("Description", "RequirementsService matches FR pattern FR-[A-Z]+-\\d{3}")] - public async global::System.Threading.Tasks.Task RequirementsServiceMatchesFRPatternFR_A_Z_D3() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "4"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("RequirementsService matches FR pattern FR-[A-Z]+-\\d{3}", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 46 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 47 - await testRunner.GivenAsync("a Copilot response containing:", "FR-SUPPORT-010 is relevant. FR-MCP-009 also applies.", ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 51 - await testRunner.WhenAsync("I extract requirement IDs using regex fallback", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 52 - await testRunner.ThenAsync("the extracted IDs should contain \"FR-SUPPORT-010\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 53 - await testRunner.AndAsync("the extracted IDs should contain \"FR-MCP-009\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="RequirementsService matches TR pattern TR-[A-Z]+-\\d{3}")] - [global::Xunit.TraitAttribute("FeatureTitle", "AI-Assisted Requirements Analysis")] - [global::Xunit.TraitAttribute("Description", "RequirementsService matches TR pattern TR-[A-Z]+-\\d{3}")] - public async global::System.Threading.Tasks.Task RequirementsServiceMatchesTRPatternTR_A_Z_D3() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "5"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("RequirementsService matches TR pattern TR-[A-Z]+-\\d{3}", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 55 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 56 - await testRunner.GivenAsync("a Copilot response containing:", "TR-GH-013 and TR-MCP-002 are the technical requirements.", ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 60 - await testRunner.WhenAsync("I extract requirement IDs using regex fallback", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 61 - await testRunner.ThenAsync("the extracted IDs should contain \"TR-GH-013\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 62 - await testRunner.AndAsync("the extracted IDs should contain \"TR-MCP-002\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Discovered IDs are merged without duplicates")] - [global::Xunit.TraitAttribute("FeatureTitle", "AI-Assisted Requirements Analysis")] - [global::Xunit.TraitAttribute("Description", "Discovered IDs are merged without duplicates")] - public async global::System.Threading.Tasks.Task DiscoveredIDsAreMergedWithoutDuplicates() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "6"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Discovered IDs are merged without duplicates", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 64 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 65 - await testRunner.GivenAsync("a Copilot response containing:", "{\"functionalRequirements\": [\"FR-MCP-001\", \"FR-MCP-002\"], \"technicalRequirements\":" + - " []}", ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 69 - await testRunner.WhenAsync("I extract requirement IDs from the JSON block response", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 70 - await testRunner.ThenAsync("the extracted IDs should contain \"FR-MCP-001\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 71 - await testRunner.AndAsync("the extracted IDs should contain \"FR-MCP-002\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 72 - await testRunner.AndAsync("the extracted IDs should be distinct", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Reqnroll", "3.0.0.0")] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - public class FixtureData : object, global::Xunit.IAsyncLifetime - { - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.InitializeAsync() - { - await AI_AssistedRequirementsAnalysisFeature.FeatureSetupAsync(); - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.DisposeAsync() - { - await AI_AssistedRequirementsAnalysisFeature.FeatureTearDownAsync(); - } - } - } -} -#pragma warning restore -#endregion diff --git a/tests/McpServer.SpecFlow.Tests/Features/SessionLog/MarkdownSessionLogIngestion.feature b/tests/McpServer.SpecFlow.Tests/Features/SessionLog/MarkdownSessionLogIngestion.feature deleted file mode 100644 index aef63ead..00000000 --- a/tests/McpServer.SpecFlow.Tests/Features/SessionLog/MarkdownSessionLogIngestion.feature +++ /dev/null @@ -1,58 +0,0 @@ -Feature: Markdown Session Log Ingestion - As an AI agent - I want legacy Markdown session log files to be parsed into the unified schema - So that pre-existing agent records are retroactively indexed - - # FR-MCP-024 / TR-MCP-INGEST-002 / TEST-MCP-015 - - Scenario: TryParse recognizes a Markdown file with a standard session log header - Given a Markdown file with header "# Session Log – Specflow Test Session" - And the file contains section "## Session Overview" with content "**Status:** completed" - And the file contains section "## Model" with content "**Model:** claude-3-opus" - When I call MarkdownSessionLogParser.TryParse on the file - Then the result should not be null - And the result title should be "Specflow Test Session" - And the result should contain at least one entry - - Scenario: TryParse recognizes a Markdown file with the Copilot variant header - Given a Markdown file with header "# Copilot Session Log – Another Test" - And the file contains section "## Session Overview" with content "**Status:** in-progress" - When I call MarkdownSessionLogParser.TryParse on the file - Then the result should not be null - And the result title should be "Another Test" - - Scenario: TryParse returns null for files without the session log header - Given a Markdown file with header "# Regular Markdown File" - And the file contains section "## Some Section" with content "Some content" - When I call MarkdownSessionLogParser.TryParse on the file - Then the result should be null - - Scenario: TryParse extracts individual Request subsections as separate entries - Given a Markdown file with header "# Session Log – Multi-Request Session" - And the file contains a "### Request" subsection with prompt "First request prompt" - And the file contains a "### Request" subsection with prompt "Second request prompt" - When I call MarkdownSessionLogParser.TryParse on the file - Then the result should not be null - And the result should contain at least 2 entries - - Scenario: NormalizeToStructuredText produces non-empty plain text representation - Given a Markdown file with header "# Session Log – Normalize Test" - And the file contains section "## Changes Made" with content "Added feature X" - When I call MarkdownSessionLogParser.TryParse on the file - And I call NormalizeToStructuredText on the result - Then the normalized text should not be empty - And the normalized text should contain "Normalize Test" - - Scenario: TryParse extracts model field from Model section - Given a Markdown file with header "# Session Log – Model Extraction" - And the file contains section "## Model" with content "**Model:** gpt-4o" - When I call MarkdownSessionLogParser.TryParse on the file - Then the result should not be null - And the result model should be "gpt-4o" - - Scenario: TryParse extracts status from Session Overview section - Given a Markdown file with header "# Session Log – Status Extraction" - And the file contains section "## Session Overview" with content "**Status:** failed" - When I call MarkdownSessionLogParser.TryParse on the file - Then the result should not be null - And the result status should be "failed" diff --git a/tests/McpServer.SpecFlow.Tests/Features/SessionLog/MarkdownSessionLogIngestion.feature.cs b/tests/McpServer.SpecFlow.Tests/Features/SessionLog/MarkdownSessionLogIngestion.feature.cs deleted file mode 100644 index 13a55bcc..00000000 --- a/tests/McpServer.SpecFlow.Tests/Features/SessionLog/MarkdownSessionLogIngestion.feature.cs +++ /dev/null @@ -1,647 +0,0 @@ -// ------------------------------------------------------------------------------ -// -// This code was generated by Reqnroll (https://www.reqnroll.net/). -// Reqnroll Version:3.0.0.0 -// Reqnroll Generator Version:3.0.0.0 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -// ------------------------------------------------------------------------------ -#region Designer generated code -#pragma warning disable -using Reqnroll; -namespace McpServer.SpecFlow.Tests.Features.SessionLog -{ - - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Reqnroll", "3.0.0.0")] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - public partial class MarkdownSessionLogIngestionFeature : object, global::Xunit.IClassFixture, global::Xunit.IAsyncLifetime - { - - private global::Reqnroll.ITestRunner testRunner; - - private static string[] featureTags = ((string[])(null)); - - private static global::Reqnroll.FeatureInfo featureInfo = new global::Reqnroll.FeatureInfo(new global::System.Globalization.CultureInfo("en-US"), "Features/SessionLog", "Markdown Session Log Ingestion", " As an AI agent\r\n I want legacy Markdown session log files to be parsed into th" + - "e unified schema\r\n So that pre-existing agent records are retroactively indexed" + - "", global::Reqnroll.ProgrammingLanguage.CSharp, featureTags, InitializeCucumberMessages()); - - private global::Xunit.Abstractions.ITestOutputHelper _testOutputHelper; - -#line 1 "MarkdownSessionLogIngestion.feature" -#line hidden - - public MarkdownSessionLogIngestionFeature(MarkdownSessionLogIngestionFeature.FixtureData fixtureData, global::Xunit.Abstractions.ITestOutputHelper testOutputHelper) - { - this._testOutputHelper = testOutputHelper; - } - - public static async global::System.Threading.Tasks.Task FeatureSetupAsync() - { - } - - public static async global::System.Threading.Tasks.Task FeatureTearDownAsync() - { - await global::Reqnroll.TestRunnerManager.ReleaseFeatureAsync(featureInfo); - } - - public async global::System.Threading.Tasks.Task TestInitializeAsync() - { - testRunner = global::Reqnroll.TestRunnerManager.GetTestRunnerForAssembly(featureHint: featureInfo); - try - { - if (((testRunner.FeatureContext != null) - && (testRunner.FeatureContext.FeatureInfo.Equals(featureInfo) == false))) - { - await testRunner.OnFeatureEndAsync(); - } - } - finally - { - if (((testRunner.FeatureContext != null) - && testRunner.FeatureContext.BeforeFeatureHookFailed)) - { - throw new global::Reqnroll.ReqnrollException("Scenario skipped because of previous before feature hook error"); - } - if ((testRunner.FeatureContext == null)) - { - await testRunner.OnFeatureStartAsync(featureInfo); - } - } - } - - public async global::System.Threading.Tasks.Task TestTearDownAsync() - { - if ((testRunner == null)) - { - return; - } - try - { - await testRunner.OnScenarioEndAsync(); - } - finally - { - global::Reqnroll.TestRunnerManager.ReleaseTestRunner(testRunner); - testRunner = null; - } - } - - public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, global::Reqnroll.RuleInfo ruleInfo) - { - testRunner.OnScenarioInitialize(scenarioInfo, ruleInfo); - testRunner.ScenarioContext.ScenarioContainer.RegisterInstanceAs(_testOutputHelper); - } - - public async global::System.Threading.Tasks.Task ScenarioStartAsync() - { - await testRunner.OnScenarioStartAsync(); - } - - public async global::System.Threading.Tasks.Task ScenarioCleanupAsync() - { - await testRunner.CollectScenarioErrorsAsync(); - } - - private static global::Io.Cucumber.Messages.Types.Source SourceFunc() - { - return new global::Io.Cucumber.Messages.Types.Source("Features/SessionLog/MarkdownSessionLogIngestion.feature", "Feature: Markdown Session Log Ingestion\r\n As an AI agent\r\n I want legacy Markdo" + - "wn session log files to be parsed into the unified schema\r\n So that pre-existin" + - "g agent records are retroactively indexed\r\n\r\n # FR-MCP-024 / TR-MCP-INGEST-002 " + - "/ TEST-MCP-015\r\n\r\n Scenario: TryParse recognizes a Markdown file with a standar" + - "d session log header\r\n Given a Markdown file with header \"# Session Log – Spe" + - "cflow Test Session\"\r\n And the file contains section \"## Session Overview\" wit" + - "h content \"**Status:** completed\"\r\n And the file contains section \"## Model\" " + - "with content \"**Model:** claude-3-opus\"\r\n When I call MarkdownSessionLogParse" + - "r.TryParse on the file\r\n Then the result should not be null\r\n And the resu" + - "lt title should be \"Specflow Test Session\"\r\n And the result should contain at" + - " least one entry\r\n\r\n Scenario: TryParse recognizes a Markdown file with the Cop" + - "ilot variant header\r\n Given a Markdown file with header \"# Copilot Session Lo" + - "g – Another Test\"\r\n And the file contains section \"## Session Overview\" with " + - "content \"**Status:** in-progress\"\r\n When I call MarkdownSessionLogParser.TryP" + - "arse on the file\r\n Then the result should not be null\r\n And the result tit" + - "le should be \"Another Test\"\r\n\r\n Scenario: TryParse returns null for files witho" + - "ut the session log header\r\n Given a Markdown file with header \"# Regular Mark" + - "down File\"\r\n And the file contains section \"## Some Section\" with content \"So" + - "me content\"\r\n When I call MarkdownSessionLogParser.TryParse on the file\r\n " + - "Then the result should be null\r\n\r\n Scenario: TryParse extracts individual Reque" + - "st subsections as separate entries\r\n Given a Markdown file with header \"# Ses" + - "sion Log – Multi-Request Session\"\r\n And the file contains a \"### Request\" sub" + - "section with prompt \"First request prompt\"\r\n And the file contains a \"### Req" + - "uest\" subsection with prompt \"Second request prompt\"\r\n When I call MarkdownSe" + - "ssionLogParser.TryParse on the file\r\n Then the result should not be null\r\n " + - " And the result should contain at least 2 entries\r\n\r\n Scenario: NormalizeToStru" + - "cturedText produces non-empty plain text representation\r\n Given a Markdown fi" + - "le with header \"# Session Log – Normalize Test\"\r\n And the file contains secti" + - "on \"## Changes Made\" with content \"Added feature X\"\r\n When I call MarkdownSes" + - "sionLogParser.TryParse on the file\r\n And I call NormalizeToStructuredText on " + - "the result\r\n Then the normalized text should not be empty\r\n And the normal" + - "ized text should contain \"Normalize Test\"\r\n\r\n Scenario: TryParse extracts model" + - " field from Model section\r\n Given a Markdown file with header \"# Session Log " + - "– Model Extraction\"\r\n And the file contains section \"## Model\" with content \"" + - "**Model:** gpt-4o\"\r\n When I call MarkdownSessionLogParser.TryParse on the fil" + - "e\r\n Then the result should not be null\r\n And the result model should be \"g" + - "pt-4o\"\r\n\r\n Scenario: TryParse extracts status from Session Overview section\r\n " + - " Given a Markdown file with header \"# Session Log – Status Extraction\"\r\n And" + - " the file contains section \"## Session Overview\" with content \"**Status:** faile" + - "d\"\r\n When I call MarkdownSessionLogParser.TryParse on the file\r\n Then the " + - "result should not be null\r\n And the result status should be \"failed\"\r\n", global::Io.Cucumber.Messages.Types.SourceMediaType.TEXT_X_CUCUMBER_GHERKIN_PLAIN); - } - - private static global::Io.Cucumber.Messages.Types.GherkinDocument GherkinDocumentFunc() - { - return new global::Io.Cucumber.Messages.Types.GherkinDocument("Features/SessionLog/MarkdownSessionLogIngestion.feature", new global::Io.Cucumber.Messages.Types.Feature(new global::Io.Cucumber.Messages.Types.Location(1, new System.Nullable(1)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "en-US", "Feature", "Markdown Session Log Ingestion", " As an AI agent\r\n I want legacy Markdown session log files to be parsed into th" + - "e unified schema\r\n So that pre-existing agent records are retroactively indexed" + - "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.FeatureChild[] { - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(8, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "TryParse recognizes a Markdown file with a standard session log header", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(9, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "a Markdown file with header \"# Session Log – Specflow Test Session\"", null, null, "825fe5462ec90c5084077f2ac91bbfa6"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(10, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the file contains section \"## Session Overview\" with content \"**Status:** complet" + - "ed\"", null, null, "f6dff5265b7b5d569345d450d63c0694"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(11, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the file contains section \"## Model\" with content \"**Model:** claude-3-opus\"", null, null, "ff8753627490625f99cdbef1d7fd2cf7"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(12, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I call MarkdownSessionLogParser.TryParse on the file", null, null, "36b4474884b1f153b3426dbbb2fd862a"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(13, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the result should not be null", null, null, "6f8dde669c9b8f5581d20dfd943bb3f8"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(14, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the result title should be \"Specflow Test Session\"", null, null, "eb0ab70bea12ec54bfa0d546514a3370"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(15, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the result should contain at least one entry", null, null, "b527e13086cee556a30425a47b0ad2a4")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "33364b853335f15fa373e603f83b7303")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(17, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "TryParse recognizes a Markdown file with the Copilot variant header", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(18, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "a Markdown file with header \"# Copilot Session Log – Another Test\"", null, null, "0af478c55cf1075b8ae6ba23f8002dff"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(19, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the file contains section \"## Session Overview\" with content \"**Status:** in-prog" + - "ress\"", null, null, "b5de8778a2ad0350bf637b28063a9cff"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(20, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I call MarkdownSessionLogParser.TryParse on the file", null, null, "e8dc548a9159a45fae21ca92b0414739"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(21, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the result should not be null", null, null, "b1c1d6820c6752549ad5d8caf74a83fe"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(22, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the result title should be \"Another Test\"", null, null, "8608e94e344d095eaf57fb5a1dff8b6e")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "ecf3a889ca817f5096dab1811dd1dd70")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(24, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "TryParse returns null for files without the session log header", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(25, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "a Markdown file with header \"# Regular Markdown File\"", null, null, "3efecc1c99596256ab6801665de5f339"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(26, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the file contains section \"## Some Section\" with content \"Some content\"", null, null, "0f6aaccdb2ffdb5596469599bdb6a8c2"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(27, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I call MarkdownSessionLogParser.TryParse on the file", null, null, "90bfee58fc7912589b3553ae123f976e"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(28, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the result should be null", null, null, "cf4da64a9dba185a85c1986979ba691d")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "e04c5ed16ea31d59b65c9d7ec4e222f6")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(30, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "TryParse extracts individual Request subsections as separate entries", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(31, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "a Markdown file with header \"# Session Log – Multi-Request Session\"", null, null, "0d0684aa8cd4ca558b7fb7693e80424a"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(32, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the file contains a \"### Request\" subsection with prompt \"First request prompt\"", null, null, "68c5ff68644d9152b6bd78941a4917bc"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(33, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the file contains a \"### Request\" subsection with prompt \"Second request prompt\"", null, null, "f5c90775e96a015db7a613dd4c29be49"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(34, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I call MarkdownSessionLogParser.TryParse on the file", null, null, "2ec3a95de3b03752a679a0137f020bcf"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(35, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the result should not be null", null, null, "444690b5a67f505aa3376871de02713d"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(36, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the result should contain at least 2 entries", null, null, "7e423349c6c8305bbd85b18b181d4533")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "45a618bd03978e5db35eb9396d27a508")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(38, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "NormalizeToStructuredText produces non-empty plain text representation", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(39, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "a Markdown file with header \"# Session Log – Normalize Test\"", null, null, "6d5767c5c170c85da2bf8f36093aed52"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(40, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the file contains section \"## Changes Made\" with content \"Added feature X\"", null, null, "d77101cb2aaace5784ed85c82b512004"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(41, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I call MarkdownSessionLogParser.TryParse on the file", null, null, "03ac9d50ff04aa5a830e12cc551bc103"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(42, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I call NormalizeToStructuredText on the result", null, null, "5151395dceb7d35b877b70b26ed3e8f1"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(43, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the normalized text should not be empty", null, null, "2de4a75f14d1dd579d5b02f39a527615"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(44, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the normalized text should contain \"Normalize Test\"", null, null, "eecfacdb3acb7355b268b1ee415a5a0f")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "b639c88187829d58805ab757897008ef")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(46, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "TryParse extracts model field from Model section", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(47, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "a Markdown file with header \"# Session Log – Model Extraction\"", null, null, "81a81796b383595d92dfbdf8d37a4936"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(48, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the file contains section \"## Model\" with content \"**Model:** gpt-4o\"", null, null, "b59ef6a283b4fd59ab08479d7f7ad0fe"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(49, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I call MarkdownSessionLogParser.TryParse on the file", null, null, "d87e11df81bc535c83df25a4b68ead89"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(50, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the result should not be null", null, null, "f036778a09d2ee59a96c59fc597e8285"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(51, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the result model should be \"gpt-4o\"", null, null, "d1a68e3bafd7a95a93adab09655fc4c1")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "ccd5801fbccbb456aa238ea3fbca51c4")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(53, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "TryParse extracts status from Session Overview section", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(54, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "a Markdown file with header \"# Session Log – Status Extraction\"", null, null, "f6229c1b88582358af49b3073448eb56"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(55, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the file contains section \"## Session Overview\" with content \"**Status:** failed\"" + - "", null, null, "b606657bc21e455ca7a5eed80dc06e74"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(56, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I call MarkdownSessionLogParser.TryParse on the file", null, null, "1b8426391c84c65ea5bd48bc35e60924"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(57, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the result should not be null", null, null, "8f7b35dae9e6e4529905848d94b4d179"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(58, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the result status should be \"failed\"", null, null, "6c2ffc6286e7735dae45afd14f06d662")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "ab94cc448b3eb955993db0d163863477"))})), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Comment[] { - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(6, new System.Nullable(1)), " # FR-MCP-024 / TR-MCP-INGEST-002 / TEST-MCP-015")})); - } - - private static global::System.Collections.Generic.IEnumerable PicklesFunc() - { - return new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Pickle[] { - new global::Io.Cucumber.Messages.Types.Pickle("03dd1f44043b1a5c80fd6f189a2b8a9e", "Features/SessionLog/MarkdownSessionLogIngestion.feature", "TryParse recognizes a Markdown file with a standard session log header", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "825fe5462ec90c5084077f2ac91bbfa6"}), "a661d2055bac3f56bc299269d80b8ba1", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a Markdown file with header \"# Session Log – Specflow Test Session\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "f6dff5265b7b5d569345d450d63c0694"}), "17518fe1ce99485b8ac4b2b9c156bbbd", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the file contains section \"## Session Overview\" with content \"**Status:** complet" + - "ed\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "ff8753627490625f99cdbef1d7fd2cf7"}), "cfd2c68fc084a057a7cdf986ea863196", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the file contains section \"## Model\" with content \"**Model:** claude-3-opus\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "36b4474884b1f153b3426dbbb2fd862a"}), "21bab83a9597fe5398c0fbe28edf5f7c", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I call MarkdownSessionLogParser.TryParse on the file"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "6f8dde669c9b8f5581d20dfd943bb3f8"}), "ce4db0976c17a7549a3d6206481c05a5", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the result should not be null"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "eb0ab70bea12ec54bfa0d546514a3370"}), "69ed3fa133991c59881d1d33170a8bc8", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the result title should be \"Specflow Test Session\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "b527e13086cee556a30425a47b0ad2a4"}), "f3872f3fcd5bdf51aea25ffb250a6208", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the result should contain at least one entry")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "33364b853335f15fa373e603f83b7303"})), - new global::Io.Cucumber.Messages.Types.Pickle("38c9118b2a8a5d56a32c00f31ead0d72", "Features/SessionLog/MarkdownSessionLogIngestion.feature", "TryParse recognizes a Markdown file with the Copilot variant header", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "0af478c55cf1075b8ae6ba23f8002dff"}), "64e19ec4be469c5b860dc47e321f1810", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a Markdown file with header \"# Copilot Session Log – Another Test\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "b5de8778a2ad0350bf637b28063a9cff"}), "3d768f2d8767a55d98b5089fbcbb0bda", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the file contains section \"## Session Overview\" with content \"**Status:** in-prog" + - "ress\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "e8dc548a9159a45fae21ca92b0414739"}), "6bb23d659159a15dbd00a798ed36984a", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I call MarkdownSessionLogParser.TryParse on the file"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "b1c1d6820c6752549ad5d8caf74a83fe"}), "ad2106275ec4fc56ab48b1275848954f", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the result should not be null"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "8608e94e344d095eaf57fb5a1dff8b6e"}), "eca9085299f4715dbeb11c689d877862", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the result title should be \"Another Test\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "ecf3a889ca817f5096dab1811dd1dd70"})), - new global::Io.Cucumber.Messages.Types.Pickle("f70f982cbf1a6e57a94d721e65befc49", "Features/SessionLog/MarkdownSessionLogIngestion.feature", "TryParse returns null for files without the session log header", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "3efecc1c99596256ab6801665de5f339"}), "3518dcb90230ff50a6a46f87728ab719", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a Markdown file with header \"# Regular Markdown File\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "0f6aaccdb2ffdb5596469599bdb6a8c2"}), "e28280e0b952dd57831f6e0e4057ec7f", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the file contains section \"## Some Section\" with content \"Some content\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "90bfee58fc7912589b3553ae123f976e"}), "2036f2e49b53a25c908c2dd3bd18169f", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I call MarkdownSessionLogParser.TryParse on the file"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "cf4da64a9dba185a85c1986979ba691d"}), "cf3b50c344c3265897f496bd1b09ec60", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the result should be null")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "e04c5ed16ea31d59b65c9d7ec4e222f6"})), - new global::Io.Cucumber.Messages.Types.Pickle("f0275ec2ff64e157acbc8f8d49b694c2", "Features/SessionLog/MarkdownSessionLogIngestion.feature", "TryParse extracts individual Request subsections as separate entries", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "0d0684aa8cd4ca558b7fb7693e80424a"}), "b09d289a1aa97556a3c59aa89480b7bc", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a Markdown file with header \"# Session Log – Multi-Request Session\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "68c5ff68644d9152b6bd78941a4917bc"}), "47dc7246b93d255faef3fbe04cab49c3", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the file contains a \"### Request\" subsection with prompt \"First request prompt\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "f5c90775e96a015db7a613dd4c29be49"}), "56dd364db221a05b898d37820967ee1d", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the file contains a \"### Request\" subsection with prompt \"Second request prompt\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "2ec3a95de3b03752a679a0137f020bcf"}), "d9200994b5cf82589c0bebb4fda3e607", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I call MarkdownSessionLogParser.TryParse on the file"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "444690b5a67f505aa3376871de02713d"}), "6ded5f77e0da6a5381a060fae2393c64", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the result should not be null"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "7e423349c6c8305bbd85b18b181d4533"}), "f5485d59831bfb5a8089425f81a89e98", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the result should contain at least 2 entries")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "45a618bd03978e5db35eb9396d27a508"})), - new global::Io.Cucumber.Messages.Types.Pickle("352d588f1f3b5752a9509a073054b9c1", "Features/SessionLog/MarkdownSessionLogIngestion.feature", "NormalizeToStructuredText produces non-empty plain text representation", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "6d5767c5c170c85da2bf8f36093aed52"}), "c6b9e7c8c1154c52a526e3c6724daa6f", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a Markdown file with header \"# Session Log – Normalize Test\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "d77101cb2aaace5784ed85c82b512004"}), "f6993c8128e12457a0e0f9bfe1e6707b", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the file contains section \"## Changes Made\" with content \"Added feature X\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "03ac9d50ff04aa5a830e12cc551bc103"}), "b48207596a8db758b1fdfc58ee36ce87", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I call MarkdownSessionLogParser.TryParse on the file"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "5151395dceb7d35b877b70b26ed3e8f1"}), "372e7866cde31a5bb8b9801b78ebf2b8", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I call NormalizeToStructuredText on the result"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "2de4a75f14d1dd579d5b02f39a527615"}), "14d5e2b979a933558c71c211129cc0d8", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the normalized text should not be empty"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "eecfacdb3acb7355b268b1ee415a5a0f"}), "e179f637adc9ba5d95bc473b8aa6924c", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the normalized text should contain \"Normalize Test\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "b639c88187829d58805ab757897008ef"})), - new global::Io.Cucumber.Messages.Types.Pickle("866d5b77308bae5d89fb8f4899901ee5", "Features/SessionLog/MarkdownSessionLogIngestion.feature", "TryParse extracts model field from Model section", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "81a81796b383595d92dfbdf8d37a4936"}), "ae7ac2ab3d75865cbfd3365342081149", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a Markdown file with header \"# Session Log – Model Extraction\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "b59ef6a283b4fd59ab08479d7f7ad0fe"}), "0988745051c5fe588e7d4432b39853c1", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the file contains section \"## Model\" with content \"**Model:** gpt-4o\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "d87e11df81bc535c83df25a4b68ead89"}), "5645d96241ff3058a584120c4600e4bf", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I call MarkdownSessionLogParser.TryParse on the file"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "f036778a09d2ee59a96c59fc597e8285"}), "e7ae067baa9fef5392d72d87dc903096", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the result should not be null"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "d1a68e3bafd7a95a93adab09655fc4c1"}), "3dfc5354e2c3cf5289ba938e2c0b482b", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the result model should be \"gpt-4o\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "ccd5801fbccbb456aa238ea3fbca51c4"})), - new global::Io.Cucumber.Messages.Types.Pickle("923d9a159f9fd055bcf9a790438971bb", "Features/SessionLog/MarkdownSessionLogIngestion.feature", "TryParse extracts status from Session Overview section", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "f6229c1b88582358af49b3073448eb56"}), "5e4331da5788ea57bcc0519c8b0e5cbb", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a Markdown file with header \"# Session Log – Status Extraction\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "b606657bc21e455ca7a5eed80dc06e74"}), "f3a7228750d63e5ea43c29bd2db1b9b4", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the file contains section \"## Session Overview\" with content \"**Status:** failed\"" + - ""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "1b8426391c84c65ea5bd48bc35e60924"}), "77ca70ac1a400456a00071f664df8349", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I call MarkdownSessionLogParser.TryParse on the file"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "8f7b35dae9e6e4529905848d94b4d179"}), "3cef68a2e430145d92fea57d85524673", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the result should not be null"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "6c2ffc6286e7735dae45afd14f06d662"}), "6231e32bf96bbf5fb233db5a63b3cfd9", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the result status should be \"failed\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "ab94cc448b3eb955993db0d163863477"}))}); - } - - private static global::Reqnroll.Formatters.RuntimeSupport.FeatureLevelCucumberMessages InitializeCucumberMessages() - { - return new global::Reqnroll.Formatters.RuntimeSupport.FeatureLevelCucumberMessages(new global::System.Func(MarkdownSessionLogIngestionFeature.SourceFunc), new global::System.Func(MarkdownSessionLogIngestionFeature.GherkinDocumentFunc), new global::System.Func>(MarkdownSessionLogIngestionFeature.PicklesFunc)); - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.InitializeAsync() - { - try - { - await this.TestInitializeAsync(); - } - catch (System.Exception e1) - { - try - { - ((global::Xunit.IAsyncLifetime)(this)).DisposeAsync(); - } - catch (System.Exception e2) - { - throw new System.AggregateException("Test initialization failed", e1, e2); - } - throw; - } - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.DisposeAsync() - { - await this.TestTearDownAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="TryParse recognizes a Markdown file with a standard session log header")] - [global::Xunit.TraitAttribute("FeatureTitle", "Markdown Session Log Ingestion")] - [global::Xunit.TraitAttribute("Description", "TryParse recognizes a Markdown file with a standard session log header")] - public async global::System.Threading.Tasks.Task TryParseRecognizesAMarkdownFileWithAStandardSessionLogHeader() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "0"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("TryParse recognizes a Markdown file with a standard session log header", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 8 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 9 - await testRunner.GivenAsync("a Markdown file with header \"# Session Log – Specflow Test Session\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 10 - await testRunner.AndAsync("the file contains section \"## Session Overview\" with content \"**Status:** complet" + - "ed\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 11 - await testRunner.AndAsync("the file contains section \"## Model\" with content \"**Model:** claude-3-opus\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 12 - await testRunner.WhenAsync("I call MarkdownSessionLogParser.TryParse on the file", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 13 - await testRunner.ThenAsync("the result should not be null", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 14 - await testRunner.AndAsync("the result title should be \"Specflow Test Session\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 15 - await testRunner.AndAsync("the result should contain at least one entry", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="TryParse recognizes a Markdown file with the Copilot variant header")] - [global::Xunit.TraitAttribute("FeatureTitle", "Markdown Session Log Ingestion")] - [global::Xunit.TraitAttribute("Description", "TryParse recognizes a Markdown file with the Copilot variant header")] - public async global::System.Threading.Tasks.Task TryParseRecognizesAMarkdownFileWithTheCopilotVariantHeader() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "1"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("TryParse recognizes a Markdown file with the Copilot variant header", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 17 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 18 - await testRunner.GivenAsync("a Markdown file with header \"# Copilot Session Log – Another Test\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 19 - await testRunner.AndAsync("the file contains section \"## Session Overview\" with content \"**Status:** in-prog" + - "ress\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 20 - await testRunner.WhenAsync("I call MarkdownSessionLogParser.TryParse on the file", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 21 - await testRunner.ThenAsync("the result should not be null", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 22 - await testRunner.AndAsync("the result title should be \"Another Test\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="TryParse returns null for files without the session log header")] - [global::Xunit.TraitAttribute("FeatureTitle", "Markdown Session Log Ingestion")] - [global::Xunit.TraitAttribute("Description", "TryParse returns null for files without the session log header")] - public async global::System.Threading.Tasks.Task TryParseReturnsNullForFilesWithoutTheSessionLogHeader() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "2"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("TryParse returns null for files without the session log header", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 24 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 25 - await testRunner.GivenAsync("a Markdown file with header \"# Regular Markdown File\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 26 - await testRunner.AndAsync("the file contains section \"## Some Section\" with content \"Some content\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 27 - await testRunner.WhenAsync("I call MarkdownSessionLogParser.TryParse on the file", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 28 - await testRunner.ThenAsync("the result should be null", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="TryParse extracts individual Request subsections as separate entries")] - [global::Xunit.TraitAttribute("FeatureTitle", "Markdown Session Log Ingestion")] - [global::Xunit.TraitAttribute("Description", "TryParse extracts individual Request subsections as separate entries")] - public async global::System.Threading.Tasks.Task TryParseExtractsIndividualRequestSubsectionsAsSeparateEntries() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "3"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("TryParse extracts individual Request subsections as separate entries", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 30 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 31 - await testRunner.GivenAsync("a Markdown file with header \"# Session Log – Multi-Request Session\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 32 - await testRunner.AndAsync("the file contains a \"### Request\" subsection with prompt \"First request prompt\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 33 - await testRunner.AndAsync("the file contains a \"### Request\" subsection with prompt \"Second request prompt\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 34 - await testRunner.WhenAsync("I call MarkdownSessionLogParser.TryParse on the file", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 35 - await testRunner.ThenAsync("the result should not be null", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 36 - await testRunner.AndAsync("the result should contain at least 2 entries", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="NormalizeToStructuredText produces non-empty plain text representation")] - [global::Xunit.TraitAttribute("FeatureTitle", "Markdown Session Log Ingestion")] - [global::Xunit.TraitAttribute("Description", "NormalizeToStructuredText produces non-empty plain text representation")] - public async global::System.Threading.Tasks.Task NormalizeToStructuredTextProducesNon_EmptyPlainTextRepresentation() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "4"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("NormalizeToStructuredText produces non-empty plain text representation", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 38 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 39 - await testRunner.GivenAsync("a Markdown file with header \"# Session Log – Normalize Test\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 40 - await testRunner.AndAsync("the file contains section \"## Changes Made\" with content \"Added feature X\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 41 - await testRunner.WhenAsync("I call MarkdownSessionLogParser.TryParse on the file", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 42 - await testRunner.AndAsync("I call NormalizeToStructuredText on the result", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 43 - await testRunner.ThenAsync("the normalized text should not be empty", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 44 - await testRunner.AndAsync("the normalized text should contain \"Normalize Test\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="TryParse extracts model field from Model section")] - [global::Xunit.TraitAttribute("FeatureTitle", "Markdown Session Log Ingestion")] - [global::Xunit.TraitAttribute("Description", "TryParse extracts model field from Model section")] - public async global::System.Threading.Tasks.Task TryParseExtractsModelFieldFromModelSection() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "5"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("TryParse extracts model field from Model section", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 46 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 47 - await testRunner.GivenAsync("a Markdown file with header \"# Session Log – Model Extraction\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 48 - await testRunner.AndAsync("the file contains section \"## Model\" with content \"**Model:** gpt-4o\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 49 - await testRunner.WhenAsync("I call MarkdownSessionLogParser.TryParse on the file", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 50 - await testRunner.ThenAsync("the result should not be null", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 51 - await testRunner.AndAsync("the result model should be \"gpt-4o\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="TryParse extracts status from Session Overview section")] - [global::Xunit.TraitAttribute("FeatureTitle", "Markdown Session Log Ingestion")] - [global::Xunit.TraitAttribute("Description", "TryParse extracts status from Session Overview section")] - public async global::System.Threading.Tasks.Task TryParseExtractsStatusFromSessionOverviewSection() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "6"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("TryParse extracts status from Session Overview section", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 53 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 54 - await testRunner.GivenAsync("a Markdown file with header \"# Session Log – Status Extraction\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 55 - await testRunner.AndAsync("the file contains section \"## Session Overview\" with content \"**Status:** failed\"" + - "", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 56 - await testRunner.WhenAsync("I call MarkdownSessionLogParser.TryParse on the file", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 57 - await testRunner.ThenAsync("the result should not be null", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 58 - await testRunner.AndAsync("the result status should be \"failed\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Reqnroll", "3.0.0.0")] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - public class FixtureData : object, global::Xunit.IAsyncLifetime - { - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.InitializeAsync() - { - await MarkdownSessionLogIngestionFeature.FeatureSetupAsync(); - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.DisposeAsync() - { - await MarkdownSessionLogIngestionFeature.FeatureTearDownAsync(); - } - } - } -} -#pragma warning restore -#endregion diff --git a/tests/McpServer.SpecFlow.Tests/Features/SessionLog/SessionLogIngestion.feature b/tests/McpServer.SpecFlow.Tests/Features/SessionLog/SessionLogIngestion.feature deleted file mode 100644 index c6968c3e..00000000 --- a/tests/McpServer.SpecFlow.Tests/Features/SessionLog/SessionLogIngestion.feature +++ /dev/null @@ -1,93 +0,0 @@ -Feature: Session Log Ingestion and Query - As an AI agent - I want to submit, query, and append to session logs - So that agent interactions are persisted and searchable - - Background: - Given the MCP server is running - - # FR-MCP-003 / FR-SUPPORT-010 / TEST-MCP-002 - - Scenario: Submit a session log returns 201 - When I POST to "/mcp/sessionlog" with body: - """ - { - "sourceType": "copilot", - "sessionId": "specflow-session-001", - "title": "SpecFlow Test Session", - "status": "completed", - "entries": [] - } - """ - Then the response status code should be 201 - - Scenario: Submit session log with upsert replaces existing log with same sourceType and sessionId - When I POST to "/mcp/sessionlog" with body: - """ - { - "sourceType": "copilot", - "sessionId": "specflow-upsert-session", - "title": "Upsert Session First", - "status": "in-progress", - "entries": [] - } - """ - Then the response status code should be 201 - When I POST to "/mcp/sessionlog" with body: - """ - { - "sourceType": "copilot", - "sessionId": "specflow-upsert-session", - "title": "Upsert Session Updated", - "status": "completed", - "entries": [] - } - """ - Then the response status code should be 201 - - Scenario: Query session logs returns paginated result - When I send a GET request to "/mcp/sessionlog" - Then the response status code should be 200 - And the response body should contain "totalCount" - And the response body should contain "limit" - And the response body should contain "offset" - And the response body should contain "items" - - Scenario: Query session logs with limit and offset returns correct page shape - When I send a GET request to "/mcp/sessionlog?limit=5&offset=0" - Then the response status code should be 200 - And the response body should contain "totalCount" - - Scenario: Append dialog to a session log returns running count or 404 - Given a session log exists with sourceType "copilot" and sessionId "dialog-session-001" - When I POST to "/mcp/sessionlog/copilot/dialog-session-001/req-dialog-001/dialog" with body: - """ - [ - { "role": "user", "content": "What is 2+2?" } - ] - """ - Then the response status code is 200 or 404 - - Scenario: Submit session log with missing required sourceType returns 400 - When I POST to "/mcp/sessionlog" with body: - """ - { - "sessionId": "missing-source", - "title": "Missing SourceType", - "status": "completed", - "entries": [] - } - """ - Then the response status code should be 400 - - Scenario: Submit session log with missing required sessionId returns 400 - When I POST to "/mcp/sessionlog" with body: - """ - { - "sourceType": "copilot", - "title": "Missing Session ID", - "status": "completed", - "entries": [] - } - """ - Then the response status code should be 400 diff --git a/tests/McpServer.SpecFlow.Tests/Features/SessionLog/SessionLogIngestion.feature.cs b/tests/McpServer.SpecFlow.Tests/Features/SessionLog/SessionLogIngestion.feature.cs deleted file mode 100644 index ed67e3ce..00000000 --- a/tests/McpServer.SpecFlow.Tests/Features/SessionLog/SessionLogIngestion.feature.cs +++ /dev/null @@ -1,610 +0,0 @@ -// ------------------------------------------------------------------------------ -// -// This code was generated by Reqnroll (https://www.reqnroll.net/). -// Reqnroll Version:3.0.0.0 -// Reqnroll Generator Version:3.0.0.0 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -// ------------------------------------------------------------------------------ -#region Designer generated code -#pragma warning disable -using Reqnroll; -namespace McpServer.SpecFlow.Tests.Features.SessionLog -{ - - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Reqnroll", "3.0.0.0")] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - public partial class SessionLogIngestionAndQueryFeature : object, global::Xunit.IClassFixture, global::Xunit.IAsyncLifetime - { - - private global::Reqnroll.ITestRunner testRunner; - - private static string[] featureTags = ((string[])(null)); - - private static global::Reqnroll.FeatureInfo featureInfo = new global::Reqnroll.FeatureInfo(new global::System.Globalization.CultureInfo("en-US"), "Features/SessionLog", "Session Log Ingestion and Query", " As an AI agent\r\n I want to submit, query, and append to session logs\r\n So tha" + - "t agent interactions are persisted and searchable", global::Reqnroll.ProgrammingLanguage.CSharp, featureTags, InitializeCucumberMessages()); - - private global::Xunit.Abstractions.ITestOutputHelper _testOutputHelper; - -#line 1 "SessionLogIngestion.feature" -#line hidden - - public SessionLogIngestionAndQueryFeature(SessionLogIngestionAndQueryFeature.FixtureData fixtureData, global::Xunit.Abstractions.ITestOutputHelper testOutputHelper) - { - this._testOutputHelper = testOutputHelper; - } - - public static async global::System.Threading.Tasks.Task FeatureSetupAsync() - { - } - - public static async global::System.Threading.Tasks.Task FeatureTearDownAsync() - { - await global::Reqnroll.TestRunnerManager.ReleaseFeatureAsync(featureInfo); - } - - public async global::System.Threading.Tasks.Task TestInitializeAsync() - { - testRunner = global::Reqnroll.TestRunnerManager.GetTestRunnerForAssembly(featureHint: featureInfo); - try - { - if (((testRunner.FeatureContext != null) - && (testRunner.FeatureContext.FeatureInfo.Equals(featureInfo) == false))) - { - await testRunner.OnFeatureEndAsync(); - } - } - finally - { - if (((testRunner.FeatureContext != null) - && testRunner.FeatureContext.BeforeFeatureHookFailed)) - { - throw new global::Reqnroll.ReqnrollException("Scenario skipped because of previous before feature hook error"); - } - if ((testRunner.FeatureContext == null)) - { - await testRunner.OnFeatureStartAsync(featureInfo); - } - } - } - - public async global::System.Threading.Tasks.Task TestTearDownAsync() - { - if ((testRunner == null)) - { - return; - } - try - { - await testRunner.OnScenarioEndAsync(); - } - finally - { - global::Reqnroll.TestRunnerManager.ReleaseTestRunner(testRunner); - testRunner = null; - } - } - - public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, global::Reqnroll.RuleInfo ruleInfo) - { - testRunner.OnScenarioInitialize(scenarioInfo, ruleInfo); - testRunner.ScenarioContext.ScenarioContainer.RegisterInstanceAs(_testOutputHelper); - } - - public async global::System.Threading.Tasks.Task ScenarioStartAsync() - { - await testRunner.OnScenarioStartAsync(); - } - - public async global::System.Threading.Tasks.Task ScenarioCleanupAsync() - { - await testRunner.CollectScenarioErrorsAsync(); - } - - public virtual async global::System.Threading.Tasks.Task FeatureBackgroundAsync() - { -#line 6 - #line hidden -#line 7 - await testRunner.GivenAsync("the MCP server is running", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden - } - - private static global::Io.Cucumber.Messages.Types.Source SourceFunc() - { - return new global::Io.Cucumber.Messages.Types.Source("Features/SessionLog/SessionLogIngestion.feature", "Feature: Session Log Ingestion and Query\r\n As an AI agent\r\n I want to submit, q" + - "uery, and append to session logs\r\n So that agent interactions are persisted and" + - " searchable\r\n\r\n Background:\r\n Given the MCP server is running\r\n\r\n # FR-MCP-" + - "003 / FR-SUPPORT-010 / TEST-MCP-002\r\n\r\n Scenario: Submit a session log returns " + - "201\r\n When I POST to \"/mcp/sessionlog\" with body:\r\n \"\"\"\r\n {\r\n " + - " \"sourceType\": \"copilot\",\r\n \"sessionId\": \"specflow-session-001\",\r\n " + - " \"title\": \"SpecFlow Test Session\",\r\n \"status\": \"completed\",\r\n \"en" + - "tries\": []\r\n }\r\n \"\"\"\r\n Then the response status code should be 201\r" + - "\n\r\n Scenario: Submit session log with upsert replaces existing log with same so" + - "urceType and sessionId\r\n When I POST to \"/mcp/sessionlog\" with body:\r\n \"" + - "\"\"\r\n {\r\n \"sourceType\": \"copilot\",\r\n \"sessionId\": \"specflow-up" + - "sert-session\",\r\n \"title\": \"Upsert Session First\",\r\n \"status\": \"in-" + - "progress\",\r\n \"entries\": []\r\n }\r\n \"\"\"\r\n Then the response sta" + - "tus code should be 201\r\n When I POST to \"/mcp/sessionlog\" with body:\r\n \"" + - "\"\"\r\n {\r\n \"sourceType\": \"copilot\",\r\n \"sessionId\": \"specflow-up" + - "sert-session\",\r\n \"title\": \"Upsert Session Updated\",\r\n \"status\": \"c" + - "ompleted\",\r\n \"entries\": []\r\n }\r\n \"\"\"\r\n Then the response sta" + - "tus code should be 201\r\n\r\n Scenario: Query session logs returns paginated resul" + - "t\r\n When I send a GET request to \"/mcp/sessionlog\"\r\n Then the response sta" + - "tus code should be 200\r\n And the response body should contain \"totalCount\"\r\n " + - " And the response body should contain \"limit\"\r\n And the response body shoul" + - "d contain \"offset\"\r\n And the response body should contain \"items\"\r\n\r\n Scenar" + - "io: Query session logs with limit and offset returns correct page shape\r\n Whe" + - "n I send a GET request to \"/mcp/sessionlog?limit=5&offset=0\"\r\n Then the respo" + - "nse status code should be 200\r\n And the response body should contain \"totalCo" + - "unt\"\r\n\r\n Scenario: Append dialog to a session log returns running count or 404\r" + - "\n Given a session log exists with sourceType \"copilot\" and sessionId \"dialog-" + - "session-001\"\r\n When I POST to \"/mcp/sessionlog/copilot/dialog-session-001/req" + - "-dialog-001/dialog\" with body:\r\n \"\"\"\r\n [\r\n { \"role\": \"user\", \"c" + - "ontent\": \"What is 2+2?\" }\r\n ]\r\n \"\"\"\r\n Then the response status code" + - " is 200 or 404\r\n\r\n Scenario: Submit session log with missing required sourceTyp" + - "e returns 400\r\n When I POST to \"/mcp/sessionlog\" with body:\r\n \"\"\"\r\n " + - " {\r\n \"sessionId\": \"missing-source\",\r\n \"title\": \"Missing SourceType" + - "\",\r\n \"status\": \"completed\",\r\n \"entries\": []\r\n }\r\n \"\"\"\r\n " + - " Then the response status code should be 400\r\n\r\n Scenario: Submit session log" + - " with missing required sessionId returns 400\r\n When I POST to \"/mcp/sessionlo" + - "g\" with body:\r\n \"\"\"\r\n {\r\n \"sourceType\": \"copilot\",\r\n \"ti" + - "tle\": \"Missing Session ID\",\r\n \"status\": \"completed\",\r\n \"entries\": " + - "[]\r\n }\r\n \"\"\"\r\n Then the response status code should be 400\r\n", global::Io.Cucumber.Messages.Types.SourceMediaType.TEXT_X_CUCUMBER_GHERKIN_PLAIN); - } - - private static global::Io.Cucumber.Messages.Types.GherkinDocument GherkinDocumentFunc() - { - return new global::Io.Cucumber.Messages.Types.GherkinDocument("Features/SessionLog/SessionLogIngestion.feature", new global::Io.Cucumber.Messages.Types.Feature(new global::Io.Cucumber.Messages.Types.Location(1, new System.Nullable(1)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "en-US", "Feature", "Session Log Ingestion and Query", " As an AI agent\r\n I want to submit, query, and append to session logs\r\n So tha" + - "t agent interactions are persisted and searchable", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.FeatureChild[] { - new global::Io.Cucumber.Messages.Types.FeatureChild(null, new global::Io.Cucumber.Messages.Types.Background(new global::Io.Cucumber.Messages.Types.Location(6, new System.Nullable(3)), "Background", "", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(7, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "the MCP server is running", null, null, "5ccf214fe82bc05ea39a797d3812ad9e")}), "472594c43d11295ab72094df233a34a1"), null), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(11, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Submit a session log returns 201", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(12, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/sessionlog\" with body:", new global::Io.Cucumber.Messages.Types.DocString(new global::Io.Cucumber.Messages.Types.Location(13, new System.Nullable(7)), null, "{\r\n \"sourceType\": \"copilot\",\r\n \"sessionId\": \"specflow-session-001\",\r\n \"title\":" + - " \"SpecFlow Test Session\",\r\n \"status\": \"completed\",\r\n \"entries\": []\r\n}", "\"\"\""), null, "26cb2aa12a47d359a62a7e6f61534521"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(22, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 201", null, null, "cf18719bd82c1d5da9426b1f06912977")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "1db8825b12fb455c85a087f30e044713")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(24, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Submit session log with upsert replaces existing log with same sourceType and ses" + - "sionId", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(25, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/sessionlog\" with body:", new global::Io.Cucumber.Messages.Types.DocString(new global::Io.Cucumber.Messages.Types.Location(26, new System.Nullable(7)), null, "{\r\n \"sourceType\": \"copilot\",\r\n \"sessionId\": \"specflow-upsert-session\",\r\n \"titl" + - "e\": \"Upsert Session First\",\r\n \"status\": \"in-progress\",\r\n \"entries\": []\r\n}", "\"\"\""), null, "7ba5bd9c308f0954ae77ca847d448073"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(35, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 201", null, null, "c8e23c71917fb85683d9372e9deff6f2"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(36, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/sessionlog\" with body:", new global::Io.Cucumber.Messages.Types.DocString(new global::Io.Cucumber.Messages.Types.Location(37, new System.Nullable(7)), null, "{\r\n \"sourceType\": \"copilot\",\r\n \"sessionId\": \"specflow-upsert-session\",\r\n \"titl" + - "e\": \"Upsert Session Updated\",\r\n \"status\": \"completed\",\r\n \"entries\": []\r\n}", "\"\"\""), null, "268374ed04844d549dfae9ab9a06ceb4"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(46, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 201", null, null, "e14d3ca43fd6855588df4313fe2bf3f5")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "6c3941a6ca350e50a620e5ca57e32361")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(48, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Query session logs returns paginated result", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(49, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/sessionlog\"", null, null, "139ef248bf496257a84b9d8da5287ccd"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(50, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "8e369f2ad9d30d5c8b8b58d962d63c52"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(51, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the response body should contain \"totalCount\"", null, null, "d0f18a3f4c5b795595fb757018af8dd2"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(52, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the response body should contain \"limit\"", null, null, "48de820369cb195aac91e3f5f65bfeee"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(53, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the response body should contain \"offset\"", null, null, "a44896fe86ba9e5a830d0eb5acad689e"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(54, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the response body should contain \"items\"", null, null, "2de9ff72009f565b9eeac608bcae07f6")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "dcad78925bc788589bd5a73bfebd8406")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(56, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Query session logs with limit and offset returns correct page shape", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(57, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/sessionlog?limit=5&offset=0\"", null, null, "1007eb20db37205fba9227e407bb9651"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(58, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "c8f897023077ca5292de3356825510ce"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(59, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the response body should contain \"totalCount\"", null, null, "4850b18e63a2be5ab80a0b5f69fe3b3a")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "9a0a14b9177d195da66131a450895e95")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(61, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Append dialog to a session log returns running count or 404", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(62, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "a session log exists with sourceType \"copilot\" and sessionId \"dialog-session-001\"" + - "", null, null, "61aadc4730968657be7dc2c559ba057a"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(63, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/sessionlog/copilot/dialog-session-001/req-dialog-001/dialog\" with" + - " body:", new global::Io.Cucumber.Messages.Types.DocString(new global::Io.Cucumber.Messages.Types.Location(64, new System.Nullable(7)), null, "[\r\n { \"role\": \"user\", \"content\": \"What is 2+2?\" }\r\n]", "\"\"\""), null, "5b11023ce025ff52b5cfc48f008009aa"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(69, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code is 200 or 404", null, null, "e6678400800dd652aa6b2c5f268c23be")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "c4593546a6e3b458a7f1d53158de436d")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(71, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Submit session log with missing required sourceType returns 400", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(72, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/sessionlog\" with body:", new global::Io.Cucumber.Messages.Types.DocString(new global::Io.Cucumber.Messages.Types.Location(73, new System.Nullable(7)), null, "{\r\n \"sessionId\": \"missing-source\",\r\n \"title\": \"Missing SourceType\",\r\n \"status\"" + - ": \"completed\",\r\n \"entries\": []\r\n}", "\"\"\""), null, "193ceaf8d9f6125a9f9ed83d3c409431"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(81, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 400", null, null, "5318eb20f51394588cc1d07321349f23")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "1bff2c0662881f53a942d95c395e862c")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(83, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Submit session log with missing required sessionId returns 400", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(84, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/sessionlog\" with body:", new global::Io.Cucumber.Messages.Types.DocString(new global::Io.Cucumber.Messages.Types.Location(85, new System.Nullable(7)), null, "{\r\n \"sourceType\": \"copilot\",\r\n \"title\": \"Missing Session ID\",\r\n \"status\": \"com" + - "pleted\",\r\n \"entries\": []\r\n}", "\"\"\""), null, "8affab52facaf25689a3e2b2d7e22e28"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(93, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 400", null, null, "157a783d0b2efa55aee6d0a921029050")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "3ad585cf56be5b5bbaff7f3f465daa42"))})), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Comment[] { - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(9, new System.Nullable(1)), " # FR-MCP-003 / FR-SUPPORT-010 / TEST-MCP-002")})); - } - - private static global::System.Collections.Generic.IEnumerable PicklesFunc() - { - return new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Pickle[] { - new global::Io.Cucumber.Messages.Types.Pickle("0b3d3ac9015d5f5f8f5e576c58dc9623", "Features/SessionLog/SessionLogIngestion.feature", "Submit a session log returns 201", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "5ccf214fe82bc05ea39a797d3812ad9e"}), "97cbbf70f7d2b858a080d4b87447fb61", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(new global::Io.Cucumber.Messages.Types.PickleStepArgument(new global::Io.Cucumber.Messages.Types.PickleDocString(null, "{\r\n \"sourceType\": \"copilot\",\r\n \"sessionId\": \"specflow-session-001\",\r\n \"title\":" + - " \"SpecFlow Test Session\",\r\n \"status\": \"completed\",\r\n \"entries\": []\r\n}"), null), new System.Collections.Generic.List(new string[] { - "26cb2aa12a47d359a62a7e6f61534521"}), "0a5cfcde2181f85d8246abd1193b56c2", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/sessionlog\" with body:"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "cf18719bd82c1d5da9426b1f06912977"}), "01eccfd6c3c1825caaa39f3c8e5344c3", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 201")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "1db8825b12fb455c85a087f30e044713"})), - new global::Io.Cucumber.Messages.Types.Pickle("2041294eb67b305a957988f3ef927716", "Features/SessionLog/SessionLogIngestion.feature", "Submit session log with upsert replaces existing log with same sourceType and ses" + - "sionId", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "5ccf214fe82bc05ea39a797d3812ad9e"}), "f3660ceee156e654af80a7f06885571c", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(new global::Io.Cucumber.Messages.Types.PickleStepArgument(new global::Io.Cucumber.Messages.Types.PickleDocString(null, "{\r\n \"sourceType\": \"copilot\",\r\n \"sessionId\": \"specflow-upsert-session\",\r\n \"titl" + - "e\": \"Upsert Session First\",\r\n \"status\": \"in-progress\",\r\n \"entries\": []\r\n}"), null), new System.Collections.Generic.List(new string[] { - "7ba5bd9c308f0954ae77ca847d448073"}), "ad87a267688be85aac53372d5d96aaa4", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/sessionlog\" with body:"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "c8e23c71917fb85683d9372e9deff6f2"}), "bc944e6a41f00d5e81affcf159ec80f1", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 201"), - new global::Io.Cucumber.Messages.Types.PickleStep(new global::Io.Cucumber.Messages.Types.PickleStepArgument(new global::Io.Cucumber.Messages.Types.PickleDocString(null, "{\r\n \"sourceType\": \"copilot\",\r\n \"sessionId\": \"specflow-upsert-session\",\r\n \"titl" + - "e\": \"Upsert Session Updated\",\r\n \"status\": \"completed\",\r\n \"entries\": []\r\n}"), null), new System.Collections.Generic.List(new string[] { - "268374ed04844d549dfae9ab9a06ceb4"}), "e7afd83ea9961558944cbdf5c2a7b527", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/sessionlog\" with body:"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "e14d3ca43fd6855588df4313fe2bf3f5"}), "6392337d2e1aff56ac5131151ab63eae", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 201")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "6c3941a6ca350e50a620e5ca57e32361"})), - new global::Io.Cucumber.Messages.Types.Pickle("0fc563f99e0cec519fce42ad6261d5ac", "Features/SessionLog/SessionLogIngestion.feature", "Query session logs returns paginated result", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "5ccf214fe82bc05ea39a797d3812ad9e"}), "f0407724e0ee6b50b9b35bfdc141a312", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "139ef248bf496257a84b9d8da5287ccd"}), "55a8a209e3cc9956b817ec1c42d845fd", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/sessionlog\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "8e369f2ad9d30d5c8b8b58d962d63c52"}), "0606ec2ec6c3ea50ab61bcf8b5861e93", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "d0f18a3f4c5b795595fb757018af8dd2"}), "363d7f71cc317e528e2b0cc6fe40f0ea", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response body should contain \"totalCount\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "48de820369cb195aac91e3f5f65bfeee"}), "1ac262718a679459a475512fad832b57", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response body should contain \"limit\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "a44896fe86ba9e5a830d0eb5acad689e"}), "56362585e49a3a53b499da82975b9cdc", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response body should contain \"offset\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "2de9ff72009f565b9eeac608bcae07f6"}), "b28a9ddc044af8528e0e56ff852e8549", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response body should contain \"items\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "dcad78925bc788589bd5a73bfebd8406"})), - new global::Io.Cucumber.Messages.Types.Pickle("6875b9cb050ae1578ceda8efb4eed006", "Features/SessionLog/SessionLogIngestion.feature", "Query session logs with limit and offset returns correct page shape", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "5ccf214fe82bc05ea39a797d3812ad9e"}), "c9c95382cb507d59b10cc5a165782b78", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "1007eb20db37205fba9227e407bb9651"}), "262efb89de9a99579df2fde9a6fd9c69", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/sessionlog?limit=5&offset=0\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "c8f897023077ca5292de3356825510ce"}), "85b2cf0d3fd8f6558113c72740556605", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "4850b18e63a2be5ab80a0b5f69fe3b3a"}), "47f02b0cfec65851b60868ee5058b85b", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response body should contain \"totalCount\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "9a0a14b9177d195da66131a450895e95"})), - new global::Io.Cucumber.Messages.Types.Pickle("3d3c2aaa0e61d75ba98f09ff0dd1b46b", "Features/SessionLog/SessionLogIngestion.feature", "Append dialog to a session log returns running count or 404", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "5ccf214fe82bc05ea39a797d3812ad9e"}), "bf71ac51c4e96c5a875dbc394d96ff2d", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "61aadc4730968657be7dc2c559ba057a"}), "4cbef5d40a53365ea4706cda44013e26", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a session log exists with sourceType \"copilot\" and sessionId \"dialog-session-001\"" + - ""), - new global::Io.Cucumber.Messages.Types.PickleStep(new global::Io.Cucumber.Messages.Types.PickleStepArgument(new global::Io.Cucumber.Messages.Types.PickleDocString(null, "[\r\n { \"role\": \"user\", \"content\": \"What is 2+2?\" }\r\n]"), null), new System.Collections.Generic.List(new string[] { - "5b11023ce025ff52b5cfc48f008009aa"}), "4eccaea18c478055b9dd904a20ef4dde", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/sessionlog/copilot/dialog-session-001/req-dialog-001/dialog\" with" + - " body:"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "e6678400800dd652aa6b2c5f268c23be"}), "537512cdfea1f856b5b7e087dc8664a0", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code is 200 or 404")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "c4593546a6e3b458a7f1d53158de436d"})), - new global::Io.Cucumber.Messages.Types.Pickle("2c01a748ff564256be5714c93ad60ed2", "Features/SessionLog/SessionLogIngestion.feature", "Submit session log with missing required sourceType returns 400", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "5ccf214fe82bc05ea39a797d3812ad9e"}), "530d6f39d690df57bcd427731537d4a4", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(new global::Io.Cucumber.Messages.Types.PickleStepArgument(new global::Io.Cucumber.Messages.Types.PickleDocString(null, "{\r\n \"sessionId\": \"missing-source\",\r\n \"title\": \"Missing SourceType\",\r\n \"status\"" + - ": \"completed\",\r\n \"entries\": []\r\n}"), null), new System.Collections.Generic.List(new string[] { - "193ceaf8d9f6125a9f9ed83d3c409431"}), "88aad9ba83a55b598ad24a928e723a7f", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/sessionlog\" with body:"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "5318eb20f51394588cc1d07321349f23"}), "f4274b969c989254b3f56f0176dd1793", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 400")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "1bff2c0662881f53a942d95c395e862c"})), - new global::Io.Cucumber.Messages.Types.Pickle("5b756e9fde591c59bab43e20552cf34f", "Features/SessionLog/SessionLogIngestion.feature", "Submit session log with missing required sessionId returns 400", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "5ccf214fe82bc05ea39a797d3812ad9e"}), "f2dd1d78ba677d5a93997a81cbd0cf87", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(new global::Io.Cucumber.Messages.Types.PickleStepArgument(new global::Io.Cucumber.Messages.Types.PickleDocString(null, "{\r\n \"sourceType\": \"copilot\",\r\n \"title\": \"Missing Session ID\",\r\n \"status\": \"com" + - "pleted\",\r\n \"entries\": []\r\n}"), null), new System.Collections.Generic.List(new string[] { - "8affab52facaf25689a3e2b2d7e22e28"}), "356b8916e84e965b8ad1bd0fa285a0f9", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/sessionlog\" with body:"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "157a783d0b2efa55aee6d0a921029050"}), "5e99436709de1452ac35ca9ec41ee1f2", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 400")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "3ad585cf56be5b5bbaff7f3f465daa42"}))}); - } - - private static global::Reqnroll.Formatters.RuntimeSupport.FeatureLevelCucumberMessages InitializeCucumberMessages() - { - return new global::Reqnroll.Formatters.RuntimeSupport.FeatureLevelCucumberMessages(new global::System.Func(SessionLogIngestionAndQueryFeature.SourceFunc), new global::System.Func(SessionLogIngestionAndQueryFeature.GherkinDocumentFunc), new global::System.Func>(SessionLogIngestionAndQueryFeature.PicklesFunc)); - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.InitializeAsync() - { - try - { - await this.TestInitializeAsync(); - } - catch (System.Exception e1) - { - try - { - ((global::Xunit.IAsyncLifetime)(this)).DisposeAsync(); - } - catch (System.Exception e2) - { - throw new System.AggregateException("Test initialization failed", e1, e2); - } - throw; - } - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.DisposeAsync() - { - await this.TestTearDownAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Submit a session log returns 201")] - [global::Xunit.TraitAttribute("FeatureTitle", "Session Log Ingestion and Query")] - [global::Xunit.TraitAttribute("Description", "Submit a session log returns 201")] - public async global::System.Threading.Tasks.Task SubmitASessionLogReturns201() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "0"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Submit a session log returns 201", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 11 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 12 - await testRunner.WhenAsync("I POST to \"/mcp/sessionlog\" with body:", "{\r\n \"sourceType\": \"copilot\",\r\n \"sessionId\": \"specflow-session-001\",\r\n \"title\":" + - " \"SpecFlow Test Session\",\r\n \"status\": \"completed\",\r\n \"entries\": []\r\n}", ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 22 - await testRunner.ThenAsync("the response status code should be 201", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Submit session log with upsert replaces existing log with same sourceType and ses" + - "sionId")] - [global::Xunit.TraitAttribute("FeatureTitle", "Session Log Ingestion and Query")] - [global::Xunit.TraitAttribute("Description", "Submit session log with upsert replaces existing log with same sourceType and ses" + - "sionId")] - public async global::System.Threading.Tasks.Task SubmitSessionLogWithUpsertReplacesExistingLogWithSameSourceTypeAndSessionId() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "1"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Submit session log with upsert replaces existing log with same sourceType and ses" + - "sionId", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 24 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 25 - await testRunner.WhenAsync("I POST to \"/mcp/sessionlog\" with body:", "{\r\n \"sourceType\": \"copilot\",\r\n \"sessionId\": \"specflow-upsert-session\",\r\n \"titl" + - "e\": \"Upsert Session First\",\r\n \"status\": \"in-progress\",\r\n \"entries\": []\r\n}", ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 35 - await testRunner.ThenAsync("the response status code should be 201", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 36 - await testRunner.WhenAsync("I POST to \"/mcp/sessionlog\" with body:", "{\r\n \"sourceType\": \"copilot\",\r\n \"sessionId\": \"specflow-upsert-session\",\r\n \"titl" + - "e\": \"Upsert Session Updated\",\r\n \"status\": \"completed\",\r\n \"entries\": []\r\n}", ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 46 - await testRunner.ThenAsync("the response status code should be 201", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Query session logs returns paginated result")] - [global::Xunit.TraitAttribute("FeatureTitle", "Session Log Ingestion and Query")] - [global::Xunit.TraitAttribute("Description", "Query session logs returns paginated result")] - public async global::System.Threading.Tasks.Task QuerySessionLogsReturnsPaginatedResult() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "2"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Query session logs returns paginated result", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 48 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 49 - await testRunner.WhenAsync("I send a GET request to \"/mcp/sessionlog\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 50 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 51 - await testRunner.AndAsync("the response body should contain \"totalCount\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 52 - await testRunner.AndAsync("the response body should contain \"limit\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 53 - await testRunner.AndAsync("the response body should contain \"offset\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 54 - await testRunner.AndAsync("the response body should contain \"items\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Query session logs with limit and offset returns correct page shape")] - [global::Xunit.TraitAttribute("FeatureTitle", "Session Log Ingestion and Query")] - [global::Xunit.TraitAttribute("Description", "Query session logs with limit and offset returns correct page shape")] - public async global::System.Threading.Tasks.Task QuerySessionLogsWithLimitAndOffsetReturnsCorrectPageShape() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "3"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Query session logs with limit and offset returns correct page shape", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 56 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 57 - await testRunner.WhenAsync("I send a GET request to \"/mcp/sessionlog?limit=5&offset=0\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 58 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 59 - await testRunner.AndAsync("the response body should contain \"totalCount\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Append dialog to a session log returns running count or 404")] - [global::Xunit.TraitAttribute("FeatureTitle", "Session Log Ingestion and Query")] - [global::Xunit.TraitAttribute("Description", "Append dialog to a session log returns running count or 404")] - public async global::System.Threading.Tasks.Task AppendDialogToASessionLogReturnsRunningCountOr404() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "4"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Append dialog to a session log returns running count or 404", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 61 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 62 - await testRunner.GivenAsync("a session log exists with sourceType \"copilot\" and sessionId \"dialog-session-001\"" + - "", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 63 - await testRunner.WhenAsync("I POST to \"/mcp/sessionlog/copilot/dialog-session-001/req-dialog-001/dialog\" with" + - " body:", "[\r\n { \"role\": \"user\", \"content\": \"What is 2+2?\" }\r\n]", ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 69 - await testRunner.ThenAsync("the response status code is 200 or 404", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Submit session log with missing required sourceType returns 400")] - [global::Xunit.TraitAttribute("FeatureTitle", "Session Log Ingestion and Query")] - [global::Xunit.TraitAttribute("Description", "Submit session log with missing required sourceType returns 400")] - public async global::System.Threading.Tasks.Task SubmitSessionLogWithMissingRequiredSourceTypeReturns400() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "5"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Submit session log with missing required sourceType returns 400", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 71 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 72 - await testRunner.WhenAsync("I POST to \"/mcp/sessionlog\" with body:", "{\r\n \"sessionId\": \"missing-source\",\r\n \"title\": \"Missing SourceType\",\r\n \"status\"" + - ": \"completed\",\r\n \"entries\": []\r\n}", ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 81 - await testRunner.ThenAsync("the response status code should be 400", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Submit session log with missing required sessionId returns 400")] - [global::Xunit.TraitAttribute("FeatureTitle", "Session Log Ingestion and Query")] - [global::Xunit.TraitAttribute("Description", "Submit session log with missing required sessionId returns 400")] - public async global::System.Threading.Tasks.Task SubmitSessionLogWithMissingRequiredSessionIdReturns400() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "6"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Submit session log with missing required sessionId returns 400", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 83 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 84 - await testRunner.WhenAsync("I POST to \"/mcp/sessionlog\" with body:", "{\r\n \"sourceType\": \"copilot\",\r\n \"title\": \"Missing Session ID\",\r\n \"status\": \"com" + - "pleted\",\r\n \"entries\": []\r\n}", ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 93 - await testRunner.ThenAsync("the response status code should be 400", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Reqnroll", "3.0.0.0")] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - public class FixtureData : object, global::Xunit.IAsyncLifetime - { - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.InitializeAsync() - { - await SessionLogIngestionAndQueryFeature.FeatureSetupAsync(); - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.DisposeAsync() - { - await SessionLogIngestionAndQueryFeature.FeatureTearDownAsync(); - } - } - } -} -#pragma warning restore -#endregion diff --git a/tests/McpServer.SpecFlow.Tests/Features/Sync/IngestionSync.feature b/tests/McpServer.SpecFlow.Tests/Features/Sync/IngestionSync.feature deleted file mode 100644 index ec633da4..00000000 --- a/tests/McpServer.SpecFlow.Tests/Features/Sync/IngestionSync.feature +++ /dev/null @@ -1,45 +0,0 @@ -Feature: Ingestion Sync - As an AI agent - I want to trigger full ingestion and check its status - So that indexed content stays up to date - - Background: - Given the MCP server is running - - # FR-MCP-006 / TR-MCP-INGEST-001 / TEST-MCP-002 - - Scenario: Trigger sync run returns 200 with run metadata - When I POST to "/mcp/sync/run" with empty body - Then the response status code should be 200 - And the response body should contain "runId" - And the response body should contain "status" - - Scenario: Sync status returns 200 - When I send a GET request to "/mcp/sync/status" - Then the response status code should be 200 - - Scenario: Sync status returns idle when no runs have been made - When I send a GET request to "/mcp/sync/status" - Then the response status code should be 200 - And the response body is valid JSON - - Scenario: Sync run result contains documentsIngested count - When I POST to "/mcp/sync/run" with empty body - Then the response status code should be 200 - And the response body should contain "documentsIngested" - - Scenario: Sync run result contains chunksWritten count - When I POST to "/mcp/sync/run" with empty body - Then the response status code should be 200 - And the response body should contain "chunksWritten" - - Scenario: Sync run result contains sessionLogsImported count - When I POST to "/mcp/sync/run" with empty body - Then the response status code should be 200 - And the response body should contain "sessionLogsImported" - - Scenario: Multiple consecutive sync runs complete without error - When I POST to "/mcp/sync/run" with empty body - Then the response status code should be 200 - When I POST to "/mcp/sync/run" with empty body - Then the response status code should be 200 diff --git a/tests/McpServer.SpecFlow.Tests/Features/Sync/IngestionSync.feature.cs b/tests/McpServer.SpecFlow.Tests/Features/Sync/IngestionSync.feature.cs deleted file mode 100644 index dc4562cb..00000000 --- a/tests/McpServer.SpecFlow.Tests/Features/Sync/IngestionSync.feature.cs +++ /dev/null @@ -1,568 +0,0 @@ -// ------------------------------------------------------------------------------ -// -// This code was generated by Reqnroll (https://www.reqnroll.net/). -// Reqnroll Version:3.0.0.0 -// Reqnroll Generator Version:3.0.0.0 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -// ------------------------------------------------------------------------------ -#region Designer generated code -#pragma warning disable -using Reqnroll; -namespace McpServer.SpecFlow.Tests.Features.Sync -{ - - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Reqnroll", "3.0.0.0")] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - public partial class IngestionSyncFeature : object, global::Xunit.IClassFixture, global::Xunit.IAsyncLifetime - { - - private global::Reqnroll.ITestRunner testRunner; - - private static string[] featureTags = ((string[])(null)); - - private static global::Reqnroll.FeatureInfo featureInfo = new global::Reqnroll.FeatureInfo(new global::System.Globalization.CultureInfo("en-US"), "Features/Sync", "Ingestion Sync", " As an AI agent\r\n I want to trigger full ingestion and check its status\r\n So t" + - "hat indexed content stays up to date", global::Reqnroll.ProgrammingLanguage.CSharp, featureTags, InitializeCucumberMessages()); - - private global::Xunit.Abstractions.ITestOutputHelper _testOutputHelper; - -#line 1 "IngestionSync.feature" -#line hidden - - public IngestionSyncFeature(IngestionSyncFeature.FixtureData fixtureData, global::Xunit.Abstractions.ITestOutputHelper testOutputHelper) - { - this._testOutputHelper = testOutputHelper; - } - - public static async global::System.Threading.Tasks.Task FeatureSetupAsync() - { - } - - public static async global::System.Threading.Tasks.Task FeatureTearDownAsync() - { - await global::Reqnroll.TestRunnerManager.ReleaseFeatureAsync(featureInfo); - } - - public async global::System.Threading.Tasks.Task TestInitializeAsync() - { - testRunner = global::Reqnroll.TestRunnerManager.GetTestRunnerForAssembly(featureHint: featureInfo); - try - { - if (((testRunner.FeatureContext != null) - && (testRunner.FeatureContext.FeatureInfo.Equals(featureInfo) == false))) - { - await testRunner.OnFeatureEndAsync(); - } - } - finally - { - if (((testRunner.FeatureContext != null) - && testRunner.FeatureContext.BeforeFeatureHookFailed)) - { - throw new global::Reqnroll.ReqnrollException("Scenario skipped because of previous before feature hook error"); - } - if ((testRunner.FeatureContext == null)) - { - await testRunner.OnFeatureStartAsync(featureInfo); - } - } - } - - public async global::System.Threading.Tasks.Task TestTearDownAsync() - { - if ((testRunner == null)) - { - return; - } - try - { - await testRunner.OnScenarioEndAsync(); - } - finally - { - global::Reqnroll.TestRunnerManager.ReleaseTestRunner(testRunner); - testRunner = null; - } - } - - public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, global::Reqnroll.RuleInfo ruleInfo) - { - testRunner.OnScenarioInitialize(scenarioInfo, ruleInfo); - testRunner.ScenarioContext.ScenarioContainer.RegisterInstanceAs(_testOutputHelper); - } - - public async global::System.Threading.Tasks.Task ScenarioStartAsync() - { - await testRunner.OnScenarioStartAsync(); - } - - public async global::System.Threading.Tasks.Task ScenarioCleanupAsync() - { - await testRunner.CollectScenarioErrorsAsync(); - } - - public virtual async global::System.Threading.Tasks.Task FeatureBackgroundAsync() - { -#line 6 - #line hidden -#line 7 - await testRunner.GivenAsync("the MCP server is running", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden - } - - private static global::Io.Cucumber.Messages.Types.Source SourceFunc() - { - return new global::Io.Cucumber.Messages.Types.Source("Features/Sync/IngestionSync.feature", "Feature: Ingestion Sync\r\n As an AI agent\r\n I want to trigger full ingestion and" + - " check its status\r\n So that indexed content stays up to date\r\n\r\n Background:\r\n" + - " Given the MCP server is running\r\n\r\n # FR-MCP-006 / TR-MCP-INGEST-001 / TEST" + - "-MCP-002\r\n\r\n Scenario: Trigger sync run returns 200 with run metadata\r\n When" + - " I POST to \"/mcp/sync/run\" with empty body\r\n Then the response status code sh" + - "ould be 200\r\n And the response body should contain \"runId\"\r\n And the respo" + - "nse body should contain \"status\"\r\n\r\n Scenario: Sync status returns 200\r\n Whe" + - "n I send a GET request to \"/mcp/sync/status\"\r\n Then the response status code " + - "should be 200\r\n\r\n Scenario: Sync status returns idle when no runs have been mad" + - "e\r\n When I send a GET request to \"/mcp/sync/status\"\r\n Then the response st" + - "atus code should be 200\r\n And the response body is valid JSON\r\n\r\n Scenario: " + - "Sync run result contains documentsIngested count\r\n When I POST to \"/mcp/sync/" + - "run\" with empty body\r\n Then the response status code should be 200\r\n And t" + - "he response body should contain \"documentsIngested\"\r\n\r\n Scenario: Sync run resu" + - "lt contains chunksWritten count\r\n When I POST to \"/mcp/sync/run\" with empty b" + - "ody\r\n Then the response status code should be 200\r\n And the response body " + - "should contain \"chunksWritten\"\r\n\r\n Scenario: Sync run result contains sessionLo" + - "gsImported count\r\n When I POST to \"/mcp/sync/run\" with empty body\r\n Then t" + - "he response status code should be 200\r\n And the response body should contain " + - "\"sessionLogsImported\"\r\n\r\n Scenario: Multiple consecutive sync runs complete wit" + - "hout error\r\n When I POST to \"/mcp/sync/run\" with empty body\r\n Then the res" + - "ponse status code should be 200\r\n When I POST to \"/mcp/sync/run\" with empty b" + - "ody\r\n Then the response status code should be 200\r\n", global::Io.Cucumber.Messages.Types.SourceMediaType.TEXT_X_CUCUMBER_GHERKIN_PLAIN); - } - - private static global::Io.Cucumber.Messages.Types.GherkinDocument GherkinDocumentFunc() - { - return new global::Io.Cucumber.Messages.Types.GherkinDocument("Features/Sync/IngestionSync.feature", new global::Io.Cucumber.Messages.Types.Feature(new global::Io.Cucumber.Messages.Types.Location(1, new System.Nullable(1)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "en-US", "Feature", "Ingestion Sync", " As an AI agent\r\n I want to trigger full ingestion and check its status\r\n So t" + - "hat indexed content stays up to date", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.FeatureChild[] { - new global::Io.Cucumber.Messages.Types.FeatureChild(null, new global::Io.Cucumber.Messages.Types.Background(new global::Io.Cucumber.Messages.Types.Location(6, new System.Nullable(3)), "Background", "", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(7, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "the MCP server is running", null, null, "8a3200261902de5986c3c3f50ac3f905")}), "62b6f9b58b84b95a895de639a0717969"), null), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(11, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Trigger sync run returns 200 with run metadata", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(12, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/sync/run\" with empty body", null, null, "1f8b77bc5ffe6b56a34e7a5d24a87964"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(13, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "8f3e284f01381b51bfc5d5b3309c263b"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(14, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the response body should contain \"runId\"", null, null, "de0e1e3cecd24d54b52467cd0d31e685"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(15, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the response body should contain \"status\"", null, null, "08c1619cb64aff50a64d70b228277397")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "11265f64e5af3953a008371038b83ccc")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(17, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Sync status returns 200", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(18, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/sync/status\"", null, null, "e0ab8554006a7350b9dd15319f8f6bd4"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(19, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "172448a3a50ef45587838110832fd784")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "39f2882da0750e56b4f6bb8a249f754a")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(21, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Sync status returns idle when no runs have been made", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(22, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/sync/status\"", null, null, "348c5b35ddc77f5ba812bce247017312"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(23, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "74cf7494757cd554a377b250e3179980"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(24, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the response body is valid JSON", null, null, "113352805917145db863076596a0afa0")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "ec0000f312533658b9b30ddd81791f44")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(26, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Sync run result contains documentsIngested count", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(27, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/sync/run\" with empty body", null, null, "87b1a46d4669b6579d275fe0c0275cce"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(28, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "e6acae49e047635eb9e99f71d8b95deb"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(29, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the response body should contain \"documentsIngested\"", null, null, "2d516a61b0547a55a2f4dafa0321beca")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "249bc26cc14d05548cffb9884fd69d95")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(31, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Sync run result contains chunksWritten count", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(32, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/sync/run\" with empty body", null, null, "718672a0912f865da00d76b843abe5e5"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(33, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "e1a36da9608d2256a86d1e108a668869"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(34, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the response body should contain \"chunksWritten\"", null, null, "862674a99f8ef25b84e6a61739adbe33")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "fc84b9d5bdd8c85ca22ca812f87983bb")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(36, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Sync run result contains sessionLogsImported count", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(37, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/sync/run\" with empty body", null, null, "67910dda45246450ad7f379efa9987ab"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(38, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "d5fa2274a5b49b56bab2d18ad2c33e4c"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(39, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the response body should contain \"sessionLogsImported\"", null, null, "78df4b95b8013d5ea1341d63d64ac1a9")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "01b9dae4e5e7fc55be030d21ad3364e2")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(41, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Multiple consecutive sync runs complete without error", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(42, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/sync/run\" with empty body", null, null, "dae41f6b51492e52a6251e310384913c"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(43, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "3b22bbba6b21125b88b42cf73c90c2bd"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(44, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/sync/run\" with empty body", null, null, "cec0c0524331e05ea9106a5b17f7bc89"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(45, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "339b58530c7c3255841b82f2a8b15db4")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "23397973c175af51adf973764e66a18e"))})), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Comment[] { - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(9, new System.Nullable(1)), " # FR-MCP-006 / TR-MCP-INGEST-001 / TEST-MCP-002")})); - } - - private static global::System.Collections.Generic.IEnumerable PicklesFunc() - { - return new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Pickle[] { - new global::Io.Cucumber.Messages.Types.Pickle("f121ac21bc9cc75e85fdaab9b6b5875d", "Features/Sync/IngestionSync.feature", "Trigger sync run returns 200 with run metadata", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "8a3200261902de5986c3c3f50ac3f905"}), "fec3f34d4508d957acf5efcd56a8e9fc", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "1f8b77bc5ffe6b56a34e7a5d24a87964"}), "0a093b4def79585bb514be083ab898cf", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/sync/run\" with empty body"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "8f3e284f01381b51bfc5d5b3309c263b"}), "e4e89b1f4abee65a8ab7f5d51cdca6da", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "de0e1e3cecd24d54b52467cd0d31e685"}), "c5fa3d12decf2b5e9fb00c24b55f73d1", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response body should contain \"runId\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "08c1619cb64aff50a64d70b228277397"}), "c9bae112d9f33c50912e4759542e8137", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response body should contain \"status\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "11265f64e5af3953a008371038b83ccc"})), - new global::Io.Cucumber.Messages.Types.Pickle("7d1c42eaf597e95c975eb0f4c93cd4d4", "Features/Sync/IngestionSync.feature", "Sync status returns 200", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "8a3200261902de5986c3c3f50ac3f905"}), "e21f764795a3bd528dac4a6f005de601", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "e0ab8554006a7350b9dd15319f8f6bd4"}), "c2174a1d6be50a5bbdb10acd23c7163d", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/sync/status\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "172448a3a50ef45587838110832fd784"}), "34f7774785e8665eb5c9890731a8d96d", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "39f2882da0750e56b4f6bb8a249f754a"})), - new global::Io.Cucumber.Messages.Types.Pickle("3c63203699404259b6b42bae4dcc6ca5", "Features/Sync/IngestionSync.feature", "Sync status returns idle when no runs have been made", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "8a3200261902de5986c3c3f50ac3f905"}), "e9354accb84fea559f255385c480e741", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "348c5b35ddc77f5ba812bce247017312"}), "f54e244d37634f52b1db8209806de3ff", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/sync/status\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "74cf7494757cd554a377b250e3179980"}), "3cafd6b0bc8a225b9934a8c9e3ae3f20", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "113352805917145db863076596a0afa0"}), "3e3483c4a0550c54ac8bf637a962e4a6", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response body is valid JSON")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "ec0000f312533658b9b30ddd81791f44"})), - new global::Io.Cucumber.Messages.Types.Pickle("f9061cf67110f056854d55acac707557", "Features/Sync/IngestionSync.feature", "Sync run result contains documentsIngested count", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "8a3200261902de5986c3c3f50ac3f905"}), "fb8ce9574d3ab35daeb6e6e2535f7af6", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "87b1a46d4669b6579d275fe0c0275cce"}), "e6ab415263278c52b18f958a94a0fedb", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/sync/run\" with empty body"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "e6acae49e047635eb9e99f71d8b95deb"}), "d56774eae8e7015d8315a4b4d312573f", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "2d516a61b0547a55a2f4dafa0321beca"}), "3db7954d73cd0c598010c9b79628f032", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response body should contain \"documentsIngested\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "249bc26cc14d05548cffb9884fd69d95"})), - new global::Io.Cucumber.Messages.Types.Pickle("1e35dc13aaa33e57b3e13ccafb1720fe", "Features/Sync/IngestionSync.feature", "Sync run result contains chunksWritten count", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "8a3200261902de5986c3c3f50ac3f905"}), "b9ce50308b070b5887bef6bbc467305e", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "718672a0912f865da00d76b843abe5e5"}), "d137ae3919a6f858aafd432e3366686e", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/sync/run\" with empty body"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "e1a36da9608d2256a86d1e108a668869"}), "8902d77b527e055a89d1fa71bbb1e476", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "862674a99f8ef25b84e6a61739adbe33"}), "5c52bb2f448e8e5e9983d0355d8d3a1a", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response body should contain \"chunksWritten\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "fc84b9d5bdd8c85ca22ca812f87983bb"})), - new global::Io.Cucumber.Messages.Types.Pickle("08962060cd3c2953820aae2dcc55bb7b", "Features/Sync/IngestionSync.feature", "Sync run result contains sessionLogsImported count", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "8a3200261902de5986c3c3f50ac3f905"}), "c1fd2862d90f40579c0d0130d8d3a448", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "67910dda45246450ad7f379efa9987ab"}), "61e2fe238436565bba4e4e965a6ed9f6", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/sync/run\" with empty body"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "d5fa2274a5b49b56bab2d18ad2c33e4c"}), "f7be9cf7f6f95a5985c859142ad440a6", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "78df4b95b8013d5ea1341d63d64ac1a9"}), "cea4ce1df0c38a519df1b61bbabddb46", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response body should contain \"sessionLogsImported\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "01b9dae4e5e7fc55be030d21ad3364e2"})), - new global::Io.Cucumber.Messages.Types.Pickle("c5d8c8a8b66a775dbd7076c95cf367ce", "Features/Sync/IngestionSync.feature", "Multiple consecutive sync runs complete without error", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "8a3200261902de5986c3c3f50ac3f905"}), "a188a5c526878456a95bd9c8f4917392", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "dae41f6b51492e52a6251e310384913c"}), "4856860552a6b45187e0799b6e8f3e02", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/sync/run\" with empty body"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "3b22bbba6b21125b88b42cf73c90c2bd"}), "1b879d1fd001055a9667c322ccfb6232", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "cec0c0524331e05ea9106a5b17f7bc89"}), "127724f3dc6e235b8b40351ec1630c6c", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/sync/run\" with empty body"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "339b58530c7c3255841b82f2a8b15db4"}), "401a35dd1d9f09509a9c419e667e83c1", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "23397973c175af51adf973764e66a18e"}))}); - } - - private static global::Reqnroll.Formatters.RuntimeSupport.FeatureLevelCucumberMessages InitializeCucumberMessages() - { - return new global::Reqnroll.Formatters.RuntimeSupport.FeatureLevelCucumberMessages(new global::System.Func(IngestionSyncFeature.SourceFunc), new global::System.Func(IngestionSyncFeature.GherkinDocumentFunc), new global::System.Func>(IngestionSyncFeature.PicklesFunc)); - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.InitializeAsync() - { - try - { - await this.TestInitializeAsync(); - } - catch (System.Exception e1) - { - try - { - ((global::Xunit.IAsyncLifetime)(this)).DisposeAsync(); - } - catch (System.Exception e2) - { - throw new System.AggregateException("Test initialization failed", e1, e2); - } - throw; - } - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.DisposeAsync() - { - await this.TestTearDownAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Trigger sync run returns 200 with run metadata")] - [global::Xunit.TraitAttribute("FeatureTitle", "Ingestion Sync")] - [global::Xunit.TraitAttribute("Description", "Trigger sync run returns 200 with run metadata")] - public async global::System.Threading.Tasks.Task TriggerSyncRunReturns200WithRunMetadata() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "0"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Trigger sync run returns 200 with run metadata", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 11 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 12 - await testRunner.WhenAsync("I POST to \"/mcp/sync/run\" with empty body", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 13 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 14 - await testRunner.AndAsync("the response body should contain \"runId\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 15 - await testRunner.AndAsync("the response body should contain \"status\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Sync status returns 200")] - [global::Xunit.TraitAttribute("FeatureTitle", "Ingestion Sync")] - [global::Xunit.TraitAttribute("Description", "Sync status returns 200")] - public async global::System.Threading.Tasks.Task SyncStatusReturns200() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "1"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Sync status returns 200", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 17 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 18 - await testRunner.WhenAsync("I send a GET request to \"/mcp/sync/status\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 19 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Sync status returns idle when no runs have been made")] - [global::Xunit.TraitAttribute("FeatureTitle", "Ingestion Sync")] - [global::Xunit.TraitAttribute("Description", "Sync status returns idle when no runs have been made")] - public async global::System.Threading.Tasks.Task SyncStatusReturnsIdleWhenNoRunsHaveBeenMade() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "2"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Sync status returns idle when no runs have been made", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 21 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 22 - await testRunner.WhenAsync("I send a GET request to \"/mcp/sync/status\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 23 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 24 - await testRunner.AndAsync("the response body is valid JSON", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Sync run result contains documentsIngested count")] - [global::Xunit.TraitAttribute("FeatureTitle", "Ingestion Sync")] - [global::Xunit.TraitAttribute("Description", "Sync run result contains documentsIngested count")] - public async global::System.Threading.Tasks.Task SyncRunResultContainsDocumentsIngestedCount() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "3"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Sync run result contains documentsIngested count", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 26 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 27 - await testRunner.WhenAsync("I POST to \"/mcp/sync/run\" with empty body", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 28 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 29 - await testRunner.AndAsync("the response body should contain \"documentsIngested\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Sync run result contains chunksWritten count")] - [global::Xunit.TraitAttribute("FeatureTitle", "Ingestion Sync")] - [global::Xunit.TraitAttribute("Description", "Sync run result contains chunksWritten count")] - public async global::System.Threading.Tasks.Task SyncRunResultContainsChunksWrittenCount() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "4"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Sync run result contains chunksWritten count", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 31 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 32 - await testRunner.WhenAsync("I POST to \"/mcp/sync/run\" with empty body", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 33 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 34 - await testRunner.AndAsync("the response body should contain \"chunksWritten\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Sync run result contains sessionLogsImported count")] - [global::Xunit.TraitAttribute("FeatureTitle", "Ingestion Sync")] - [global::Xunit.TraitAttribute("Description", "Sync run result contains sessionLogsImported count")] - public async global::System.Threading.Tasks.Task SyncRunResultContainsSessionLogsImportedCount() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "5"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Sync run result contains sessionLogsImported count", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 36 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 37 - await testRunner.WhenAsync("I POST to \"/mcp/sync/run\" with empty body", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 38 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 39 - await testRunner.AndAsync("the response body should contain \"sessionLogsImported\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Multiple consecutive sync runs complete without error")] - [global::Xunit.TraitAttribute("FeatureTitle", "Ingestion Sync")] - [global::Xunit.TraitAttribute("Description", "Multiple consecutive sync runs complete without error")] - public async global::System.Threading.Tasks.Task MultipleConsecutiveSyncRunsCompleteWithoutError() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "6"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Multiple consecutive sync runs complete without error", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 41 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 42 - await testRunner.WhenAsync("I POST to \"/mcp/sync/run\" with empty body", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 43 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 44 - await testRunner.WhenAsync("I POST to \"/mcp/sync/run\" with empty body", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 45 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Reqnroll", "3.0.0.0")] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - public class FixtureData : object, global::Xunit.IAsyncLifetime - { - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.InitializeAsync() - { - await IngestionSyncFeature.FeatureSetupAsync(); - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.DisposeAsync() - { - await IngestionSyncFeature.FeatureTearDownAsync(); - } - } - } -} -#pragma warning restore -#endregion diff --git a/tests/McpServer.SpecFlow.Tests/Features/Todo/TodoManagement.feature b/tests/McpServer.SpecFlow.Tests/Features/Todo/TodoManagement.feature deleted file mode 100644 index e6b67503..00000000 --- a/tests/McpServer.SpecFlow.Tests/Features/Todo/TodoManagement.feature +++ /dev/null @@ -1,115 +0,0 @@ -Feature: TODO Management API - As an AI agent or developer - I want to create, read, update, delete, and query TODO items via REST - So that project tasks can be managed programmatically - - Background: - Given the MCP server is running - - # FR-MCP-002 / FR-SUPPORT-010 / TEST-MCP-002 - - Scenario: Query all TODO items returns 200 with a result - When I send a GET request to "/mcp/todo" - Then the response status code should be 200 - And the response body should contain a "totalCount" field - - Scenario: Query TODO items by section filters results - When I send a GET request to "/mcp/todo?section=mvp-support" - Then the response status code should be 200 - And every returned item should have section "mvp-support" - - Scenario: Query TODO items by priority filters results - When I send a GET request to "/mcp/todo?priority=high" - Then the response status code should be 200 - And every returned item should have priority "high" - - Scenario: Query TODO items by done status filters to completed items - When I send a GET request to "/mcp/todo?done=true" - Then the response status code should be 200 - And every returned item should have done "true" - - Scenario: Query TODO items by keyword filters results - Given a TODO item exists with title "UniqueKeyword12345" - When I send a GET request to "/mcp/todo?keyword=UniqueKeyword12345" - Then the response status code should be 200 - And every returned item title or description should contain "UniqueKeyword12345" - - Scenario: Create a new TODO item succeeds - When I POST to "/mcp/todo" with body: - """ - { - "id": "SF-SPEC-CREATE-UNIQUE", - "title": "SpecFlow Created Item", - "section": "mvp-support", - "priority": "medium", - "description": ["Created by SpecFlow test"], - "done": false - } - """ - Then the response status code is 201 or 409 - And the response body should contain "id" - - Scenario: Create TODO with invalid section returns 409 - When I POST to "/mcp/todo" with body: - """ - { - "id": "SF-SPEC-BADSECT", - "title": "Bad Section Item", - "section": "invalid-section-xyz", - "priority": "high" - } - """ - Then the response status code should be 409 - - Scenario: Create TODO with missing title returns 400 - When I POST to "/mcp/todo" with body: - """ - { - "id": "SF-SPEC-NOTITLE", - "section": "mvp-support", - "priority": "high" - } - """ - Then the response status code should be 400 - - Scenario: Get TODO by ID returns the item - Given a TODO item exists with title "GetByIdItem" and id stored as "createdId" - When I send a GET request to "/mcp/todo/{createdId}" - Then the response status code should be 200 - And the response body should contain "GetByIdItem" - - Scenario: Get TODO by unknown ID returns 404 - When I send a GET request to "/mcp/todo/NONEXISTENT-9999" - Then the response status code should be 404 - - Scenario: Update a TODO item changes its fields - Given a TODO item exists with title "UpdateMe" and id stored as "updateId" - When I PUT to "/mcp/todo/{updateId}" with body: - """ - { - "title": "UpdateMe Updated", - "done": true - } - """ - Then the response status code should be 200 - And the response body should contain "true" - - Scenario: Delete a TODO item removes it - Given a TODO item exists with title "DeleteMe" and id stored as "deleteId" - When I send a DELETE request to "/mcp/todo/{deleteId}" - Then the response status code should be 200 - When I send a GET request to "/mcp/todo/{deleteId}" - Then the response status code should be 404 - - Scenario: Requirements analysis endpoint returns 422 when Copilot CLI unavailable - Given a TODO item exists with title "RequirementsItem" and id stored as "reqId" - When I POST to "/mcp/todo/{reqId}/requirements" with empty body - Then the response status code should be 422 - - # TR-MCP-DRY-001 — single validator consumed by all backends - Scenario: Section validation is consistent across create and update operations - When I POST to "/mcp/todo" with body: - """ - { "id": "SF-SPEC-DRY-001", "title": "Validator Test", "section": "mvp-app", "priority": "high" } - """ - Then the response status code is 201 or 409 diff --git a/tests/McpServer.SpecFlow.Tests/Features/Todo/TodoManagement.feature.cs b/tests/McpServer.SpecFlow.Tests/Features/Todo/TodoManagement.feature.cs deleted file mode 100644 index 93979eb9..00000000 --- a/tests/McpServer.SpecFlow.Tests/Features/Todo/TodoManagement.feature.cs +++ /dev/null @@ -1,974 +0,0 @@ -// ------------------------------------------------------------------------------ -// -// This code was generated by Reqnroll (https://www.reqnroll.net/). -// Reqnroll Version:3.0.0.0 -// Reqnroll Generator Version:3.0.0.0 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -// ------------------------------------------------------------------------------ -#region Designer generated code -#pragma warning disable -using Reqnroll; -namespace McpServer.SpecFlow.Tests.Features.Todo -{ - - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Reqnroll", "3.0.0.0")] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - public partial class TODOManagementAPIFeature : object, global::Xunit.IClassFixture, global::Xunit.IAsyncLifetime - { - - private global::Reqnroll.ITestRunner testRunner; - - private static string[] featureTags = ((string[])(null)); - - private static global::Reqnroll.FeatureInfo featureInfo = new global::Reqnroll.FeatureInfo(new global::System.Globalization.CultureInfo("en-US"), "Features/Todo", "TODO Management API", " As an AI agent or developer\r\n I want to create, read, update, delete, and quer" + - "y TODO items via REST\r\n So that project tasks can be managed programmatically", global::Reqnroll.ProgrammingLanguage.CSharp, featureTags, InitializeCucumberMessages()); - - private global::Xunit.Abstractions.ITestOutputHelper _testOutputHelper; - -#line 1 "TodoManagement.feature" -#line hidden - - public TODOManagementAPIFeature(TODOManagementAPIFeature.FixtureData fixtureData, global::Xunit.Abstractions.ITestOutputHelper testOutputHelper) - { - this._testOutputHelper = testOutputHelper; - } - - public static async global::System.Threading.Tasks.Task FeatureSetupAsync() - { - } - - public static async global::System.Threading.Tasks.Task FeatureTearDownAsync() - { - await global::Reqnroll.TestRunnerManager.ReleaseFeatureAsync(featureInfo); - } - - public async global::System.Threading.Tasks.Task TestInitializeAsync() - { - testRunner = global::Reqnroll.TestRunnerManager.GetTestRunnerForAssembly(featureHint: featureInfo); - try - { - if (((testRunner.FeatureContext != null) - && (testRunner.FeatureContext.FeatureInfo.Equals(featureInfo) == false))) - { - await testRunner.OnFeatureEndAsync(); - } - } - finally - { - if (((testRunner.FeatureContext != null) - && testRunner.FeatureContext.BeforeFeatureHookFailed)) - { - throw new global::Reqnroll.ReqnrollException("Scenario skipped because of previous before feature hook error"); - } - if ((testRunner.FeatureContext == null)) - { - await testRunner.OnFeatureStartAsync(featureInfo); - } - } - } - - public async global::System.Threading.Tasks.Task TestTearDownAsync() - { - if ((testRunner == null)) - { - return; - } - try - { - await testRunner.OnScenarioEndAsync(); - } - finally - { - global::Reqnroll.TestRunnerManager.ReleaseTestRunner(testRunner); - testRunner = null; - } - } - - public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, global::Reqnroll.RuleInfo ruleInfo) - { - testRunner.OnScenarioInitialize(scenarioInfo, ruleInfo); - testRunner.ScenarioContext.ScenarioContainer.RegisterInstanceAs(_testOutputHelper); - } - - public async global::System.Threading.Tasks.Task ScenarioStartAsync() - { - await testRunner.OnScenarioStartAsync(); - } - - public async global::System.Threading.Tasks.Task ScenarioCleanupAsync() - { - await testRunner.CollectScenarioErrorsAsync(); - } - - public virtual async global::System.Threading.Tasks.Task FeatureBackgroundAsync() - { -#line 6 - #line hidden -#line 7 - await testRunner.GivenAsync("the MCP server is running", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden - } - - private static global::Io.Cucumber.Messages.Types.Source SourceFunc() - { - return new global::Io.Cucumber.Messages.Types.Source("Features/Todo/TodoManagement.feature", "Feature: TODO Management API\r\n As an AI agent or developer\r\n I want to create, " + - "read, update, delete, and query TODO items via REST\r\n So that project tasks can" + - " be managed programmatically\r\n\r\n Background:\r\n Given the MCP server is runni" + - "ng\r\n\r\n # FR-MCP-002 / FR-SUPPORT-010 / TEST-MCP-002\r\n\r\n Scenario: Query all TO" + - "DO items returns 200 with a result\r\n When I send a GET request to \"/mcp/todo\"" + - "\r\n Then the response status code should be 200\r\n And the response body sho" + - "uld contain a \"totalCount\" field\r\n\r\n Scenario: Query TODO items by section filt" + - "ers results\r\n When I send a GET request to \"/mcp/todo?section=mvp-support\"\r\n " + - " Then the response status code should be 200\r\n And every returned item shou" + - "ld have section \"mvp-support\"\r\n\r\n Scenario: Query TODO items by priority filter" + - "s results\r\n When I send a GET request to \"/mcp/todo?priority=high\"\r\n Then " + - "the response status code should be 200\r\n And every returned item should have " + - "priority \"high\"\r\n\r\n Scenario: Query TODO items by done status filters to comple" + - "ted items\r\n When I send a GET request to \"/mcp/todo?done=true\"\r\n Then the " + - "response status code should be 200\r\n And every returned item should have done" + - " \"true\"\r\n\r\n Scenario: Query TODO items by keyword filters results\r\n Given a " + - "TODO item exists with title \"UniqueKeyword12345\"\r\n When I send a GET request " + - "to \"/mcp/todo?keyword=UniqueKeyword12345\"\r\n Then the response status code sho" + - "uld be 200\r\n And every returned item title or description should contain \"Uni" + - "queKeyword12345\"\r\n\r\n Scenario: Create a new TODO item succeeds\r\n When I POST" + - " to \"/mcp/todo\" with body:\r\n \"\"\"\r\n {\r\n \"id\": \"SF-SPEC-CREATE-UN" + - "IQUE\",\r\n \"title\": \"SpecFlow Created Item\",\r\n \"section\": \"mvp-suppo" + - "rt\",\r\n \"priority\": \"medium\",\r\n \"description\": [\"Created by SpecFlo" + - "w test\"],\r\n \"done\": false\r\n }\r\n \"\"\"\r\n Then the response stat" + - "us code is 201 or 409\r\n And the response body should contain \"id\"\r\n\r\n Scenar" + - "io: Create TODO with invalid section returns 409\r\n When I POST to \"/mcp/todo\"" + - " with body:\r\n \"\"\"\r\n {\r\n \"id\": \"SF-SPEC-BADSECT\",\r\n \"titl" + - "e\": \"Bad Section Item\",\r\n \"section\": \"invalid-section-xyz\",\r\n \"pri" + - "ority\": \"high\"\r\n }\r\n \"\"\"\r\n Then the response status code should be " + - "409\r\n\r\n Scenario: Create TODO with missing title returns 400\r\n When I POST t" + - "o \"/mcp/todo\" with body:\r\n \"\"\"\r\n {\r\n \"id\": \"SF-SPEC-NOTITLE\",\r\n" + - " \"section\": \"mvp-support\",\r\n \"priority\": \"high\"\r\n }\r\n \"\"" + - "\"\r\n Then the response status code should be 400\r\n\r\n Scenario: Get TODO by ID" + - " returns the item\r\n Given a TODO item exists with title \"GetByIdItem\" and id " + - "stored as \"createdId\"\r\n When I send a GET request to \"/mcp/todo/{createdId}\"\r" + - "\n Then the response status code should be 200\r\n And the response body shou" + - "ld contain \"GetByIdItem\"\r\n\r\n Scenario: Get TODO by unknown ID returns 404\r\n " + - "When I send a GET request to \"/mcp/todo/NONEXISTENT-9999\"\r\n Then the response" + - " status code should be 404\r\n\r\n Scenario: Update a TODO item changes its fields\r" + - "\n Given a TODO item exists with title \"UpdateMe\" and id stored as \"updateId\"\r" + - "\n When I PUT to \"/mcp/todo/{updateId}\" with body:\r\n \"\"\"\r\n {\r\n " + - " \"title\": \"UpdateMe Updated\",\r\n \"done\": true\r\n }\r\n \"\"\"\r\n Th" + - "en the response status code should be 200\r\n And the response body should cont" + - "ain \"true\"\r\n\r\n Scenario: Delete a TODO item removes it\r\n Given a TODO item e" + - "xists with title \"DeleteMe\" and id stored as \"deleteId\"\r\n When I send a DELET" + - "E request to \"/mcp/todo/{deleteId}\"\r\n Then the response status code should be" + - " 200\r\n When I send a GET request to \"/mcp/todo/{deleteId}\"\r\n Then the resp" + - "onse status code should be 404\r\n\r\n Scenario: Requirements analysis endpoint ret" + - "urns 422 when Copilot CLI unavailable\r\n Given a TODO item exists with title \"" + - "RequirementsItem\" and id stored as \"reqId\"\r\n When I POST to \"/mcp/todo/{reqId" + - "}/requirements\" with empty body\r\n Then the response status code should be 422" + - "\r\n\r\n # TR-MCP-DRY-001 — single validator consumed by all backends\r\n Scenario: " + - "Section validation is consistent across create and update operations\r\n When I" + - " POST to \"/mcp/todo\" with body:\r\n \"\"\"\r\n { \"id\": \"SF-SPEC-DRY-001\", \"ti" + - "tle\": \"Validator Test\", \"section\": \"mvp-app\", \"priority\": \"high\" }\r\n \"\"\"\r\n " + - " Then the response status code is 201 or 409\r\n", global::Io.Cucumber.Messages.Types.SourceMediaType.TEXT_X_CUCUMBER_GHERKIN_PLAIN); - } - - private static global::Io.Cucumber.Messages.Types.GherkinDocument GherkinDocumentFunc() - { - return new global::Io.Cucumber.Messages.Types.GherkinDocument("Features/Todo/TodoManagement.feature", new global::Io.Cucumber.Messages.Types.Feature(new global::Io.Cucumber.Messages.Types.Location(1, new System.Nullable(1)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "en-US", "Feature", "TODO Management API", " As an AI agent or developer\r\n I want to create, read, update, delete, and quer" + - "y TODO items via REST\r\n So that project tasks can be managed programmatically", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.FeatureChild[] { - new global::Io.Cucumber.Messages.Types.FeatureChild(null, new global::Io.Cucumber.Messages.Types.Background(new global::Io.Cucumber.Messages.Types.Location(6, new System.Nullable(3)), "Background", "", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(7, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "the MCP server is running", null, null, "c6def1cfb3ea9d5f8c83160a8ad2a3ab")}), "517e5e5ee0f7805097c86e91eea00ef4"), null), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(11, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Query all TODO items returns 200 with a result", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(12, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/todo\"", null, null, "e9ea49c810ae7758978b5e05831a3df7"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(13, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "85a029c3e1b519529086a122967049b7"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(14, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the response body should contain a \"totalCount\" field", null, null, "976de5f179199b5f96ebabcdcab0966a")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "87818576f666db579259adbe40427086")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(16, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Query TODO items by section filters results", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(17, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/todo?section=mvp-support\"", null, null, "941d368c82f0c95d9841bf461db346fa"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(18, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "d923cd0400a33e5eb94bea832e6cee61"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(19, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "every returned item should have section \"mvp-support\"", null, null, "2a4494bbd515b553bde715992b94040b")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "6649ec81d10f87598b641c8ab38c34fb")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(21, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Query TODO items by priority filters results", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(22, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/todo?priority=high\"", null, null, "cfa3b045770d215387525a0e8a66a790"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(23, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "8acf85a60949c753b918e1e5450ef804"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(24, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "every returned item should have priority \"high\"", null, null, "1d98a847a1d31752ac79475e9a633383")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "3349fe7aea0a765cb8624d43544cb6c5")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(26, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Query TODO items by done status filters to completed items", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(27, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/todo?done=true\"", null, null, "d5d2ef874997355db11e73510a0dc18a"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(28, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "e5391e0c0a401951932c0bb216db388a"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(29, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "every returned item should have done \"true\"", null, null, "fd72a8932cc37b51bafb18f3cf4a79db")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "29899eae29fe195e9cd570f3c1445341")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(31, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Query TODO items by keyword filters results", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(32, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "a TODO item exists with title \"UniqueKeyword12345\"", null, null, "29cae83c9cb11e5387f734a9ce21b833"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(33, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/todo?keyword=UniqueKeyword12345\"", null, null, "21880460331b045cb410cec1ca939247"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(34, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "732d6f96e28d84558bdbf6dd57edf33b"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(35, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "every returned item title or description should contain \"UniqueKeyword12345\"", null, null, "8de9f810eb1c3457b0e5f4b671dd5077")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "0a291d116a079b5aa9b5f7a65ded5706")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(37, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Create a new TODO item succeeds", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(38, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/todo\" with body:", new global::Io.Cucumber.Messages.Types.DocString(new global::Io.Cucumber.Messages.Types.Location(39, new System.Nullable(7)), null, "{\r\n \"id\": \"SF-SPEC-CREATE-UNIQUE\",\r\n \"title\": \"SpecFlow Created Item\",\r\n \"sect" + - "ion\": \"mvp-support\",\r\n \"priority\": \"medium\",\r\n \"description\": [\"Created by Spe" + - "cFlow test\"],\r\n \"done\": false\r\n}", "\"\"\""), null, "9876423d27d86c579c1729cb7573926b"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(49, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code is 201 or 409", null, null, "1c6da44bb3d38a5598eba6281380d31f"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(50, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the response body should contain \"id\"", null, null, "a479e146f091c45eb18cd976b8d6c1a0")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "5c33c890a8c29a59b0cd8e3d7a2a7ca2")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(52, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Create TODO with invalid section returns 409", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(53, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/todo\" with body:", new global::Io.Cucumber.Messages.Types.DocString(new global::Io.Cucumber.Messages.Types.Location(54, new System.Nullable(7)), null, "{\r\n \"id\": \"SF-SPEC-BADSECT\",\r\n \"title\": \"Bad Section Item\",\r\n \"section\": \"inva" + - "lid-section-xyz\",\r\n \"priority\": \"high\"\r\n}", "\"\"\""), null, "edf2e2410a7806539b9f24cf16a01f96"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(62, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 409", null, null, "95fd949f00011c5ab2e16e2d10d8893b")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "0bdc47c77de73a50a39ba78e8df59c88")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(64, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Create TODO with missing title returns 400", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(65, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/todo\" with body:", new global::Io.Cucumber.Messages.Types.DocString(new global::Io.Cucumber.Messages.Types.Location(66, new System.Nullable(7)), null, "{\r\n \"id\": \"SF-SPEC-NOTITLE\",\r\n \"section\": \"mvp-support\",\r\n \"priority\": \"high\"\r" + - "\n}", "\"\"\""), null, "f92e628bbb088d5c96645adb927ce47c"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(73, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 400", null, null, "230e17e0b8afc75496586363a6240cd6")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "a0fed40c6c085d5aa84747bea91ffb3b")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(75, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Get TODO by ID returns the item", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(76, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "a TODO item exists with title \"GetByIdItem\" and id stored as \"createdId\"", null, null, "13a437cdf6443f55b1c20dae0b2666ed"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(77, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/todo/{createdId}\"", null, null, "912d453f1b124c5ab5bb9fc220660ec5"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(78, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "93fa8652e3f2f65fad9adb878dd9cd27"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(79, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the response body should contain \"GetByIdItem\"", null, null, "a1c6da0c1b98ae5ebc0f711acf8f5ef5")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "fe2cfbf31a5f255f8462bcf89f8dfa0b")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(81, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Get TODO by unknown ID returns 404", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(82, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/todo/NONEXISTENT-9999\"", null, null, "48ce38a5f95a20549bd016ce8b48c0bd"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(83, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 404", null, null, "d8b6fd89cf3c96529aec052c0c79cc40")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "90373aa97d587358ada4869f26589ac8")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(85, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Update a TODO item changes its fields", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(86, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "a TODO item exists with title \"UpdateMe\" and id stored as \"updateId\"", null, null, "4060b46a431c3454881ac4ddbc514571"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(87, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I PUT to \"/mcp/todo/{updateId}\" with body:", new global::Io.Cucumber.Messages.Types.DocString(new global::Io.Cucumber.Messages.Types.Location(88, new System.Nullable(7)), null, "{\r\n \"title\": \"UpdateMe Updated\",\r\n \"done\": true\r\n}", "\"\"\""), null, "1a8819a21fe6135c80f431c1d6fb0589"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(94, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "70528571fd71fe56bcf147c902198311"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(95, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the response body should contain \"true\"", null, null, "d4ae48abb34d145c971cf370fe1a6b37")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "99c29f6419de82529d9720a030d25971")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(97, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Delete a TODO item removes it", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(98, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "a TODO item exists with title \"DeleteMe\" and id stored as \"deleteId\"", null, null, "3c554acbcd5c5e5ba560bd14166c4b82"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(99, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a DELETE request to \"/mcp/todo/{deleteId}\"", null, null, "1db6905a6d3ddb5f91ceb6a0f624c564"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(100, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "100e044040ff0852bf288ec79825e905"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(101, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/todo/{deleteId}\"", null, null, "016f88d2e27d0c508eaf336b73367b23"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(102, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 404", null, null, "b1d4c2919940ad51b580890a3343d1db")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "71fe5371a83e5751a5bbc1f72927b8e2")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(104, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Requirements analysis endpoint returns 422 when Copilot CLI unavailable", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(105, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "a TODO item exists with title \"RequirementsItem\" and id stored as \"reqId\"", null, null, "2af24eb9d4bd5151a4601ec2cc2059ea"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(106, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/todo/{reqId}/requirements\" with empty body", null, null, "8517fd5484b37b55853fe86a4479f0f8"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(107, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 422", null, null, "37e2fb75cbab545da976d18b42ecae42")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "d59ac023ad449f5cb80272038e4ba5be")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(110, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Section validation is consistent across create and update operations", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(111, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/todo\" with body:", new global::Io.Cucumber.Messages.Types.DocString(new global::Io.Cucumber.Messages.Types.Location(112, new System.Nullable(7)), null, "{ \"id\": \"SF-SPEC-DRY-001\", \"title\": \"Validator Test\", \"section\": \"mvp-app\", \"prio" + - "rity\": \"high\" }", "\"\"\""), null, "63005abb8455ed5e98e8d45cbae44919"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(115, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code is 201 or 409", null, null, "b7e93897ea9b0c588dd13b110551240c")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "a706515462a55c5cafd92a7c3132e167"))})), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Comment[] { - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(9, new System.Nullable(1)), " # FR-MCP-002 / FR-SUPPORT-010 / TEST-MCP-002"), - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(109, new System.Nullable(1)), " # TR-MCP-DRY-001 — single validator consumed by all backends")})); - } - - private static global::System.Collections.Generic.IEnumerable PicklesFunc() - { - return new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Pickle[] { - new global::Io.Cucumber.Messages.Types.Pickle("984cdf5876480c519a46d2f2c44f2005", "Features/Todo/TodoManagement.feature", "Query all TODO items returns 200 with a result", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "c6def1cfb3ea9d5f8c83160a8ad2a3ab"}), "c715dc694376da58a407ba8f65c9deb0", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "e9ea49c810ae7758978b5e05831a3df7"}), "38427b8ed9b6915bb7186aa74bda137d", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/todo\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "85a029c3e1b519529086a122967049b7"}), "c90d10fce2f6d4529decabef91f5ed39", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "976de5f179199b5f96ebabcdcab0966a"}), "4fbd7efaccefa65083f344f1614ac218", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response body should contain a \"totalCount\" field")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "87818576f666db579259adbe40427086"})), - new global::Io.Cucumber.Messages.Types.Pickle("ed78cb7776a57b56b2be059cd77ae271", "Features/Todo/TodoManagement.feature", "Query TODO items by section filters results", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "c6def1cfb3ea9d5f8c83160a8ad2a3ab"}), "2e9e9b4ab141165196b726f9e0b4f47a", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "941d368c82f0c95d9841bf461db346fa"}), "b6a8bb5257c7425e8fb8af27608843de", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/todo?section=mvp-support\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "d923cd0400a33e5eb94bea832e6cee61"}), "8c99bc7db3fa3d5382d344242ea2316e", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "2a4494bbd515b553bde715992b94040b"}), "f0fd23a26315a85fb1c2a2ae899b4e69", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "every returned item should have section \"mvp-support\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "6649ec81d10f87598b641c8ab38c34fb"})), - new global::Io.Cucumber.Messages.Types.Pickle("bcd26bbc2b4b9e5c92e9ee741423dc8f", "Features/Todo/TodoManagement.feature", "Query TODO items by priority filters results", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "c6def1cfb3ea9d5f8c83160a8ad2a3ab"}), "1eaee8ef12b99f5e9fe7fa59dcef3efb", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "cfa3b045770d215387525a0e8a66a790"}), "b391c106acf88556a01cad635a1c80b6", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/todo?priority=high\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "8acf85a60949c753b918e1e5450ef804"}), "71db291e79d19458a34fe7ecefaccd0a", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "1d98a847a1d31752ac79475e9a633383"}), "cb4ab6023fc64a5f8f13396bef8e5c25", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "every returned item should have priority \"high\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "3349fe7aea0a765cb8624d43544cb6c5"})), - new global::Io.Cucumber.Messages.Types.Pickle("081b2bc74d467a5fab037214368eb76b", "Features/Todo/TodoManagement.feature", "Query TODO items by done status filters to completed items", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "c6def1cfb3ea9d5f8c83160a8ad2a3ab"}), "5e59bd1c1a38da5fa874f06058134520", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "d5d2ef874997355db11e73510a0dc18a"}), "3e637822b7507052b0acc6ee0c200c60", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/todo?done=true\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "e5391e0c0a401951932c0bb216db388a"}), "d7ce1a60f8f54d5e84bcf2bbb3cbe522", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "fd72a8932cc37b51bafb18f3cf4a79db"}), "4ca75144b3a17454bddc31c0ac301db5", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "every returned item should have done \"true\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "29899eae29fe195e9cd570f3c1445341"})), - new global::Io.Cucumber.Messages.Types.Pickle("e33d56da79da695e9e48d31ccd6bd62f", "Features/Todo/TodoManagement.feature", "Query TODO items by keyword filters results", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "c6def1cfb3ea9d5f8c83160a8ad2a3ab"}), "afeace5e0432805fb0349a256edcf956", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "29cae83c9cb11e5387f734a9ce21b833"}), "e9d5058e66c09558826ff648eac5578f", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a TODO item exists with title \"UniqueKeyword12345\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "21880460331b045cb410cec1ca939247"}), "c685b9bc68b0f35b99ba4f0726beeee9", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/todo?keyword=UniqueKeyword12345\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "732d6f96e28d84558bdbf6dd57edf33b"}), "2aff22c898d52650aed21dc81513d0bb", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "8de9f810eb1c3457b0e5f4b671dd5077"}), "95a3fe545dd21552840ae001c6d99a1e", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "every returned item title or description should contain \"UniqueKeyword12345\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "0a291d116a079b5aa9b5f7a65ded5706"})), - new global::Io.Cucumber.Messages.Types.Pickle("6643d2694621d45ab8a051d846ac7a5e", "Features/Todo/TodoManagement.feature", "Create a new TODO item succeeds", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "c6def1cfb3ea9d5f8c83160a8ad2a3ab"}), "66729fdaf32e255f8736190cc4c153d6", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(new global::Io.Cucumber.Messages.Types.PickleStepArgument(new global::Io.Cucumber.Messages.Types.PickleDocString(null, "{\r\n \"id\": \"SF-SPEC-CREATE-UNIQUE\",\r\n \"title\": \"SpecFlow Created Item\",\r\n \"sect" + - "ion\": \"mvp-support\",\r\n \"priority\": \"medium\",\r\n \"description\": [\"Created by Spe" + - "cFlow test\"],\r\n \"done\": false\r\n}"), null), new System.Collections.Generic.List(new string[] { - "9876423d27d86c579c1729cb7573926b"}), "43ed04de3e66895592d389434d764a5c", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/todo\" with body:"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "1c6da44bb3d38a5598eba6281380d31f"}), "fb2c189a59dbf956b525f8fdeb47c5f7", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code is 201 or 409"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "a479e146f091c45eb18cd976b8d6c1a0"}), "9b2375c57da40651b57aa2570d1c1ef1", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response body should contain \"id\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "5c33c890a8c29a59b0cd8e3d7a2a7ca2"})), - new global::Io.Cucumber.Messages.Types.Pickle("c7ae55421c51db5d8b2329929928db74", "Features/Todo/TodoManagement.feature", "Create TODO with invalid section returns 409", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "c6def1cfb3ea9d5f8c83160a8ad2a3ab"}), "1d8eed2422d9e659a920079df18adf1f", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(new global::Io.Cucumber.Messages.Types.PickleStepArgument(new global::Io.Cucumber.Messages.Types.PickleDocString(null, "{\r\n \"id\": \"SF-SPEC-BADSECT\",\r\n \"title\": \"Bad Section Item\",\r\n \"section\": \"inva" + - "lid-section-xyz\",\r\n \"priority\": \"high\"\r\n}"), null), new System.Collections.Generic.List(new string[] { - "edf2e2410a7806539b9f24cf16a01f96"}), "8316547dcd92105fb39eac59f05b5c61", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/todo\" with body:"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "95fd949f00011c5ab2e16e2d10d8893b"}), "7c77077011808656ae4fc814eb01cd47", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 409")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "0bdc47c77de73a50a39ba78e8df59c88"})), - new global::Io.Cucumber.Messages.Types.Pickle("4e417104b3d2ff5682411dba5ecc2bff", "Features/Todo/TodoManagement.feature", "Create TODO with missing title returns 400", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "c6def1cfb3ea9d5f8c83160a8ad2a3ab"}), "2c32ef2708c26553b462c61f46475584", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(new global::Io.Cucumber.Messages.Types.PickleStepArgument(new global::Io.Cucumber.Messages.Types.PickleDocString(null, "{\r\n \"id\": \"SF-SPEC-NOTITLE\",\r\n \"section\": \"mvp-support\",\r\n \"priority\": \"high\"\r" + - "\n}"), null), new System.Collections.Generic.List(new string[] { - "f92e628bbb088d5c96645adb927ce47c"}), "97810c9c1a6ba65ea56fcd8bddef0d62", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/todo\" with body:"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "230e17e0b8afc75496586363a6240cd6"}), "a65cce7d0c00345b8e3003f9ad644e27", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 400")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "a0fed40c6c085d5aa84747bea91ffb3b"})), - new global::Io.Cucumber.Messages.Types.Pickle("97e9a3871d873a5180451e3042e59fb6", "Features/Todo/TodoManagement.feature", "Get TODO by ID returns the item", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "c6def1cfb3ea9d5f8c83160a8ad2a3ab"}), "a5629cc6e3e20d5a810bbdab692096a2", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "13a437cdf6443f55b1c20dae0b2666ed"}), "a9c83c2e8ba4cc528375f04abd81a938", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a TODO item exists with title \"GetByIdItem\" and id stored as \"createdId\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "912d453f1b124c5ab5bb9fc220660ec5"}), "748955c55947e453a62e4932a0a62f72", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/todo/{createdId}\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "93fa8652e3f2f65fad9adb878dd9cd27"}), "5b818f78d646675dacf15f58fce69419", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "a1c6da0c1b98ae5ebc0f711acf8f5ef5"}), "3f46d779e0255b58a5d885e9145956dc", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response body should contain \"GetByIdItem\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "fe2cfbf31a5f255f8462bcf89f8dfa0b"})), - new global::Io.Cucumber.Messages.Types.Pickle("b5e1f85b3ceca752ae85509f4012df19", "Features/Todo/TodoManagement.feature", "Get TODO by unknown ID returns 404", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "c6def1cfb3ea9d5f8c83160a8ad2a3ab"}), "8c71474ddb2da05ebeafadc3b13b2207", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "48ce38a5f95a20549bd016ce8b48c0bd"}), "da1278c20b82465eafaeefe86f67d2f0", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/todo/NONEXISTENT-9999\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "d8b6fd89cf3c96529aec052c0c79cc40"}), "704b29743fb2ce5d8e68388e175cd5e3", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 404")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "90373aa97d587358ada4869f26589ac8"})), - new global::Io.Cucumber.Messages.Types.Pickle("0bfa07c593bb1d558bfec70f10a25701", "Features/Todo/TodoManagement.feature", "Update a TODO item changes its fields", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "c6def1cfb3ea9d5f8c83160a8ad2a3ab"}), "0a132307c997925b8419aa7481201fa6", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "4060b46a431c3454881ac4ddbc514571"}), "410449161c3a435a8769ac0597e19927", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a TODO item exists with title \"UpdateMe\" and id stored as \"updateId\""), - new global::Io.Cucumber.Messages.Types.PickleStep(new global::Io.Cucumber.Messages.Types.PickleStepArgument(new global::Io.Cucumber.Messages.Types.PickleDocString(null, "{\r\n \"title\": \"UpdateMe Updated\",\r\n \"done\": true\r\n}"), null), new System.Collections.Generic.List(new string[] { - "1a8819a21fe6135c80f431c1d6fb0589"}), "ee6e95a13a08ae50b030647ecda59cf3", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I PUT to \"/mcp/todo/{updateId}\" with body:"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "70528571fd71fe56bcf147c902198311"}), "7a086c736ca0d85e8f0402f3ebb508e2", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "d4ae48abb34d145c971cf370fe1a6b37"}), "f18af88b8e1e9d5890768b4e560f9006", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response body should contain \"true\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "99c29f6419de82529d9720a030d25971"})), - new global::Io.Cucumber.Messages.Types.Pickle("5d06daa76fc20358a76de0cc3acf6361", "Features/Todo/TodoManagement.feature", "Delete a TODO item removes it", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "c6def1cfb3ea9d5f8c83160a8ad2a3ab"}), "0d144d610ef69d568e7cb3ae9eb2aefc", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "3c554acbcd5c5e5ba560bd14166c4b82"}), "7ef98e9228c037559a1a961413c1a308", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a TODO item exists with title \"DeleteMe\" and id stored as \"deleteId\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "1db6905a6d3ddb5f91ceb6a0f624c564"}), "9d13af4a764e5d5a812c6de02fd28a35", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a DELETE request to \"/mcp/todo/{deleteId}\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "100e044040ff0852bf288ec79825e905"}), "8d25b9e50f397857b47c2fae0d453a38", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "016f88d2e27d0c508eaf336b73367b23"}), "38ed4ae795fa4454ba63eaae23b36784", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/todo/{deleteId}\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "b1d4c2919940ad51b580890a3343d1db"}), "c8faaeb9482e055ba27d8f646c1e3671", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 404")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "71fe5371a83e5751a5bbc1f72927b8e2"})), - new global::Io.Cucumber.Messages.Types.Pickle("9d79edc60b389f5eb7d07603b71099b0", "Features/Todo/TodoManagement.feature", "Requirements analysis endpoint returns 422 when Copilot CLI unavailable", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "c6def1cfb3ea9d5f8c83160a8ad2a3ab"}), "9d210b3233da065c8bceba59f05ab331", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "2af24eb9d4bd5151a4601ec2cc2059ea"}), "92175539be11fa5daa14cd6d4219d28d", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a TODO item exists with title \"RequirementsItem\" and id stored as \"reqId\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "8517fd5484b37b55853fe86a4479f0f8"}), "0367b88bc5a34e5da65fa5a6ca82a9d7", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/todo/{reqId}/requirements\" with empty body"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "37e2fb75cbab545da976d18b42ecae42"}), "24021f8add7cfa588e181a6602a0fae4", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 422")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "d59ac023ad449f5cb80272038e4ba5be"})), - new global::Io.Cucumber.Messages.Types.Pickle("a4da75140b20005291288f230d9e61ee", "Features/Todo/TodoManagement.feature", "Section validation is consistent across create and update operations", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "c6def1cfb3ea9d5f8c83160a8ad2a3ab"}), "5262222291c99b518c5593a850b50e7c", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(new global::Io.Cucumber.Messages.Types.PickleStepArgument(new global::Io.Cucumber.Messages.Types.PickleDocString(null, "{ \"id\": \"SF-SPEC-DRY-001\", \"title\": \"Validator Test\", \"section\": \"mvp-app\", \"prio" + - "rity\": \"high\" }"), null), new System.Collections.Generic.List(new string[] { - "63005abb8455ed5e98e8d45cbae44919"}), "9b042450c2d53d538639539dfea4552c", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/todo\" with body:"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "b7e93897ea9b0c588dd13b110551240c"}), "5984035e21bc7754bc1d370949be8298", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code is 201 or 409")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "a706515462a55c5cafd92a7c3132e167"}))}); - } - - private static global::Reqnroll.Formatters.RuntimeSupport.FeatureLevelCucumberMessages InitializeCucumberMessages() - { - return new global::Reqnroll.Formatters.RuntimeSupport.FeatureLevelCucumberMessages(new global::System.Func(TODOManagementAPIFeature.SourceFunc), new global::System.Func(TODOManagementAPIFeature.GherkinDocumentFunc), new global::System.Func>(TODOManagementAPIFeature.PicklesFunc)); - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.InitializeAsync() - { - try - { - await this.TestInitializeAsync(); - } - catch (System.Exception e1) - { - try - { - ((global::Xunit.IAsyncLifetime)(this)).DisposeAsync(); - } - catch (System.Exception e2) - { - throw new System.AggregateException("Test initialization failed", e1, e2); - } - throw; - } - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.DisposeAsync() - { - await this.TestTearDownAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Query all TODO items returns 200 with a result")] - [global::Xunit.TraitAttribute("FeatureTitle", "TODO Management API")] - [global::Xunit.TraitAttribute("Description", "Query all TODO items returns 200 with a result")] - public async global::System.Threading.Tasks.Task QueryAllTODOItemsReturns200WithAResult() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "0"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Query all TODO items returns 200 with a result", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 11 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 12 - await testRunner.WhenAsync("I send a GET request to \"/mcp/todo\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 13 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 14 - await testRunner.AndAsync("the response body should contain a \"totalCount\" field", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Query TODO items by section filters results")] - [global::Xunit.TraitAttribute("FeatureTitle", "TODO Management API")] - [global::Xunit.TraitAttribute("Description", "Query TODO items by section filters results")] - public async global::System.Threading.Tasks.Task QueryTODOItemsBySectionFiltersResults() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "1"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Query TODO items by section filters results", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 16 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 17 - await testRunner.WhenAsync("I send a GET request to \"/mcp/todo?section=mvp-support\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 18 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 19 - await testRunner.AndAsync("every returned item should have section \"mvp-support\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Query TODO items by priority filters results")] - [global::Xunit.TraitAttribute("FeatureTitle", "TODO Management API")] - [global::Xunit.TraitAttribute("Description", "Query TODO items by priority filters results")] - public async global::System.Threading.Tasks.Task QueryTODOItemsByPriorityFiltersResults() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "2"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Query TODO items by priority filters results", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 21 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 22 - await testRunner.WhenAsync("I send a GET request to \"/mcp/todo?priority=high\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 23 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 24 - await testRunner.AndAsync("every returned item should have priority \"high\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Query TODO items by done status filters to completed items")] - [global::Xunit.TraitAttribute("FeatureTitle", "TODO Management API")] - [global::Xunit.TraitAttribute("Description", "Query TODO items by done status filters to completed items")] - public async global::System.Threading.Tasks.Task QueryTODOItemsByDoneStatusFiltersToCompletedItems() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "3"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Query TODO items by done status filters to completed items", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 26 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 27 - await testRunner.WhenAsync("I send a GET request to \"/mcp/todo?done=true\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 28 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 29 - await testRunner.AndAsync("every returned item should have done \"true\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Query TODO items by keyword filters results")] - [global::Xunit.TraitAttribute("FeatureTitle", "TODO Management API")] - [global::Xunit.TraitAttribute("Description", "Query TODO items by keyword filters results")] - public async global::System.Threading.Tasks.Task QueryTODOItemsByKeywordFiltersResults() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "4"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Query TODO items by keyword filters results", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 31 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 32 - await testRunner.GivenAsync("a TODO item exists with title \"UniqueKeyword12345\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 33 - await testRunner.WhenAsync("I send a GET request to \"/mcp/todo?keyword=UniqueKeyword12345\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 34 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 35 - await testRunner.AndAsync("every returned item title or description should contain \"UniqueKeyword12345\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Create a new TODO item succeeds")] - [global::Xunit.TraitAttribute("FeatureTitle", "TODO Management API")] - [global::Xunit.TraitAttribute("Description", "Create a new TODO item succeeds")] - public async global::System.Threading.Tasks.Task CreateANewTODOItemSucceeds() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "5"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Create a new TODO item succeeds", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 37 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 38 - await testRunner.WhenAsync("I POST to \"/mcp/todo\" with body:", "{\r\n \"id\": \"SF-SPEC-CREATE-UNIQUE\",\r\n \"title\": \"SpecFlow Created Item\",\r\n \"sect" + - "ion\": \"mvp-support\",\r\n \"priority\": \"medium\",\r\n \"description\": [\"Created by Spe" + - "cFlow test\"],\r\n \"done\": false\r\n}", ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 49 - await testRunner.ThenAsync("the response status code is 201 or 409", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 50 - await testRunner.AndAsync("the response body should contain \"id\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Create TODO with invalid section returns 409")] - [global::Xunit.TraitAttribute("FeatureTitle", "TODO Management API")] - [global::Xunit.TraitAttribute("Description", "Create TODO with invalid section returns 409")] - public async global::System.Threading.Tasks.Task CreateTODOWithInvalidSectionReturns409() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "6"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Create TODO with invalid section returns 409", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 52 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 53 - await testRunner.WhenAsync("I POST to \"/mcp/todo\" with body:", "{\r\n \"id\": \"SF-SPEC-BADSECT\",\r\n \"title\": \"Bad Section Item\",\r\n \"section\": \"inva" + - "lid-section-xyz\",\r\n \"priority\": \"high\"\r\n}", ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 62 - await testRunner.ThenAsync("the response status code should be 409", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Create TODO with missing title returns 400")] - [global::Xunit.TraitAttribute("FeatureTitle", "TODO Management API")] - [global::Xunit.TraitAttribute("Description", "Create TODO with missing title returns 400")] - public async global::System.Threading.Tasks.Task CreateTODOWithMissingTitleReturns400() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "7"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Create TODO with missing title returns 400", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 64 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 65 - await testRunner.WhenAsync("I POST to \"/mcp/todo\" with body:", "{\r\n \"id\": \"SF-SPEC-NOTITLE\",\r\n \"section\": \"mvp-support\",\r\n \"priority\": \"high\"\r" + - "\n}", ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 73 - await testRunner.ThenAsync("the response status code should be 400", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Get TODO by ID returns the item")] - [global::Xunit.TraitAttribute("FeatureTitle", "TODO Management API")] - [global::Xunit.TraitAttribute("Description", "Get TODO by ID returns the item")] - public async global::System.Threading.Tasks.Task GetTODOByIDReturnsTheItem() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "8"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Get TODO by ID returns the item", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 75 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 76 - await testRunner.GivenAsync("a TODO item exists with title \"GetByIdItem\" and id stored as \"createdId\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 77 - await testRunner.WhenAsync("I send a GET request to \"/mcp/todo/{createdId}\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 78 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 79 - await testRunner.AndAsync("the response body should contain \"GetByIdItem\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Get TODO by unknown ID returns 404")] - [global::Xunit.TraitAttribute("FeatureTitle", "TODO Management API")] - [global::Xunit.TraitAttribute("Description", "Get TODO by unknown ID returns 404")] - public async global::System.Threading.Tasks.Task GetTODOByUnknownIDReturns404() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "9"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Get TODO by unknown ID returns 404", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 81 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 82 - await testRunner.WhenAsync("I send a GET request to \"/mcp/todo/NONEXISTENT-9999\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 83 - await testRunner.ThenAsync("the response status code should be 404", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Update a TODO item changes its fields")] - [global::Xunit.TraitAttribute("FeatureTitle", "TODO Management API")] - [global::Xunit.TraitAttribute("Description", "Update a TODO item changes its fields")] - public async global::System.Threading.Tasks.Task UpdateATODOItemChangesItsFields() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "10"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Update a TODO item changes its fields", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 85 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 86 - await testRunner.GivenAsync("a TODO item exists with title \"UpdateMe\" and id stored as \"updateId\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 87 - await testRunner.WhenAsync("I PUT to \"/mcp/todo/{updateId}\" with body:", "{\r\n \"title\": \"UpdateMe Updated\",\r\n \"done\": true\r\n}", ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 94 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 95 - await testRunner.AndAsync("the response body should contain \"true\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Delete a TODO item removes it")] - [global::Xunit.TraitAttribute("FeatureTitle", "TODO Management API")] - [global::Xunit.TraitAttribute("Description", "Delete a TODO item removes it")] - public async global::System.Threading.Tasks.Task DeleteATODOItemRemovesIt() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "11"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Delete a TODO item removes it", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 97 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 98 - await testRunner.GivenAsync("a TODO item exists with title \"DeleteMe\" and id stored as \"deleteId\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 99 - await testRunner.WhenAsync("I send a DELETE request to \"/mcp/todo/{deleteId}\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 100 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 101 - await testRunner.WhenAsync("I send a GET request to \"/mcp/todo/{deleteId}\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 102 - await testRunner.ThenAsync("the response status code should be 404", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Requirements analysis endpoint returns 422 when Copilot CLI unavailable")] - [global::Xunit.TraitAttribute("FeatureTitle", "TODO Management API")] - [global::Xunit.TraitAttribute("Description", "Requirements analysis endpoint returns 422 when Copilot CLI unavailable")] - public async global::System.Threading.Tasks.Task RequirementsAnalysisEndpointReturns422WhenCopilotCLIUnavailable() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "12"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Requirements analysis endpoint returns 422 when Copilot CLI unavailable", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 104 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 105 - await testRunner.GivenAsync("a TODO item exists with title \"RequirementsItem\" and id stored as \"reqId\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 106 - await testRunner.WhenAsync("I POST to \"/mcp/todo/{reqId}/requirements\" with empty body", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 107 - await testRunner.ThenAsync("the response status code should be 422", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Section validation is consistent across create and update operations")] - [global::Xunit.TraitAttribute("FeatureTitle", "TODO Management API")] - [global::Xunit.TraitAttribute("Description", "Section validation is consistent across create and update operations")] - public async global::System.Threading.Tasks.Task SectionValidationIsConsistentAcrossCreateAndUpdateOperations() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "13"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Section validation is consistent across create and update operations", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 110 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 111 - await testRunner.WhenAsync("I POST to \"/mcp/todo\" with body:", "{ \"id\": \"SF-SPEC-DRY-001\", \"title\": \"Validator Test\", \"section\": \"mvp-app\", \"prio" + - "rity\": \"high\" }", ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 115 - await testRunner.ThenAsync("the response status code is 201 or 409", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Reqnroll", "3.0.0.0")] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - public class FixtureData : object, global::Xunit.IAsyncLifetime - { - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.InitializeAsync() - { - await TODOManagementAPIFeature.FeatureSetupAsync(); - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.DisposeAsync() - { - await TODOManagementAPIFeature.FeatureTearDownAsync(); - } - } - } -} -#pragma warning restore -#endregion diff --git a/tests/McpServer.SpecFlow.Tests/Features/ToolRegistry/ToolBucketManagement.feature b/tests/McpServer.SpecFlow.Tests/Features/ToolRegistry/ToolBucketManagement.feature deleted file mode 100644 index d07b1691..00000000 --- a/tests/McpServer.SpecFlow.Tests/Features/ToolRegistry/ToolBucketManagement.feature +++ /dev/null @@ -1,72 +0,0 @@ -Feature: Tool Bucket Management - As an AI agent - I want to browse, install, and sync tools from GitHub-backed bucket repositories - So that I can easily install tool definitions from remote repositories - - Background: - Given the MCP server is running - - # TR-MCP-TR-002 / TR-MCP-TR-003 / FR-MCP-022 - - Scenario: List tool buckets returns 200 - When I send a GET request to "/mcp/tools/buckets" - Then the response status code should be 200 - And the response body is valid JSON - - Scenario: Add tool bucket returns 201 - When I POST to "/mcp/tools/buckets" with body: - """ - { - "name": "specflow-test-bucket", - "owner": "sharpninja", - "repo": "McpServer", - "branch": "main", - "manifestPath": "docs/stdio-tool-contract.json" - } - """ - Then the response status code should be 201 - And I delete the bucket named "specflow-test-bucket" - - Scenario: Add duplicate bucket name returns 409 - Given a bucket exists with name "dup-bucket" - When I POST to "/mcp/tools/buckets" with body: - """ - { - "name": "dup-bucket", - "owner": "sharpninja", - "repo": "McpServer", - "branch": "main" - } - """ - Then the response status code should be 409 - And I delete the bucket named "dup-bucket" - - Scenario: Delete bucket returns 200 - Given a bucket exists with name "delete-bucket-test" - When I send a DELETE request to "/mcp/tools/buckets/delete-bucket-test" - Then the response status code should be 200 - - Scenario: Browse bucket manifest returns 200 or 404 gracefully - Given a bucket exists with name "browse-bucket" - When I send a GET request to "/mcp/tools/buckets/browse-bucket/browse" - Then the response status code is 200 or 404 - And I delete the bucket named "browse-bucket" - - Scenario: Default buckets are seeded on startup and are idempotent - # FR-MCP-022 / TR-MCP-TR-003 — EnsureDefaultBucketsAsync is called on startup - When I send a GET request to "/mcp/tools/buckets" - Then the response status code should be 200 - # Subsequent GET should return the same buckets (idempotent) - When I send a GET request to "/mcp/tools/buckets" - Then the response status code should be 200 - - Scenario: Bucket list read endpoint is publicly accessible without API key - When I send a GET request to "/mcp/tools/buckets" without an API key - Then the response status code should be 200 - - Scenario: Bucket write endpoint requires API key when configured - When I POST to "/mcp/tools/buckets" without an API key with body: - """ - { "name": "nokey-bucket", "owner": "test", "repo": "test", "branch": "main" } - """ - Then the response status code is 201 or 401 diff --git a/tests/McpServer.SpecFlow.Tests/Features/ToolRegistry/ToolBucketManagement.feature.cs b/tests/McpServer.SpecFlow.Tests/Features/ToolRegistry/ToolBucketManagement.feature.cs deleted file mode 100644 index 8bd93358..00000000 --- a/tests/McpServer.SpecFlow.Tests/Features/ToolRegistry/ToolBucketManagement.feature.cs +++ /dev/null @@ -1,645 +0,0 @@ -// ------------------------------------------------------------------------------ -// -// This code was generated by Reqnroll (https://www.reqnroll.net/). -// Reqnroll Version:3.0.0.0 -// Reqnroll Generator Version:3.0.0.0 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -// ------------------------------------------------------------------------------ -#region Designer generated code -#pragma warning disable -using Reqnroll; -namespace McpServer.SpecFlow.Tests.Features.ToolRegistry -{ - - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Reqnroll", "3.0.0.0")] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - public partial class ToolBucketManagementFeature : object, global::Xunit.IClassFixture, global::Xunit.IAsyncLifetime - { - - private global::Reqnroll.ITestRunner testRunner; - - private static string[] featureTags = ((string[])(null)); - - private static global::Reqnroll.FeatureInfo featureInfo = new global::Reqnroll.FeatureInfo(new global::System.Globalization.CultureInfo("en-US"), "Features/ToolRegistry", "Tool Bucket Management", " As an AI agent\r\n I want to browse, install, and sync tools from GitHub-backed " + - "bucket repositories\r\n So that I can easily install tool definitions from remote" + - " repositories", global::Reqnroll.ProgrammingLanguage.CSharp, featureTags, InitializeCucumberMessages()); - - private global::Xunit.Abstractions.ITestOutputHelper _testOutputHelper; - -#line 1 "ToolBucketManagement.feature" -#line hidden - - public ToolBucketManagementFeature(ToolBucketManagementFeature.FixtureData fixtureData, global::Xunit.Abstractions.ITestOutputHelper testOutputHelper) - { - this._testOutputHelper = testOutputHelper; - } - - public static async global::System.Threading.Tasks.Task FeatureSetupAsync() - { - } - - public static async global::System.Threading.Tasks.Task FeatureTearDownAsync() - { - await global::Reqnroll.TestRunnerManager.ReleaseFeatureAsync(featureInfo); - } - - public async global::System.Threading.Tasks.Task TestInitializeAsync() - { - testRunner = global::Reqnroll.TestRunnerManager.GetTestRunnerForAssembly(featureHint: featureInfo); - try - { - if (((testRunner.FeatureContext != null) - && (testRunner.FeatureContext.FeatureInfo.Equals(featureInfo) == false))) - { - await testRunner.OnFeatureEndAsync(); - } - } - finally - { - if (((testRunner.FeatureContext != null) - && testRunner.FeatureContext.BeforeFeatureHookFailed)) - { - throw new global::Reqnroll.ReqnrollException("Scenario skipped because of previous before feature hook error"); - } - if ((testRunner.FeatureContext == null)) - { - await testRunner.OnFeatureStartAsync(featureInfo); - } - } - } - - public async global::System.Threading.Tasks.Task TestTearDownAsync() - { - if ((testRunner == null)) - { - return; - } - try - { - await testRunner.OnScenarioEndAsync(); - } - finally - { - global::Reqnroll.TestRunnerManager.ReleaseTestRunner(testRunner); - testRunner = null; - } - } - - public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, global::Reqnroll.RuleInfo ruleInfo) - { - testRunner.OnScenarioInitialize(scenarioInfo, ruleInfo); - testRunner.ScenarioContext.ScenarioContainer.RegisterInstanceAs(_testOutputHelper); - } - - public async global::System.Threading.Tasks.Task ScenarioStartAsync() - { - await testRunner.OnScenarioStartAsync(); - } - - public async global::System.Threading.Tasks.Task ScenarioCleanupAsync() - { - await testRunner.CollectScenarioErrorsAsync(); - } - - public virtual async global::System.Threading.Tasks.Task FeatureBackgroundAsync() - { -#line 6 - #line hidden -#line 7 - await testRunner.GivenAsync("the MCP server is running", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden - } - - private static global::Io.Cucumber.Messages.Types.Source SourceFunc() - { - return new global::Io.Cucumber.Messages.Types.Source("Features/ToolRegistry/ToolBucketManagement.feature", "Feature: Tool Bucket Management\r\n As an AI agent\r\n I want to browse, install, a" + - "nd sync tools from GitHub-backed bucket repositories\r\n So that I can easily ins" + - "tall tool definitions from remote repositories\r\n\r\n Background:\r\n Given the M" + - "CP server is running\r\n\r\n # TR-MCP-TR-002 / TR-MCP-TR-003 / FR-MCP-022\r\n\r\n Scen" + - "ario: List tool buckets returns 200\r\n When I send a GET request to \"/mcp/tool" + - "s/buckets\"\r\n Then the response status code should be 200\r\n And the respons" + - "e body is valid JSON\r\n\r\n Scenario: Add tool bucket returns 201\r\n When I POST" + - " to \"/mcp/tools/buckets\" with body:\r\n \"\"\"\r\n {\r\n \"name\": \"specfl" + - "ow-test-bucket\",\r\n \"owner\": \"sharpninja\",\r\n \"repo\": \"McpServer\",\r\n" + - " \"branch\": \"main\",\r\n \"manifestPath\": \"docs/stdio-tool-contract.jso" + - "n\"\r\n }\r\n \"\"\"\r\n Then the response status code should be 201\r\n And" + - " I delete the bucket named \"specflow-test-bucket\"\r\n\r\n Scenario: Add duplicate b" + - "ucket name returns 409\r\n Given a bucket exists with name \"dup-bucket\"\r\n Wh" + - "en I POST to \"/mcp/tools/buckets\" with body:\r\n \"\"\"\r\n {\r\n \"name\"" + - ": \"dup-bucket\",\r\n \"owner\": \"sharpninja\",\r\n \"repo\": \"McpServer\",\r\n " + - " \"branch\": \"main\"\r\n }\r\n \"\"\"\r\n Then the response status code s" + - "hould be 409\r\n And I delete the bucket named \"dup-bucket\"\r\n\r\n Scenario: Dele" + - "te bucket returns 200\r\n Given a bucket exists with name \"delete-bucket-test\"\r" + - "\n When I send a DELETE request to \"/mcp/tools/buckets/delete-bucket-test\"\r\n " + - " Then the response status code should be 200\r\n\r\n Scenario: Browse bucket manif" + - "est returns 200 or 404 gracefully\r\n Given a bucket exists with name \"browse-b" + - "ucket\"\r\n When I send a GET request to \"/mcp/tools/buckets/browse-bucket/brows" + - "e\"\r\n Then the response status code is 200 or 404\r\n And I delete the bucket" + - " named \"browse-bucket\"\r\n\r\n Scenario: Default buckets are seeded on startup and " + - "are idempotent\r\n # FR-MCP-022 / TR-MCP-TR-003 — EnsureDefaultBucketsAsync is " + - "called on startup\r\n When I send a GET request to \"/mcp/tools/buckets\"\r\n Th" + - "en the response status code should be 200\r\n # Subsequent GET should return th" + - "e same buckets (idempotent)\r\n When I send a GET request to \"/mcp/tools/bucket" + - "s\"\r\n Then the response status code should be 200\r\n\r\n Scenario: Bucket list r" + - "ead endpoint is publicly accessible without API key\r\n When I send a GET reque" + - "st to \"/mcp/tools/buckets\" without an API key\r\n Then the response status code" + - " should be 200\r\n\r\n Scenario: Bucket write endpoint requires API key when config" + - "ured\r\n When I POST to \"/mcp/tools/buckets\" without an API key with body:\r\n " + - " \"\"\"\r\n { \"name\": \"nokey-bucket\", \"owner\": \"test\", \"repo\": \"test\", \"branch" + - "\": \"main\" }\r\n \"\"\"\r\n Then the response status code is 201 or 401\r\n", global::Io.Cucumber.Messages.Types.SourceMediaType.TEXT_X_CUCUMBER_GHERKIN_PLAIN); - } - - private static global::Io.Cucumber.Messages.Types.GherkinDocument GherkinDocumentFunc() - { - return new global::Io.Cucumber.Messages.Types.GherkinDocument("Features/ToolRegistry/ToolBucketManagement.feature", new global::Io.Cucumber.Messages.Types.Feature(new global::Io.Cucumber.Messages.Types.Location(1, new System.Nullable(1)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "en-US", "Feature", "Tool Bucket Management", " As an AI agent\r\n I want to browse, install, and sync tools from GitHub-backed " + - "bucket repositories\r\n So that I can easily install tool definitions from remote" + - " repositories", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.FeatureChild[] { - new global::Io.Cucumber.Messages.Types.FeatureChild(null, new global::Io.Cucumber.Messages.Types.Background(new global::Io.Cucumber.Messages.Types.Location(6, new System.Nullable(3)), "Background", "", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(7, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "the MCP server is running", null, null, "cb34314b8ae6d8519e6bc6dec65ed0bd")}), "62335601f68b485bbcc4f9c0a4a95d65"), null), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(11, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "List tool buckets returns 200", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(12, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/tools/buckets\"", null, null, "25ec04683883335ebf1c349c973b03e8"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(13, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "fe303a0375df655aa811127297691437"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(14, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the response body is valid JSON", null, null, "aa2872698e765f598bcb8a7a850a8e38")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "40b0fd9c1ed57e52bcbda35c6a92cbc0")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(16, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Add tool bucket returns 201", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(17, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/tools/buckets\" with body:", new global::Io.Cucumber.Messages.Types.DocString(new global::Io.Cucumber.Messages.Types.Location(18, new System.Nullable(7)), null, "{\r\n \"name\": \"specflow-test-bucket\",\r\n \"owner\": \"sharpninja\",\r\n \"repo\": \"McpSer" + - "ver\",\r\n \"branch\": \"main\",\r\n \"manifestPath\": \"docs/stdio-tool-contract.json\"\r\n}" + - "", "\"\"\""), null, "466982b946f3da53bf9a6d650d32045a"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(27, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 201", null, null, "5950c85369e5e45ea286b160f6948291"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(28, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I delete the bucket named \"specflow-test-bucket\"", null, null, "2e37f4cff26e435a8b9a3736d8070686")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "80fe611d8087ad5793462ff3801486df")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(30, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Add duplicate bucket name returns 409", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(31, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "a bucket exists with name \"dup-bucket\"", null, null, "5e86d49517a38c5ab1256685019b6572"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(32, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/tools/buckets\" with body:", new global::Io.Cucumber.Messages.Types.DocString(new global::Io.Cucumber.Messages.Types.Location(33, new System.Nullable(7)), null, "{\r\n \"name\": \"dup-bucket\",\r\n \"owner\": \"sharpninja\",\r\n \"repo\": \"McpServer\",\r\n \"" + - "branch\": \"main\"\r\n}", "\"\"\""), null, "4c8747f5bcac4256bb647c604963fa84"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(41, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 409", null, null, "db235757de1f62579a82f07caf9b1cfc"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(42, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I delete the bucket named \"dup-bucket\"", null, null, "7d3c35b01bf90e568675da3e80345e76")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "96268a79e4bc0a5486ed40b4ffa5a5f2")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(44, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Delete bucket returns 200", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(45, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "a bucket exists with name \"delete-bucket-test\"", null, null, "9f9123e2fe807654bd478488fd04d843"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(46, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a DELETE request to \"/mcp/tools/buckets/delete-bucket-test\"", null, null, "85766526e2e3fe57a4460315f66356a1"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(47, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "af79922621c89259983ea8b9c0a5ab4c")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "94158e9076c9545f92301a9154af3816")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(49, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Browse bucket manifest returns 200 or 404 gracefully", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(50, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "a bucket exists with name \"browse-bucket\"", null, null, "0454f990192ef35ea1bd1862fd0839c5"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(51, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/tools/buckets/browse-bucket/browse\"", null, null, "ad74e94bf9867a5c9667120fd4de658e"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(52, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code is 200 or 404", null, null, "79440fb57600375482a922eabdec5c5b"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(53, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I delete the bucket named \"browse-bucket\"", null, null, "4e0d43ec408afb5fa67eca1e4cb7ba71")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "fa99cf9cd452655d85e8b1e53b657693")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(55, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Default buckets are seeded on startup and are idempotent", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(57, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/tools/buckets\"", null, null, "dba63ef00868f3568712291de8d57879"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(58, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "fba1c16c09f02c52bade3a45313103d0"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(60, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/tools/buckets\"", null, null, "f446b8349e589d56890622fb48a05b49"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(61, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "509f49e8a053b952acd1299061445d03")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "a028bd0cbcc82e5895d30ea09e3e41c2")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(63, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Bucket list read endpoint is publicly accessible without API key", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(64, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/tools/buckets\" without an API key", null, null, "b461704d0226505e9ca6617ea15fc9e4"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(65, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "966f0e4f7c7a635c91950e083919b770")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "88065a7063b232588bd2ef9a82c004fb")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(67, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Bucket write endpoint requires API key when configured", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(68, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/tools/buckets\" without an API key with body:", new global::Io.Cucumber.Messages.Types.DocString(new global::Io.Cucumber.Messages.Types.Location(69, new System.Nullable(7)), null, "{ \"name\": \"nokey-bucket\", \"owner\": \"test\", \"repo\": \"test\", \"branch\": \"main\" }", "\"\"\""), null, "6422d85530c29d54ae3159d1eebfabaa"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(72, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code is 201 or 401", null, null, "54c734bb1fab8959803dfc7a09f6c114")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "26b760e02bdf2855a72817b056d84ebb"))})), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Comment[] { - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(9, new System.Nullable(1)), " # TR-MCP-TR-002 / TR-MCP-TR-003 / FR-MCP-022"), - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(56, new System.Nullable(1)), " # FR-MCP-022 / TR-MCP-TR-003 — EnsureDefaultBucketsAsync is called on startup" + - ""), - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(59, new System.Nullable(1)), " # Subsequent GET should return the same buckets (idempotent)")})); - } - - private static global::System.Collections.Generic.IEnumerable PicklesFunc() - { - return new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Pickle[] { - new global::Io.Cucumber.Messages.Types.Pickle("b2314cd8a5cdf05d87f74b5e72e97a02", "Features/ToolRegistry/ToolBucketManagement.feature", "List tool buckets returns 200", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "cb34314b8ae6d8519e6bc6dec65ed0bd"}), "bc3ed6187dcd6357b3f0db9bc6ae5b88", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "25ec04683883335ebf1c349c973b03e8"}), "11fe4464697c235d9eed96bd2e9904f6", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/tools/buckets\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "fe303a0375df655aa811127297691437"}), "44f56638d21f59548b56af2bfad7229e", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "aa2872698e765f598bcb8a7a850a8e38"}), "e6c792a41a3578559f7cb88e253d0d99", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response body is valid JSON")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "40b0fd9c1ed57e52bcbda35c6a92cbc0"})), - new global::Io.Cucumber.Messages.Types.Pickle("e9f843824aa4455e98a58de99df519d0", "Features/ToolRegistry/ToolBucketManagement.feature", "Add tool bucket returns 201", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "cb34314b8ae6d8519e6bc6dec65ed0bd"}), "570c8b8b40eb865e97fda49e5b0cbc62", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(new global::Io.Cucumber.Messages.Types.PickleStepArgument(new global::Io.Cucumber.Messages.Types.PickleDocString(null, "{\r\n \"name\": \"specflow-test-bucket\",\r\n \"owner\": \"sharpninja\",\r\n \"repo\": \"McpSer" + - "ver\",\r\n \"branch\": \"main\",\r\n \"manifestPath\": \"docs/stdio-tool-contract.json\"\r\n}" + - ""), null), new System.Collections.Generic.List(new string[] { - "466982b946f3da53bf9a6d650d32045a"}), "7a78b2f1ed52955394f9a7290af28329", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/tools/buckets\" with body:"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "5950c85369e5e45ea286b160f6948291"}), "af75c4d8f0d183509bc82dcc0edf041d", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 201"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "2e37f4cff26e435a8b9a3736d8070686"}), "a9d4031649e0185f836a1ab1edcb3224", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "I delete the bucket named \"specflow-test-bucket\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "80fe611d8087ad5793462ff3801486df"})), - new global::Io.Cucumber.Messages.Types.Pickle("63d53f136b147a5dbd0c19b9f59191d0", "Features/ToolRegistry/ToolBucketManagement.feature", "Add duplicate bucket name returns 409", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "cb34314b8ae6d8519e6bc6dec65ed0bd"}), "a78724902484d35a910046c09d5f6ac1", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "5e86d49517a38c5ab1256685019b6572"}), "447cb7966f222351be796cd1255848c7", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a bucket exists with name \"dup-bucket\""), - new global::Io.Cucumber.Messages.Types.PickleStep(new global::Io.Cucumber.Messages.Types.PickleStepArgument(new global::Io.Cucumber.Messages.Types.PickleDocString(null, "{\r\n \"name\": \"dup-bucket\",\r\n \"owner\": \"sharpninja\",\r\n \"repo\": \"McpServer\",\r\n \"" + - "branch\": \"main\"\r\n}"), null), new System.Collections.Generic.List(new string[] { - "4c8747f5bcac4256bb647c604963fa84"}), "0a8bcf6c6e1c895195e4e2504de56d9e", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/tools/buckets\" with body:"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "db235757de1f62579a82f07caf9b1cfc"}), "b2132341827f7e51bdcf603c55edf901", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 409"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "7d3c35b01bf90e568675da3e80345e76"}), "827b89a13cf73859a8471583530b732e", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "I delete the bucket named \"dup-bucket\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "96268a79e4bc0a5486ed40b4ffa5a5f2"})), - new global::Io.Cucumber.Messages.Types.Pickle("516be3f35604115f9eb1314a436316e8", "Features/ToolRegistry/ToolBucketManagement.feature", "Delete bucket returns 200", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "cb34314b8ae6d8519e6bc6dec65ed0bd"}), "449c6a0bfd249e5aa3508b684bf9a10d", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "9f9123e2fe807654bd478488fd04d843"}), "e236ea964951365ba34da9b23be0b47f", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a bucket exists with name \"delete-bucket-test\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "85766526e2e3fe57a4460315f66356a1"}), "2341129fb8eb8650bec2ddd3cdaf759c", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a DELETE request to \"/mcp/tools/buckets/delete-bucket-test\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "af79922621c89259983ea8b9c0a5ab4c"}), "d6ae33961d9f94509bc2ec34ae403ab4", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "94158e9076c9545f92301a9154af3816"})), - new global::Io.Cucumber.Messages.Types.Pickle("79dd01b5400ccd5ea602c2eaf3191218", "Features/ToolRegistry/ToolBucketManagement.feature", "Browse bucket manifest returns 200 or 404 gracefully", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "cb34314b8ae6d8519e6bc6dec65ed0bd"}), "ff1f9d330c65995f85c9c5b80567d183", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "0454f990192ef35ea1bd1862fd0839c5"}), "2729ac2d7f574b539b74467379b0af92", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a bucket exists with name \"browse-bucket\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "ad74e94bf9867a5c9667120fd4de658e"}), "69edd560adcb5552963a544c3e807f4a", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/tools/buckets/browse-bucket/browse\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "79440fb57600375482a922eabdec5c5b"}), "8621763f7fe74a5fbfab8bbf25482b79", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code is 200 or 404"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "4e0d43ec408afb5fa67eca1e4cb7ba71"}), "c91bef71e1accc5e884c3f2fdf91a5fd", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "I delete the bucket named \"browse-bucket\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "fa99cf9cd452655d85e8b1e53b657693"})), - new global::Io.Cucumber.Messages.Types.Pickle("70b344133d815752b3105bbe9739b6d7", "Features/ToolRegistry/ToolBucketManagement.feature", "Default buckets are seeded on startup and are idempotent", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "cb34314b8ae6d8519e6bc6dec65ed0bd"}), "72cd527a3961bf59a9c5e547a09d2aef", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "dba63ef00868f3568712291de8d57879"}), "7d9ff46cb46b6050951aff19698bbfd3", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/tools/buckets\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "fba1c16c09f02c52bade3a45313103d0"}), "c979f09e8fbb0b55bc4c6c59ea88c965", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "f446b8349e589d56890622fb48a05b49"}), "d601169b26ef7250ab06b9aed3b8bcdf", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/tools/buckets\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "509f49e8a053b952acd1299061445d03"}), "fca86439b460a559a60619014a5db985", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "a028bd0cbcc82e5895d30ea09e3e41c2"})), - new global::Io.Cucumber.Messages.Types.Pickle("09a41ceeff50675f85b242e2a610a7d0", "Features/ToolRegistry/ToolBucketManagement.feature", "Bucket list read endpoint is publicly accessible without API key", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "cb34314b8ae6d8519e6bc6dec65ed0bd"}), "c4ddedd058009759a897b0281c38e702", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "b461704d0226505e9ca6617ea15fc9e4"}), "1fdc27338573dc58991c97a131408a47", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/tools/buckets\" without an API key"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "966f0e4f7c7a635c91950e083919b770"}), "625958b168d0375494f8319df920313a", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "88065a7063b232588bd2ef9a82c004fb"})), - new global::Io.Cucumber.Messages.Types.Pickle("3119aa6af5e6435dafab74375522a442", "Features/ToolRegistry/ToolBucketManagement.feature", "Bucket write endpoint requires API key when configured", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "cb34314b8ae6d8519e6bc6dec65ed0bd"}), "30781e61145efe50a25ae781060e10e3", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(new global::Io.Cucumber.Messages.Types.PickleStepArgument(new global::Io.Cucumber.Messages.Types.PickleDocString(null, "{ \"name\": \"nokey-bucket\", \"owner\": \"test\", \"repo\": \"test\", \"branch\": \"main\" }"), null), new System.Collections.Generic.List(new string[] { - "6422d85530c29d54ae3159d1eebfabaa"}), "d1762faf6c43105da5110b221264b392", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/tools/buckets\" without an API key with body:"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "54c734bb1fab8959803dfc7a09f6c114"}), "a4ca1b0bd278015e9ef02899b3418acc", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code is 201 or 401")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "26b760e02bdf2855a72817b056d84ebb"}))}); - } - - private static global::Reqnroll.Formatters.RuntimeSupport.FeatureLevelCucumberMessages InitializeCucumberMessages() - { - return new global::Reqnroll.Formatters.RuntimeSupport.FeatureLevelCucumberMessages(new global::System.Func(ToolBucketManagementFeature.SourceFunc), new global::System.Func(ToolBucketManagementFeature.GherkinDocumentFunc), new global::System.Func>(ToolBucketManagementFeature.PicklesFunc)); - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.InitializeAsync() - { - try - { - await this.TestInitializeAsync(); - } - catch (System.Exception e1) - { - try - { - ((global::Xunit.IAsyncLifetime)(this)).DisposeAsync(); - } - catch (System.Exception e2) - { - throw new System.AggregateException("Test initialization failed", e1, e2); - } - throw; - } - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.DisposeAsync() - { - await this.TestTearDownAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="List tool buckets returns 200")] - [global::Xunit.TraitAttribute("FeatureTitle", "Tool Bucket Management")] - [global::Xunit.TraitAttribute("Description", "List tool buckets returns 200")] - public async global::System.Threading.Tasks.Task ListToolBucketsReturns200() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "0"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("List tool buckets returns 200", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 11 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 12 - await testRunner.WhenAsync("I send a GET request to \"/mcp/tools/buckets\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 13 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 14 - await testRunner.AndAsync("the response body is valid JSON", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Add tool bucket returns 201")] - [global::Xunit.TraitAttribute("FeatureTitle", "Tool Bucket Management")] - [global::Xunit.TraitAttribute("Description", "Add tool bucket returns 201")] - public async global::System.Threading.Tasks.Task AddToolBucketReturns201() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "1"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Add tool bucket returns 201", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 16 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 17 - await testRunner.WhenAsync("I POST to \"/mcp/tools/buckets\" with body:", "{\r\n \"name\": \"specflow-test-bucket\",\r\n \"owner\": \"sharpninja\",\r\n \"repo\": \"McpSer" + - "ver\",\r\n \"branch\": \"main\",\r\n \"manifestPath\": \"docs/stdio-tool-contract.json\"\r\n}" + - "", ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 27 - await testRunner.ThenAsync("the response status code should be 201", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 28 - await testRunner.AndAsync("I delete the bucket named \"specflow-test-bucket\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Add duplicate bucket name returns 409")] - [global::Xunit.TraitAttribute("FeatureTitle", "Tool Bucket Management")] - [global::Xunit.TraitAttribute("Description", "Add duplicate bucket name returns 409")] - public async global::System.Threading.Tasks.Task AddDuplicateBucketNameReturns409() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "2"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Add duplicate bucket name returns 409", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 30 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 31 - await testRunner.GivenAsync("a bucket exists with name \"dup-bucket\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 32 - await testRunner.WhenAsync("I POST to \"/mcp/tools/buckets\" with body:", "{\r\n \"name\": \"dup-bucket\",\r\n \"owner\": \"sharpninja\",\r\n \"repo\": \"McpServer\",\r\n \"" + - "branch\": \"main\"\r\n}", ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 41 - await testRunner.ThenAsync("the response status code should be 409", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 42 - await testRunner.AndAsync("I delete the bucket named \"dup-bucket\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Delete bucket returns 200")] - [global::Xunit.TraitAttribute("FeatureTitle", "Tool Bucket Management")] - [global::Xunit.TraitAttribute("Description", "Delete bucket returns 200")] - public async global::System.Threading.Tasks.Task DeleteBucketReturns200() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "3"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Delete bucket returns 200", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 44 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 45 - await testRunner.GivenAsync("a bucket exists with name \"delete-bucket-test\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 46 - await testRunner.WhenAsync("I send a DELETE request to \"/mcp/tools/buckets/delete-bucket-test\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 47 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Browse bucket manifest returns 200 or 404 gracefully")] - [global::Xunit.TraitAttribute("FeatureTitle", "Tool Bucket Management")] - [global::Xunit.TraitAttribute("Description", "Browse bucket manifest returns 200 or 404 gracefully")] - public async global::System.Threading.Tasks.Task BrowseBucketManifestReturns200Or404Gracefully() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "4"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Browse bucket manifest returns 200 or 404 gracefully", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 49 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 50 - await testRunner.GivenAsync("a bucket exists with name \"browse-bucket\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 51 - await testRunner.WhenAsync("I send a GET request to \"/mcp/tools/buckets/browse-bucket/browse\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 52 - await testRunner.ThenAsync("the response status code is 200 or 404", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 53 - await testRunner.AndAsync("I delete the bucket named \"browse-bucket\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Default buckets are seeded on startup and are idempotent")] - [global::Xunit.TraitAttribute("FeatureTitle", "Tool Bucket Management")] - [global::Xunit.TraitAttribute("Description", "Default buckets are seeded on startup and are idempotent")] - public async global::System.Threading.Tasks.Task DefaultBucketsAreSeededOnStartupAndAreIdempotent() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "5"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Default buckets are seeded on startup and are idempotent", "", tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 55 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 57 - await testRunner.WhenAsync("I send a GET request to \"/mcp/tools/buckets\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 58 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 60 - await testRunner.WhenAsync("I send a GET request to \"/mcp/tools/buckets\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 61 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Bucket list read endpoint is publicly accessible without API key")] - [global::Xunit.TraitAttribute("FeatureTitle", "Tool Bucket Management")] - [global::Xunit.TraitAttribute("Description", "Bucket list read endpoint is publicly accessible without API key")] - public async global::System.Threading.Tasks.Task BucketListReadEndpointIsPubliclyAccessibleWithoutAPIKey() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "6"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Bucket list read endpoint is publicly accessible without API key", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 63 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 64 - await testRunner.WhenAsync("I send a GET request to \"/mcp/tools/buckets\" without an API key", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 65 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Bucket write endpoint requires API key when configured")] - [global::Xunit.TraitAttribute("FeatureTitle", "Tool Bucket Management")] - [global::Xunit.TraitAttribute("Description", "Bucket write endpoint requires API key when configured")] - public async global::System.Threading.Tasks.Task BucketWriteEndpointRequiresAPIKeyWhenConfigured() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "7"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Bucket write endpoint requires API key when configured", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 67 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 68 - await testRunner.WhenAsync("I POST to \"/mcp/tools/buckets\" without an API key with body:", "{ \"name\": \"nokey-bucket\", \"owner\": \"test\", \"repo\": \"test\", \"branch\": \"main\" }", ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 72 - await testRunner.ThenAsync("the response status code is 201 or 401", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Reqnroll", "3.0.0.0")] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - public class FixtureData : object, global::Xunit.IAsyncLifetime - { - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.InitializeAsync() - { - await ToolBucketManagementFeature.FeatureSetupAsync(); - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.DisposeAsync() - { - await ToolBucketManagementFeature.FeatureTearDownAsync(); - } - } - } -} -#pragma warning restore -#endregion diff --git a/tests/McpServer.SpecFlow.Tests/Features/ToolRegistry/ToolRegistrySearch.feature b/tests/McpServer.SpecFlow.Tests/Features/ToolRegistry/ToolRegistrySearch.feature deleted file mode 100644 index 3e822968..00000000 --- a/tests/McpServer.SpecFlow.Tests/Features/ToolRegistry/ToolRegistrySearch.feature +++ /dev/null @@ -1,94 +0,0 @@ -Feature: Tool Registry Search and CRUD - As an AI agent - I want to discover and manage tools via keyword search - So that I can find relevant tools across global and workspace scopes - - Background: - Given the MCP server is running - - # FR-MCP-012 / TR-MCP-TR-001 / TEST-MCP-008 - - Scenario: List tools returns 200 with results - When I send a GET request to "/mcp/tools" - Then the response status code should be 200 - And the response body is valid JSON - - Scenario: Search tools with empty keyword returns results or 400 - When I send a GET request to "/mcp/tools/search?keyword=" - Then the response status code is 200 or 400 - And the response body is valid JSON - - Scenario: Search tools by name keyword returns matching tools - Given a tool exists with name "SpecFlowSearchTool" and tags "specflow,search" - When I send a GET request to "/mcp/tools/search?keyword=SpecFlowSearchTool" - Then the response status code should be 200 - And the response body should contain "SpecFlowSearchTool" - And I delete the tool named "SpecFlowSearchTool" - - Scenario: Search tools by tag (singular) returns tools with matching tag - Given a tool exists with name "TagSearchTool" and tags "singular,plural" - When I send a GET request to "/mcp/tools/search?keyword=singular" - Then the response status code should be 200 - And the response body should contain "TagSearchTool" - And I delete the tool named "TagSearchTool" - - Scenario: Search tools by tag (plural) returns tools with singular tag - Given a tool exists with name "PluraltSearchTool" and tags "widget" - When I send a GET request to "/mcp/tools/search?keyword=widgets" - Then the response status code should be 200 - And the response body should contain "PluraltSearchTool" - And I delete the tool named "PluraltSearchTool" - - Scenario: Get tool by ID returns 200 - Given a tool exists with name "GetByIdTool" and tags "getbyid" and id stored as "toolId" - When I send a GET request to "/mcp/tools/{toolId}" - Then the response status code should be 200 - And the response body should contain "GetByIdTool" - And I delete the tool named "GetByIdTool" - - Scenario: Get tool by unknown ID returns 404 - When I send a GET request to "/mcp/tools/99999999" - Then the response status code should be 404 - - Scenario: Create tool returns 201 with created tool - When I POST to "/mcp/tools" with body: - """ - { - "name": "SpecFlowCreatedTool", - "description": "Created by SpecFlow", - "tags": ["specflow", "test"] - } - """ - Then the response status code should be 201 - And the response body should contain "SpecFlowCreatedTool" - And I delete the tool named "SpecFlowCreatedTool" - - Scenario: Update tool returns 200 - Given a tool exists with name "UpdateToolSpecFlow" and tags "update" and id stored as "updToolId" - When I PUT to "/mcp/tools/{updToolId}" with body: - """ - { - "name": "UpdateToolSpecFlowRenamed", - "description": "Updated", - "tags": ["updated"] - } - """ - Then the response status code should be 200 - And I delete the tool named "UpdateToolSpecFlowRenamed" - - Scenario: Delete tool returns 200 - Given a tool exists with name "DeleteToolSpecFlow" and tags "delete" and id stored as "delToolId" - When I send a DELETE request to "/mcp/tools/{delToolId}" - Then the response status code should be 200 - - Scenario: Read endpoints are accessible without API key - When I send a GET request to "/mcp/tools" without an API key - Then the response status code should be 200 - - Scenario: Write endpoint without API key returns 401 when API key is configured - # When Mcp:ApiKey is empty, all requests pass. This tests behavior is correct per config. - When I POST to "/mcp/tools" without an API key with body: - """ - { "name": "NoKeyTool", "description": "No key", "tags": [] } - """ - Then the response status code is 201 or 401 diff --git a/tests/McpServer.SpecFlow.Tests/Features/ToolRegistry/ToolRegistrySearch.feature.cs b/tests/McpServer.SpecFlow.Tests/Features/ToolRegistry/ToolRegistrySearch.feature.cs deleted file mode 100644 index dd476c4e..00000000 --- a/tests/McpServer.SpecFlow.Tests/Features/ToolRegistry/ToolRegistrySearch.feature.cs +++ /dev/null @@ -1,904 +0,0 @@ -// ------------------------------------------------------------------------------ -// -// This code was generated by Reqnroll (https://www.reqnroll.net/). -// Reqnroll Version:3.0.0.0 -// Reqnroll Generator Version:3.0.0.0 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -// ------------------------------------------------------------------------------ -#region Designer generated code -#pragma warning disable -using Reqnroll; -namespace McpServer.SpecFlow.Tests.Features.ToolRegistry -{ - - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Reqnroll", "3.0.0.0")] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - public partial class ToolRegistrySearchAndCRUDFeature : object, global::Xunit.IClassFixture, global::Xunit.IAsyncLifetime - { - - private global::Reqnroll.ITestRunner testRunner; - - private static string[] featureTags = ((string[])(null)); - - private static global::Reqnroll.FeatureInfo featureInfo = new global::Reqnroll.FeatureInfo(new global::System.Globalization.CultureInfo("en-US"), "Features/ToolRegistry", "Tool Registry Search and CRUD", " As an AI agent\r\n I want to discover and manage tools via keyword search\r\n So " + - "that I can find relevant tools across global and workspace scopes", global::Reqnroll.ProgrammingLanguage.CSharp, featureTags, InitializeCucumberMessages()); - - private global::Xunit.Abstractions.ITestOutputHelper _testOutputHelper; - -#line 1 "ToolRegistrySearch.feature" -#line hidden - - public ToolRegistrySearchAndCRUDFeature(ToolRegistrySearchAndCRUDFeature.FixtureData fixtureData, global::Xunit.Abstractions.ITestOutputHelper testOutputHelper) - { - this._testOutputHelper = testOutputHelper; - } - - public static async global::System.Threading.Tasks.Task FeatureSetupAsync() - { - } - - public static async global::System.Threading.Tasks.Task FeatureTearDownAsync() - { - await global::Reqnroll.TestRunnerManager.ReleaseFeatureAsync(featureInfo); - } - - public async global::System.Threading.Tasks.Task TestInitializeAsync() - { - testRunner = global::Reqnroll.TestRunnerManager.GetTestRunnerForAssembly(featureHint: featureInfo); - try - { - if (((testRunner.FeatureContext != null) - && (testRunner.FeatureContext.FeatureInfo.Equals(featureInfo) == false))) - { - await testRunner.OnFeatureEndAsync(); - } - } - finally - { - if (((testRunner.FeatureContext != null) - && testRunner.FeatureContext.BeforeFeatureHookFailed)) - { - throw new global::Reqnroll.ReqnrollException("Scenario skipped because of previous before feature hook error"); - } - if ((testRunner.FeatureContext == null)) - { - await testRunner.OnFeatureStartAsync(featureInfo); - } - } - } - - public async global::System.Threading.Tasks.Task TestTearDownAsync() - { - if ((testRunner == null)) - { - return; - } - try - { - await testRunner.OnScenarioEndAsync(); - } - finally - { - global::Reqnroll.TestRunnerManager.ReleaseTestRunner(testRunner); - testRunner = null; - } - } - - public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, global::Reqnroll.RuleInfo ruleInfo) - { - testRunner.OnScenarioInitialize(scenarioInfo, ruleInfo); - testRunner.ScenarioContext.ScenarioContainer.RegisterInstanceAs(_testOutputHelper); - } - - public async global::System.Threading.Tasks.Task ScenarioStartAsync() - { - await testRunner.OnScenarioStartAsync(); - } - - public async global::System.Threading.Tasks.Task ScenarioCleanupAsync() - { - await testRunner.CollectScenarioErrorsAsync(); - } - - public virtual async global::System.Threading.Tasks.Task FeatureBackgroundAsync() - { -#line 6 - #line hidden -#line 7 - await testRunner.GivenAsync("the MCP server is running", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden - } - - private static global::Io.Cucumber.Messages.Types.Source SourceFunc() - { - return new global::Io.Cucumber.Messages.Types.Source("Features/ToolRegistry/ToolRegistrySearch.feature", "Feature: Tool Registry Search and CRUD\r\n As an AI agent\r\n I want to discover an" + - "d manage tools via keyword search\r\n So that I can find relevant tools across gl" + - "obal and workspace scopes\r\n\r\n Background:\r\n Given the MCP server is running\r" + - "\n\r\n # FR-MCP-012 / TR-MCP-TR-001 / TEST-MCP-008\r\n\r\n Scenario: List tools retur" + - "ns 200 with results\r\n When I send a GET request to \"/mcp/tools\"\r\n Then the" + - " response status code should be 200\r\n And the response body is valid JSON\r\n\r\n" + - " Scenario: Search tools with empty keyword returns results or 400\r\n When I s" + - "end a GET request to \"/mcp/tools/search?keyword=\"\r\n Then the response status " + - "code is 200 or 400\r\n And the response body is valid JSON\r\n\r\n Scenario: Searc" + - "h tools by name keyword returns matching tools\r\n Given a tool exists with nam" + - "e \"SpecFlowSearchTool\" and tags \"specflow,search\"\r\n When I send a GET request" + - " to \"/mcp/tools/search?keyword=SpecFlowSearchTool\"\r\n Then the response status" + - " code should be 200\r\n And the response body should contain \"SpecFlowSearchToo" + - "l\"\r\n And I delete the tool named \"SpecFlowSearchTool\"\r\n\r\n Scenario: Search t" + - "ools by tag (singular) returns tools with matching tag\r\n Given a tool exists " + - "with name \"TagSearchTool\" and tags \"singular,plural\"\r\n When I send a GET requ" + - "est to \"/mcp/tools/search?keyword=singular\"\r\n Then the response status code s" + - "hould be 200\r\n And the response body should contain \"TagSearchTool\"\r\n And " + - "I delete the tool named \"TagSearchTool\"\r\n\r\n Scenario: Search tools by tag (plur" + - "al) returns tools with singular tag\r\n Given a tool exists with name \"PluraltS" + - "earchTool\" and tags \"widget\"\r\n When I send a GET request to \"/mcp/tools/searc" + - "h?keyword=widgets\"\r\n Then the response status code should be 200\r\n And the" + - " response body should contain \"PluraltSearchTool\"\r\n And I delete the tool nam" + - "ed \"PluraltSearchTool\"\r\n\r\n Scenario: Get tool by ID returns 200\r\n Given a to" + - "ol exists with name \"GetByIdTool\" and tags \"getbyid\" and id stored as \"toolId\"\r\n" + - " When I send a GET request to \"/mcp/tools/{toolId}\"\r\n Then the response st" + - "atus code should be 200\r\n And the response body should contain \"GetByIdTool\"\r" + - "\n And I delete the tool named \"GetByIdTool\"\r\n\r\n Scenario: Get tool by unknow" + - "n ID returns 404\r\n When I send a GET request to \"/mcp/tools/99999999\"\r\n Th" + - "en the response status code should be 404\r\n\r\n Scenario: Create tool returns 201" + - " with created tool\r\n When I POST to \"/mcp/tools\" with body:\r\n \"\"\"\r\n " + - " {\r\n \"name\": \"SpecFlowCreatedTool\",\r\n \"description\": \"Created by S" + - "pecFlow\",\r\n \"tags\": [\"specflow\", \"test\"]\r\n }\r\n \"\"\"\r\n Then th" + - "e response status code should be 201\r\n And the response body should contain \"" + - "SpecFlowCreatedTool\"\r\n And I delete the tool named \"SpecFlowCreatedTool\"\r\n\r\n " + - " Scenario: Update tool returns 200\r\n Given a tool exists with name \"UpdateToo" + - "lSpecFlow\" and tags \"update\" and id stored as \"updToolId\"\r\n When I PUT to \"/m" + - "cp/tools/{updToolId}\" with body:\r\n \"\"\"\r\n {\r\n \"name\": \"UpdateToo" + - "lSpecFlowRenamed\",\r\n \"description\": \"Updated\",\r\n \"tags\": [\"updated" + - "\"]\r\n }\r\n \"\"\"\r\n Then the response status code should be 200\r\n And" + - " I delete the tool named \"UpdateToolSpecFlowRenamed\"\r\n\r\n Scenario: Delete tool " + - "returns 200\r\n Given a tool exists with name \"DeleteToolSpecFlow\" and tags \"de" + - "lete\" and id stored as \"delToolId\"\r\n When I send a DELETE request to \"/mcp/to" + - "ols/{delToolId}\"\r\n Then the response status code should be 200\r\n\r\n Scenario:" + - " Read endpoints are accessible without API key\r\n When I send a GET request to" + - " \"/mcp/tools\" without an API key\r\n Then the response status code should be 20" + - "0\r\n\r\n Scenario: Write endpoint without API key returns 401 when API key is conf" + - "igured\r\n # When Mcp:ApiKey is empty, all requests pass. This tests behavior i" + - "s correct per config.\r\n When I POST to \"/mcp/tools\" without an API key with b" + - "ody:\r\n \"\"\"\r\n { \"name\": \"NoKeyTool\", \"description\": \"No key\", \"tags\": [" + - "] }\r\n \"\"\"\r\n Then the response status code is 201 or 401\r\n", global::Io.Cucumber.Messages.Types.SourceMediaType.TEXT_X_CUCUMBER_GHERKIN_PLAIN); - } - - private static global::Io.Cucumber.Messages.Types.GherkinDocument GherkinDocumentFunc() - { - return new global::Io.Cucumber.Messages.Types.GherkinDocument("Features/ToolRegistry/ToolRegistrySearch.feature", new global::Io.Cucumber.Messages.Types.Feature(new global::Io.Cucumber.Messages.Types.Location(1, new System.Nullable(1)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "en-US", "Feature", "Tool Registry Search and CRUD", " As an AI agent\r\n I want to discover and manage tools via keyword search\r\n So " + - "that I can find relevant tools across global and workspace scopes", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.FeatureChild[] { - new global::Io.Cucumber.Messages.Types.FeatureChild(null, new global::Io.Cucumber.Messages.Types.Background(new global::Io.Cucumber.Messages.Types.Location(6, new System.Nullable(3)), "Background", "", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(7, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "the MCP server is running", null, null, "2b3694ea1927c4528a98a5a6c3ef4c26")}), "40a09bb8c215a95aa9faec7b7d02472c"), null), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(11, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "List tools returns 200 with results", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(12, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/tools\"", null, null, "f507cf0e6b6d665da1c0583837d30f14"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(13, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "a365b7bab6d0f65b8c7572801c72bce4"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(14, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the response body is valid JSON", null, null, "5ad5938e3077165392f7b3ff9659c765")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "e2635abc87d8eb5eb4e35fc972202d5e")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(16, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Search tools with empty keyword returns results or 400", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(17, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/tools/search?keyword=\"", null, null, "e0e85e4880f8a8518d83f2d345baacd0"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(18, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code is 200 or 400", null, null, "4afab4ecab2cc85aad4d178fdf576a33"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(19, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the response body is valid JSON", null, null, "a441d2bb82346c5cbbc5c9bb9db6f820")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "5394473c07ab935ab4ef4f9584bfff70")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(21, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Search tools by name keyword returns matching tools", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(22, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "a tool exists with name \"SpecFlowSearchTool\" and tags \"specflow,search\"", null, null, "2b6b091b10a385549c1ca8baa970b285"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(23, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/tools/search?keyword=SpecFlowSearchTool\"", null, null, "313386dc69a58152b250729e9f4eed7d"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(24, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "c7cdf109753bb056a075c24584b69f9b"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(25, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the response body should contain \"SpecFlowSearchTool\"", null, null, "eda4e4a9204545519851e8b277201f18"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(26, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I delete the tool named \"SpecFlowSearchTool\"", null, null, "7670f6615fdef45786eefc39f9e718cd")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "dbf5b439c3fdee5db177d77de317af03")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(28, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Search tools by tag (singular) returns tools with matching tag", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(29, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "a tool exists with name \"TagSearchTool\" and tags \"singular,plural\"", null, null, "7195fff210865650aa2977d4f44fafc6"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(30, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/tools/search?keyword=singular\"", null, null, "edaf65540fd3b854b6a1cc983d700b1f"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(31, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "7ea1210a0966505aa96efaa24bd819e6"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(32, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the response body should contain \"TagSearchTool\"", null, null, "61c024432c84e5549f87bd0fc32700f7"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(33, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I delete the tool named \"TagSearchTool\"", null, null, "117ec7be2b349b519bb83793e8cd03f5")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "5052156031d3495db97636554b18e01d")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(35, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Search tools by tag (plural) returns tools with singular tag", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(36, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "a tool exists with name \"PluraltSearchTool\" and tags \"widget\"", null, null, "adb3279951e4db5ba8ee25199b405ff0"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(37, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/tools/search?keyword=widgets\"", null, null, "e5dbeaca061274569a97b6567c1b5711"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(38, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "503ae97e8f96005d9d58694550a9b939"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(39, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the response body should contain \"PluraltSearchTool\"", null, null, "4430029a8b3ed55cbcd323adeb6bf487"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(40, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I delete the tool named \"PluraltSearchTool\"", null, null, "5b7bb0c17ae2c25ebe6b9377cdbfde91")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "03d475a56957c75487696882990f83e8")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(42, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Get tool by ID returns 200", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(43, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "a tool exists with name \"GetByIdTool\" and tags \"getbyid\" and id stored as \"toolId" + - "\"", null, null, "721a7eaa35c74f50a4678b7989220e6a"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(44, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/tools/{toolId}\"", null, null, "07b8a86b7eda2a52bc868d1f23f99f79"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(45, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "c7ad4c883617af569250ecb08d569eb6"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(46, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the response body should contain \"GetByIdTool\"", null, null, "b723a77250e4ff5580d31bae82e16de1"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(47, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I delete the tool named \"GetByIdTool\"", null, null, "86d69bc689be34559925ceffbb8d4304")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "9064b42ec3acd9508e3c06f30fa32b78")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(49, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Get tool by unknown ID returns 404", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(50, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/tools/99999999\"", null, null, "64a94254e5a33e5697d43f80e4d06b1a"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(51, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 404", null, null, "890843631ca2d354b5aafc1d7caa1a9d")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "df372938499c7e5da291a5f07cb38cf0")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(53, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Create tool returns 201 with created tool", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(54, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/tools\" with body:", new global::Io.Cucumber.Messages.Types.DocString(new global::Io.Cucumber.Messages.Types.Location(55, new System.Nullable(7)), null, "{\r\n \"name\": \"SpecFlowCreatedTool\",\r\n \"description\": \"Created by SpecFlow\",\r\n \"" + - "tags\": [\"specflow\", \"test\"]\r\n}", "\"\"\""), null, "b04a94b93a336951ba74110141403ba5"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(62, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 201", null, null, "0c42ab5ad740a65b989ad146d98579ef"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(63, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the response body should contain \"SpecFlowCreatedTool\"", null, null, "64a52fcf1fb1635f8fae149f7930269f"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(64, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I delete the tool named \"SpecFlowCreatedTool\"", null, null, "96f8a9ac9abca35ab299a2af344cc73b")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "df0017792b14de55accb42cbee27622b")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(66, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Update tool returns 200", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(67, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "a tool exists with name \"UpdateToolSpecFlow\" and tags \"update\" and id stored as \"" + - "updToolId\"", null, null, "18b0bb2a3b46bb56bcc2192ad3190e1f"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(68, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I PUT to \"/mcp/tools/{updToolId}\" with body:", new global::Io.Cucumber.Messages.Types.DocString(new global::Io.Cucumber.Messages.Types.Location(69, new System.Nullable(7)), null, "{\r\n \"name\": \"UpdateToolSpecFlowRenamed\",\r\n \"description\": \"Updated\",\r\n \"tags\":" + - " [\"updated\"]\r\n}", "\"\"\""), null, "50ea5f2bef84225e88ccb0b7c77c1b3e"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(76, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "afd425efdf365950ae71126175f753eb"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(77, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I delete the tool named \"UpdateToolSpecFlowRenamed\"", null, null, "18a833151be2e851986003eafa2d4d47")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "5cea9db6109f3058b33d9cf31f592f63")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(79, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Delete tool returns 200", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(80, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "a tool exists with name \"DeleteToolSpecFlow\" and tags \"delete\" and id stored as \"" + - "delToolId\"", null, null, "04993386e1ae0351a3317adbbca8f066"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(81, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a DELETE request to \"/mcp/tools/{delToolId}\"", null, null, "839132141744565f862c01db5111994e"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(82, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "9b765191409c78579eeb768128c160cd")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "394796e72e757656a5ad55b4a0a7f7e6")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(84, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Read endpoints are accessible without API key", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(85, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/tools\" without an API key", null, null, "9037a811f0cb905eb166af86c2fa4d04"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(86, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "130e16e13c883857ac98ca5605d42f1d")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "1889337099d8d355b6195ed6954f23f0")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(88, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Write endpoint without API key returns 401 when API key is configured", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(90, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/tools\" without an API key with body:", new global::Io.Cucumber.Messages.Types.DocString(new global::Io.Cucumber.Messages.Types.Location(91, new System.Nullable(7)), null, "{ \"name\": \"NoKeyTool\", \"description\": \"No key\", \"tags\": [] }", "\"\"\""), null, "23b300fa51b37a5382ad94aea3e18700"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(94, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code is 201 or 401", null, null, "03fb06197986b15d95e02f5d33a68450")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "b2c38df527fa0355832326386a51816d"))})), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Comment[] { - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(9, new System.Nullable(1)), " # FR-MCP-012 / TR-MCP-TR-001 / TEST-MCP-008"), - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(89, new System.Nullable(1)), " # When Mcp:ApiKey is empty, all requests pass. This tests behavior is correct" + - " per config.")})); - } - - private static global::System.Collections.Generic.IEnumerable PicklesFunc() - { - return new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Pickle[] { - new global::Io.Cucumber.Messages.Types.Pickle("819bea11c4f13c5e9dd1b99aa8d030e0", "Features/ToolRegistry/ToolRegistrySearch.feature", "List tools returns 200 with results", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "2b3694ea1927c4528a98a5a6c3ef4c26"}), "ef197d3fadce1253b31eb381304d0a5e", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "f507cf0e6b6d665da1c0583837d30f14"}), "d068d189784a2356905358ba089310c8", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/tools\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "a365b7bab6d0f65b8c7572801c72bce4"}), "f96b81810321d852946e2faec34b5005", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "5ad5938e3077165392f7b3ff9659c765"}), "9b6f8e631df28b50bb3e5b45e1e4a957", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response body is valid JSON")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "e2635abc87d8eb5eb4e35fc972202d5e"})), - new global::Io.Cucumber.Messages.Types.Pickle("32a7fa37d0c55b5282c82fdbfe17e741", "Features/ToolRegistry/ToolRegistrySearch.feature", "Search tools with empty keyword returns results or 400", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "2b3694ea1927c4528a98a5a6c3ef4c26"}), "c280a0a692396a50bea53a1b49050e47", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "e0e85e4880f8a8518d83f2d345baacd0"}), "acb2f487a3e91b5a910b2e0937c78d2b", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/tools/search?keyword=\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "4afab4ecab2cc85aad4d178fdf576a33"}), "bbe605892df8e253971a2291de878c98", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code is 200 or 400"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "a441d2bb82346c5cbbc5c9bb9db6f820"}), "d88ac51a74058b5e972c38dfd0057d20", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response body is valid JSON")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "5394473c07ab935ab4ef4f9584bfff70"})), - new global::Io.Cucumber.Messages.Types.Pickle("64e055cf78e5e556b1770030ca2a6c7f", "Features/ToolRegistry/ToolRegistrySearch.feature", "Search tools by name keyword returns matching tools", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "2b3694ea1927c4528a98a5a6c3ef4c26"}), "2394f7b7f2bfaa529b1ad858d770f2f2", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "2b6b091b10a385549c1ca8baa970b285"}), "d5caaad5a74aee54aa8ac7e854f2c964", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a tool exists with name \"SpecFlowSearchTool\" and tags \"specflow,search\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "313386dc69a58152b250729e9f4eed7d"}), "24229229f332a05fa86ad7780d114df1", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/tools/search?keyword=SpecFlowSearchTool\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "c7cdf109753bb056a075c24584b69f9b"}), "186ac2f0e909a2548d6d5db08195c9e5", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "eda4e4a9204545519851e8b277201f18"}), "ea2d8b4ea32aa35aa08d825756ff3e51", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response body should contain \"SpecFlowSearchTool\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "7670f6615fdef45786eefc39f9e718cd"}), "23232c1214cbd055b7509797ef547228", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "I delete the tool named \"SpecFlowSearchTool\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "dbf5b439c3fdee5db177d77de317af03"})), - new global::Io.Cucumber.Messages.Types.Pickle("e461847eb1e704518d641b03adfa616b", "Features/ToolRegistry/ToolRegistrySearch.feature", "Search tools by tag (singular) returns tools with matching tag", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "2b3694ea1927c4528a98a5a6c3ef4c26"}), "08cbbc17a2e1f9568f68fb945e35e15b", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "7195fff210865650aa2977d4f44fafc6"}), "bca0062ef25dd1588bffc70d6f3c25a5", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a tool exists with name \"TagSearchTool\" and tags \"singular,plural\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "edaf65540fd3b854b6a1cc983d700b1f"}), "caaad3c4d788395aa85d3c20b90e796b", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/tools/search?keyword=singular\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "7ea1210a0966505aa96efaa24bd819e6"}), "8d32f566b09c30549fa14d8842e9c125", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "61c024432c84e5549f87bd0fc32700f7"}), "b615a5df979f6c539c625a59a8de6018", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response body should contain \"TagSearchTool\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "117ec7be2b349b519bb83793e8cd03f5"}), "d683d7c796418455ad99292ae1f4e5a1", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "I delete the tool named \"TagSearchTool\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "5052156031d3495db97636554b18e01d"})), - new global::Io.Cucumber.Messages.Types.Pickle("d9c082004cb75a55b2e1744fdb61ccff", "Features/ToolRegistry/ToolRegistrySearch.feature", "Search tools by tag (plural) returns tools with singular tag", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "2b3694ea1927c4528a98a5a6c3ef4c26"}), "40ff69d0564d155288d588b6deee0265", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "adb3279951e4db5ba8ee25199b405ff0"}), "8c65a7b0ddeaf550b01d9a73ce4e1625", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a tool exists with name \"PluraltSearchTool\" and tags \"widget\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "e5dbeaca061274569a97b6567c1b5711"}), "7afc2869575fa553ba0ce58b41c6da31", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/tools/search?keyword=widgets\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "503ae97e8f96005d9d58694550a9b939"}), "c18f28d85c21755b8a03854a68066163", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "4430029a8b3ed55cbcd323adeb6bf487"}), "72ae5c17c434c859ac63335afea96e20", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response body should contain \"PluraltSearchTool\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "5b7bb0c17ae2c25ebe6b9377cdbfde91"}), "a91f00b4bbc48556ad63e02fdddcc9d0", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "I delete the tool named \"PluraltSearchTool\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "03d475a56957c75487696882990f83e8"})), - new global::Io.Cucumber.Messages.Types.Pickle("39a137b5895f0858a3a143665e803db9", "Features/ToolRegistry/ToolRegistrySearch.feature", "Get tool by ID returns 200", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "2b3694ea1927c4528a98a5a6c3ef4c26"}), "fed398a26f8efc5a98b6b9760bb63263", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "721a7eaa35c74f50a4678b7989220e6a"}), "2dba2ab9e8dc1b56a62aa8a4ce703bf2", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a tool exists with name \"GetByIdTool\" and tags \"getbyid\" and id stored as \"toolId" + - "\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "07b8a86b7eda2a52bc868d1f23f99f79"}), "a4f513ee51927c509f90005d333fe05b", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/tools/{toolId}\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "c7ad4c883617af569250ecb08d569eb6"}), "3b312b763cb3b95b97df412ca476bd13", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "b723a77250e4ff5580d31bae82e16de1"}), "669db85318a7f2508ca9c318ea75923a", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response body should contain \"GetByIdTool\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "86d69bc689be34559925ceffbb8d4304"}), "2ca5d8625f4d765ab09047ee73df8d87", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "I delete the tool named \"GetByIdTool\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "9064b42ec3acd9508e3c06f30fa32b78"})), - new global::Io.Cucumber.Messages.Types.Pickle("60e33561aef8705ba26b1328b3a92901", "Features/ToolRegistry/ToolRegistrySearch.feature", "Get tool by unknown ID returns 404", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "2b3694ea1927c4528a98a5a6c3ef4c26"}), "410cf8497114dc518a5bb3ce6c17c1aa", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "64a94254e5a33e5697d43f80e4d06b1a"}), "b583063990e271528cedf554fce7536e", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/tools/99999999\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "890843631ca2d354b5aafc1d7caa1a9d"}), "f923c474125a8556b44a8f280cb4cfba", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 404")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "df372938499c7e5da291a5f07cb38cf0"})), - new global::Io.Cucumber.Messages.Types.Pickle("d47a2b9da61231528cced342ee1f3688", "Features/ToolRegistry/ToolRegistrySearch.feature", "Create tool returns 201 with created tool", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "2b3694ea1927c4528a98a5a6c3ef4c26"}), "247f6c3e7ef0b15da06458479abc9e55", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(new global::Io.Cucumber.Messages.Types.PickleStepArgument(new global::Io.Cucumber.Messages.Types.PickleDocString(null, "{\r\n \"name\": \"SpecFlowCreatedTool\",\r\n \"description\": \"Created by SpecFlow\",\r\n \"" + - "tags\": [\"specflow\", \"test\"]\r\n}"), null), new System.Collections.Generic.List(new string[] { - "b04a94b93a336951ba74110141403ba5"}), "84e471c95374cd57b7fec1ee77308afd", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/tools\" with body:"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "0c42ab5ad740a65b989ad146d98579ef"}), "b2e6268cca46a95ba258dcafa2c8ad73", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 201"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "64a52fcf1fb1635f8fae149f7930269f"}), "653345579579fd55addf8805976ceb63", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response body should contain \"SpecFlowCreatedTool\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "96f8a9ac9abca35ab299a2af344cc73b"}), "8ebec5cdd5137553a7e417c6d45c7728", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "I delete the tool named \"SpecFlowCreatedTool\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "df0017792b14de55accb42cbee27622b"})), - new global::Io.Cucumber.Messages.Types.Pickle("1d5cc98dbb311152b8ba998a226bd244", "Features/ToolRegistry/ToolRegistrySearch.feature", "Update tool returns 200", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "2b3694ea1927c4528a98a5a6c3ef4c26"}), "b84ffffeec7b2059b4ee3590811f80bb", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "18b0bb2a3b46bb56bcc2192ad3190e1f"}), "ddaa6f1c822e865290a1305d31b6dbd4", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a tool exists with name \"UpdateToolSpecFlow\" and tags \"update\" and id stored as \"" + - "updToolId\""), - new global::Io.Cucumber.Messages.Types.PickleStep(new global::Io.Cucumber.Messages.Types.PickleStepArgument(new global::Io.Cucumber.Messages.Types.PickleDocString(null, "{\r\n \"name\": \"UpdateToolSpecFlowRenamed\",\r\n \"description\": \"Updated\",\r\n \"tags\":" + - " [\"updated\"]\r\n}"), null), new System.Collections.Generic.List(new string[] { - "50ea5f2bef84225e88ccb0b7c77c1b3e"}), "804904386278eb59aa2312ff2bae380d", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I PUT to \"/mcp/tools/{updToolId}\" with body:"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "afd425efdf365950ae71126175f753eb"}), "f42596543de6f2579082c66b0d26c4ce", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "18a833151be2e851986003eafa2d4d47"}), "2e57cc26549d1357a5276ec780231c41", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "I delete the tool named \"UpdateToolSpecFlowRenamed\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "5cea9db6109f3058b33d9cf31f592f63"})), - new global::Io.Cucumber.Messages.Types.Pickle("de4d2e6e9760df55a5b4a9121200f007", "Features/ToolRegistry/ToolRegistrySearch.feature", "Delete tool returns 200", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "2b3694ea1927c4528a98a5a6c3ef4c26"}), "1270264d0eb4505c98ba778b0ec9fcd9", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "04993386e1ae0351a3317adbbca8f066"}), "bd1f5bcfd49e885d96ea7fd4b6ad2e49", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a tool exists with name \"DeleteToolSpecFlow\" and tags \"delete\" and id stored as \"" + - "delToolId\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "839132141744565f862c01db5111994e"}), "b9d57c1d404839578ee6f45dcda68c76", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a DELETE request to \"/mcp/tools/{delToolId}\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "9b765191409c78579eeb768128c160cd"}), "c116496976cb4f56b7f63119e0151f6a", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "394796e72e757656a5ad55b4a0a7f7e6"})), - new global::Io.Cucumber.Messages.Types.Pickle("8bea7ecabea9e659b0b23aeb7bd91385", "Features/ToolRegistry/ToolRegistrySearch.feature", "Read endpoints are accessible without API key", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "2b3694ea1927c4528a98a5a6c3ef4c26"}), "0c5c3db7754d2c54884a2298775f6dbd", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "9037a811f0cb905eb166af86c2fa4d04"}), "988a9ff502021a5f8ef279c3fe201328", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/tools\" without an API key"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "130e16e13c883857ac98ca5605d42f1d"}), "9c6af7cd354e565981b9db9fb187b010", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "1889337099d8d355b6195ed6954f23f0"})), - new global::Io.Cucumber.Messages.Types.Pickle("9bf3d41d2a3e465bb104bf1b9280fb71", "Features/ToolRegistry/ToolRegistrySearch.feature", "Write endpoint without API key returns 401 when API key is configured", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "2b3694ea1927c4528a98a5a6c3ef4c26"}), "535628ecbd32b8518124d7df15b8a9a2", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(new global::Io.Cucumber.Messages.Types.PickleStepArgument(new global::Io.Cucumber.Messages.Types.PickleDocString(null, "{ \"name\": \"NoKeyTool\", \"description\": \"No key\", \"tags\": [] }"), null), new System.Collections.Generic.List(new string[] { - "23b300fa51b37a5382ad94aea3e18700"}), "61462a6ccf0c1952a32d42b9d0d6b8d7", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/tools\" without an API key with body:"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "03fb06197986b15d95e02f5d33a68450"}), "e41984b20c434458b75fc95b14062fd7", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code is 201 or 401")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "b2c38df527fa0355832326386a51816d"}))}); - } - - private static global::Reqnroll.Formatters.RuntimeSupport.FeatureLevelCucumberMessages InitializeCucumberMessages() - { - return new global::Reqnroll.Formatters.RuntimeSupport.FeatureLevelCucumberMessages(new global::System.Func(ToolRegistrySearchAndCRUDFeature.SourceFunc), new global::System.Func(ToolRegistrySearchAndCRUDFeature.GherkinDocumentFunc), new global::System.Func>(ToolRegistrySearchAndCRUDFeature.PicklesFunc)); - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.InitializeAsync() - { - try - { - await this.TestInitializeAsync(); - } - catch (System.Exception e1) - { - try - { - ((global::Xunit.IAsyncLifetime)(this)).DisposeAsync(); - } - catch (System.Exception e2) - { - throw new System.AggregateException("Test initialization failed", e1, e2); - } - throw; - } - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.DisposeAsync() - { - await this.TestTearDownAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="List tools returns 200 with results")] - [global::Xunit.TraitAttribute("FeatureTitle", "Tool Registry Search and CRUD")] - [global::Xunit.TraitAttribute("Description", "List tools returns 200 with results")] - public async global::System.Threading.Tasks.Task ListToolsReturns200WithResults() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "0"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("List tools returns 200 with results", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 11 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 12 - await testRunner.WhenAsync("I send a GET request to \"/mcp/tools\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 13 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 14 - await testRunner.AndAsync("the response body is valid JSON", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Search tools with empty keyword returns results or 400")] - [global::Xunit.TraitAttribute("FeatureTitle", "Tool Registry Search and CRUD")] - [global::Xunit.TraitAttribute("Description", "Search tools with empty keyword returns results or 400")] - public async global::System.Threading.Tasks.Task SearchToolsWithEmptyKeywordReturnsResultsOr400() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "1"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Search tools with empty keyword returns results or 400", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 16 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 17 - await testRunner.WhenAsync("I send a GET request to \"/mcp/tools/search?keyword=\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 18 - await testRunner.ThenAsync("the response status code is 200 or 400", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 19 - await testRunner.AndAsync("the response body is valid JSON", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Search tools by name keyword returns matching tools")] - [global::Xunit.TraitAttribute("FeatureTitle", "Tool Registry Search and CRUD")] - [global::Xunit.TraitAttribute("Description", "Search tools by name keyword returns matching tools")] - public async global::System.Threading.Tasks.Task SearchToolsByNameKeywordReturnsMatchingTools() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "2"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Search tools by name keyword returns matching tools", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 21 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 22 - await testRunner.GivenAsync("a tool exists with name \"SpecFlowSearchTool\" and tags \"specflow,search\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 23 - await testRunner.WhenAsync("I send a GET request to \"/mcp/tools/search?keyword=SpecFlowSearchTool\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 24 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 25 - await testRunner.AndAsync("the response body should contain \"SpecFlowSearchTool\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 26 - await testRunner.AndAsync("I delete the tool named \"SpecFlowSearchTool\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Search tools by tag (singular) returns tools with matching tag")] - [global::Xunit.TraitAttribute("FeatureTitle", "Tool Registry Search and CRUD")] - [global::Xunit.TraitAttribute("Description", "Search tools by tag (singular) returns tools with matching tag")] - public async global::System.Threading.Tasks.Task SearchToolsByTagSingularReturnsToolsWithMatchingTag() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "3"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Search tools by tag (singular) returns tools with matching tag", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 28 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 29 - await testRunner.GivenAsync("a tool exists with name \"TagSearchTool\" and tags \"singular,plural\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 30 - await testRunner.WhenAsync("I send a GET request to \"/mcp/tools/search?keyword=singular\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 31 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 32 - await testRunner.AndAsync("the response body should contain \"TagSearchTool\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 33 - await testRunner.AndAsync("I delete the tool named \"TagSearchTool\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Search tools by tag (plural) returns tools with singular tag")] - [global::Xunit.TraitAttribute("FeatureTitle", "Tool Registry Search and CRUD")] - [global::Xunit.TraitAttribute("Description", "Search tools by tag (plural) returns tools with singular tag")] - public async global::System.Threading.Tasks.Task SearchToolsByTagPluralReturnsToolsWithSingularTag() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "4"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Search tools by tag (plural) returns tools with singular tag", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 35 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 36 - await testRunner.GivenAsync("a tool exists with name \"PluraltSearchTool\" and tags \"widget\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 37 - await testRunner.WhenAsync("I send a GET request to \"/mcp/tools/search?keyword=widgets\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 38 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 39 - await testRunner.AndAsync("the response body should contain \"PluraltSearchTool\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 40 - await testRunner.AndAsync("I delete the tool named \"PluraltSearchTool\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Get tool by ID returns 200")] - [global::Xunit.TraitAttribute("FeatureTitle", "Tool Registry Search and CRUD")] - [global::Xunit.TraitAttribute("Description", "Get tool by ID returns 200")] - public async global::System.Threading.Tasks.Task GetToolByIDReturns200() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "5"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Get tool by ID returns 200", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 42 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 43 - await testRunner.GivenAsync("a tool exists with name \"GetByIdTool\" and tags \"getbyid\" and id stored as \"toolId" + - "\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 44 - await testRunner.WhenAsync("I send a GET request to \"/mcp/tools/{toolId}\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 45 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 46 - await testRunner.AndAsync("the response body should contain \"GetByIdTool\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 47 - await testRunner.AndAsync("I delete the tool named \"GetByIdTool\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Get tool by unknown ID returns 404")] - [global::Xunit.TraitAttribute("FeatureTitle", "Tool Registry Search and CRUD")] - [global::Xunit.TraitAttribute("Description", "Get tool by unknown ID returns 404")] - public async global::System.Threading.Tasks.Task GetToolByUnknownIDReturns404() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "6"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Get tool by unknown ID returns 404", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 49 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 50 - await testRunner.WhenAsync("I send a GET request to \"/mcp/tools/99999999\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 51 - await testRunner.ThenAsync("the response status code should be 404", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Create tool returns 201 with created tool")] - [global::Xunit.TraitAttribute("FeatureTitle", "Tool Registry Search and CRUD")] - [global::Xunit.TraitAttribute("Description", "Create tool returns 201 with created tool")] - public async global::System.Threading.Tasks.Task CreateToolReturns201WithCreatedTool() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "7"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Create tool returns 201 with created tool", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 53 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 54 - await testRunner.WhenAsync("I POST to \"/mcp/tools\" with body:", "{\r\n \"name\": \"SpecFlowCreatedTool\",\r\n \"description\": \"Created by SpecFlow\",\r\n \"" + - "tags\": [\"specflow\", \"test\"]\r\n}", ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 62 - await testRunner.ThenAsync("the response status code should be 201", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 63 - await testRunner.AndAsync("the response body should contain \"SpecFlowCreatedTool\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 64 - await testRunner.AndAsync("I delete the tool named \"SpecFlowCreatedTool\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Update tool returns 200")] - [global::Xunit.TraitAttribute("FeatureTitle", "Tool Registry Search and CRUD")] - [global::Xunit.TraitAttribute("Description", "Update tool returns 200")] - public async global::System.Threading.Tasks.Task UpdateToolReturns200() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "8"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Update tool returns 200", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 66 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 67 - await testRunner.GivenAsync("a tool exists with name \"UpdateToolSpecFlow\" and tags \"update\" and id stored as \"" + - "updToolId\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 68 - await testRunner.WhenAsync("I PUT to \"/mcp/tools/{updToolId}\" with body:", "{\r\n \"name\": \"UpdateToolSpecFlowRenamed\",\r\n \"description\": \"Updated\",\r\n \"tags\":" + - " [\"updated\"]\r\n}", ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 76 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 77 - await testRunner.AndAsync("I delete the tool named \"UpdateToolSpecFlowRenamed\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Delete tool returns 200")] - [global::Xunit.TraitAttribute("FeatureTitle", "Tool Registry Search and CRUD")] - [global::Xunit.TraitAttribute("Description", "Delete tool returns 200")] - public async global::System.Threading.Tasks.Task DeleteToolReturns200() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "9"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Delete tool returns 200", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 79 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 80 - await testRunner.GivenAsync("a tool exists with name \"DeleteToolSpecFlow\" and tags \"delete\" and id stored as \"" + - "delToolId\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 81 - await testRunner.WhenAsync("I send a DELETE request to \"/mcp/tools/{delToolId}\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 82 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Read endpoints are accessible without API key")] - [global::Xunit.TraitAttribute("FeatureTitle", "Tool Registry Search and CRUD")] - [global::Xunit.TraitAttribute("Description", "Read endpoints are accessible without API key")] - public async global::System.Threading.Tasks.Task ReadEndpointsAreAccessibleWithoutAPIKey() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "10"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Read endpoints are accessible without API key", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 84 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 85 - await testRunner.WhenAsync("I send a GET request to \"/mcp/tools\" without an API key", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 86 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Write endpoint without API key returns 401 when API key is configured")] - [global::Xunit.TraitAttribute("FeatureTitle", "Tool Registry Search and CRUD")] - [global::Xunit.TraitAttribute("Description", "Write endpoint without API key returns 401 when API key is configured")] - public async global::System.Threading.Tasks.Task WriteEndpointWithoutAPIKeyReturns401WhenAPIKeyIsConfigured() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "11"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Write endpoint without API key returns 401 when API key is configured", "", tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 88 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 90 - await testRunner.WhenAsync("I POST to \"/mcp/tools\" without an API key with body:", "{ \"name\": \"NoKeyTool\", \"description\": \"No key\", \"tags\": [] }", ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 94 - await testRunner.ThenAsync("the response status code is 201 or 401", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Reqnroll", "3.0.0.0")] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - public class FixtureData : object, global::Xunit.IAsyncLifetime - { - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.InitializeAsync() - { - await ToolRegistrySearchAndCRUDFeature.FeatureSetupAsync(); - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.DisposeAsync() - { - await ToolRegistrySearchAndCRUDFeature.FeatureTearDownAsync(); - } - } - } -} -#pragma warning restore -#endregion diff --git a/tests/McpServer.SpecFlow.Tests/Features/Transport/McpStreamableHttp.feature b/tests/McpServer.SpecFlow.Tests/Features/Transport/McpStreamableHttp.feature deleted file mode 100644 index dac1f778..00000000 --- a/tests/McpServer.SpecFlow.Tests/Features/Transport/McpStreamableHttp.feature +++ /dev/null @@ -1,37 +0,0 @@ -Feature: MCP Streamable HTTP Transport - As an MCP client - I want to connect via the native MCP protocol endpoint - So that I can use standard MCP client libraries - - Background: - Given the MCP server is running - - # FR-MCP-016 / TR-MCP-HTTP-001 / TEST-MCP-012 - - Scenario: MCP transport endpoint exists at /mcp-transport - When I send a GET request to "/mcp-transport" - Then the response status code is not 404 - - Scenario: MCP transport endpoint returns 406 without required Accept header - When I send a GET request to "/mcp-transport" without Accept header - Then the response status code is 405 or 406 or 400 - - Scenario: Health endpoint returns Healthy - When I send a GET request to "/health" - Then the response status code should be 200 - And the response body should contain "Healthy" - - Scenario: REST API and MCP transport coexist on the same port - When I send a GET request to "/mcp/todo" - Then the response status code should be 200 - When I send a GET request to "/mcp-transport" - Then the response status code is not 404 - - Scenario: STDIO transport mode does not conflict with HTTP mode - # FR-MCP-007 — dual transport support - When I send a GET request to "/mcp/todo" - Then the response status code should be 200 - - Scenario: Swagger UI is accessible at /swagger - When I send a GET request to "/swagger" - Then the response status code is 200 or 301 or 302 diff --git a/tests/McpServer.SpecFlow.Tests/Features/Transport/McpStreamableHttp.feature.cs b/tests/McpServer.SpecFlow.Tests/Features/Transport/McpStreamableHttp.feature.cs deleted file mode 100644 index 93237e26..00000000 --- a/tests/McpServer.SpecFlow.Tests/Features/Transport/McpStreamableHttp.feature.cs +++ /dev/null @@ -1,509 +0,0 @@ -// ------------------------------------------------------------------------------ -// -// This code was generated by Reqnroll (https://www.reqnroll.net/). -// Reqnroll Version:3.0.0.0 -// Reqnroll Generator Version:3.0.0.0 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -// ------------------------------------------------------------------------------ -#region Designer generated code -#pragma warning disable -using Reqnroll; -namespace McpServer.SpecFlow.Tests.Features.Transport -{ - - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Reqnroll", "3.0.0.0")] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - public partial class MCPStreamableHTTPTransportFeature : object, global::Xunit.IClassFixture, global::Xunit.IAsyncLifetime - { - - private global::Reqnroll.ITestRunner testRunner; - - private static string[] featureTags = ((string[])(null)); - - private static global::Reqnroll.FeatureInfo featureInfo = new global::Reqnroll.FeatureInfo(new global::System.Globalization.CultureInfo("en-US"), "Features/Transport", "MCP Streamable HTTP Transport", " As an MCP client\r\n I want to connect via the native MCP protocol endpoint\r\n S" + - "o that I can use standard MCP client libraries", global::Reqnroll.ProgrammingLanguage.CSharp, featureTags, InitializeCucumberMessages()); - - private global::Xunit.Abstractions.ITestOutputHelper _testOutputHelper; - -#line 1 "McpStreamableHttp.feature" -#line hidden - - public MCPStreamableHTTPTransportFeature(MCPStreamableHTTPTransportFeature.FixtureData fixtureData, global::Xunit.Abstractions.ITestOutputHelper testOutputHelper) - { - this._testOutputHelper = testOutputHelper; - } - - public static async global::System.Threading.Tasks.Task FeatureSetupAsync() - { - } - - public static async global::System.Threading.Tasks.Task FeatureTearDownAsync() - { - await global::Reqnroll.TestRunnerManager.ReleaseFeatureAsync(featureInfo); - } - - public async global::System.Threading.Tasks.Task TestInitializeAsync() - { - testRunner = global::Reqnroll.TestRunnerManager.GetTestRunnerForAssembly(featureHint: featureInfo); - try - { - if (((testRunner.FeatureContext != null) - && (testRunner.FeatureContext.FeatureInfo.Equals(featureInfo) == false))) - { - await testRunner.OnFeatureEndAsync(); - } - } - finally - { - if (((testRunner.FeatureContext != null) - && testRunner.FeatureContext.BeforeFeatureHookFailed)) - { - throw new global::Reqnroll.ReqnrollException("Scenario skipped because of previous before feature hook error"); - } - if ((testRunner.FeatureContext == null)) - { - await testRunner.OnFeatureStartAsync(featureInfo); - } - } - } - - public async global::System.Threading.Tasks.Task TestTearDownAsync() - { - if ((testRunner == null)) - { - return; - } - try - { - await testRunner.OnScenarioEndAsync(); - } - finally - { - global::Reqnroll.TestRunnerManager.ReleaseTestRunner(testRunner); - testRunner = null; - } - } - - public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, global::Reqnroll.RuleInfo ruleInfo) - { - testRunner.OnScenarioInitialize(scenarioInfo, ruleInfo); - testRunner.ScenarioContext.ScenarioContainer.RegisterInstanceAs(_testOutputHelper); - } - - public async global::System.Threading.Tasks.Task ScenarioStartAsync() - { - await testRunner.OnScenarioStartAsync(); - } - - public async global::System.Threading.Tasks.Task ScenarioCleanupAsync() - { - await testRunner.CollectScenarioErrorsAsync(); - } - - public virtual async global::System.Threading.Tasks.Task FeatureBackgroundAsync() - { -#line 6 - #line hidden -#line 7 - await testRunner.GivenAsync("the MCP server is running", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden - } - - private static global::Io.Cucumber.Messages.Types.Source SourceFunc() - { - return new global::Io.Cucumber.Messages.Types.Source("Features/Transport/McpStreamableHttp.feature", @"Feature: MCP Streamable HTTP Transport - As an MCP client - I want to connect via the native MCP protocol endpoint - So that I can use standard MCP client libraries - - Background: - Given the MCP server is running - - # FR-MCP-016 / TR-MCP-HTTP-001 / TEST-MCP-012 - - Scenario: MCP transport endpoint exists at /mcp-transport - When I send a GET request to ""/mcp-transport"" - Then the response status code is not 404 - - Scenario: MCP transport endpoint returns 406 without required Accept header - When I send a GET request to ""/mcp-transport"" without Accept header - Then the response status code is 405 or 406 or 400 - - Scenario: Health endpoint returns Healthy - When I send a GET request to ""/health"" - Then the response status code should be 200 - And the response body should contain ""Healthy"" - - Scenario: REST API and MCP transport coexist on the same port - When I send a GET request to ""/mcp/todo"" - Then the response status code should be 200 - When I send a GET request to ""/mcp-transport"" - Then the response status code is not 404 - - Scenario: STDIO transport mode does not conflict with HTTP mode - # FR-MCP-007 — dual transport support - When I send a GET request to ""/mcp/todo"" - Then the response status code should be 200 - - Scenario: Swagger UI is accessible at /swagger - When I send a GET request to ""/swagger"" - Then the response status code is 200 or 301 or 302 -", global::Io.Cucumber.Messages.Types.SourceMediaType.TEXT_X_CUCUMBER_GHERKIN_PLAIN); - } - - private static global::Io.Cucumber.Messages.Types.GherkinDocument GherkinDocumentFunc() - { - return new global::Io.Cucumber.Messages.Types.GherkinDocument("Features/Transport/McpStreamableHttp.feature", new global::Io.Cucumber.Messages.Types.Feature(new global::Io.Cucumber.Messages.Types.Location(1, new System.Nullable(1)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "en-US", "Feature", "MCP Streamable HTTP Transport", " As an MCP client\r\n I want to connect via the native MCP protocol endpoint\r\n S" + - "o that I can use standard MCP client libraries", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.FeatureChild[] { - new global::Io.Cucumber.Messages.Types.FeatureChild(null, new global::Io.Cucumber.Messages.Types.Background(new global::Io.Cucumber.Messages.Types.Location(6, new System.Nullable(3)), "Background", "", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(7, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "the MCP server is running", null, null, "e6069bbef4e2af568cc62a85885d9fef")}), "bc669fc278929155bac108760e044f51"), null), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(11, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "MCP transport endpoint exists at /mcp-transport", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(12, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp-transport\"", null, null, "4aca1cdea3747257891668a7c508694a"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(13, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code is not 404", null, null, "c50857a03013e15aba3588100aa2c4cd")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "20abe5767d321a51929a972629fc0849")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(15, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "MCP transport endpoint returns 406 without required Accept header", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(16, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp-transport\" without Accept header", null, null, "63530a0f91ffa255aacab8ab4c9383b6"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(17, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code is 405 or 406 or 400", null, null, "0889ea1bb3a01c5cadcc5e0f0f4a07bb")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "35816d0b8d31d5579f04c624f05be587")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(19, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Health endpoint returns Healthy", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(20, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/health\"", null, null, "80e763b26aadde5a828f8a3e70fbeb56"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(21, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "ca67393cfc14b85b94c9e2919aa79d88"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(22, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the response body should contain \"Healthy\"", null, null, "663ec9cd81349255a49ad83c8cac6dec")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "cd16069cce06925290063540e31ccab7")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(24, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "REST API and MCP transport coexist on the same port", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(25, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/todo\"", null, null, "644534fe7e8f3f50afe039bcb307d140"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(26, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "1c8a0003c504705eb2a3d38008ab0337"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(27, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp-transport\"", null, null, "9722d2b3bc392a588640a54c1feb0161"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(28, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code is not 404", null, null, "33f1e4ec68beb955b1e519b1fd87d5ac")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "d3b3c1c1ddf2e3509c15d2dc1a4040b5")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(30, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "STDIO transport mode does not conflict with HTTP mode", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(32, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/todo\"", null, null, "0f8217d1d5e75d58a5781979cb6336b8"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(33, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "6aa96de854103c5cbba551eeb48b8d56")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "7df8871f8147d35c8e94616159c500fe")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(35, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Swagger UI is accessible at /swagger", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(36, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/swagger\"", null, null, "26a73e48f57fae5eb8987d46733527e8"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(37, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code is 200 or 301 or 302", null, null, "ae52d792baace85dae76ca129abbf196")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "d74957edb1e13b5981d7e02d7c294d8a"))})), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Comment[] { - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(9, new System.Nullable(1)), " # FR-MCP-016 / TR-MCP-HTTP-001 / TEST-MCP-012"), - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(31, new System.Nullable(1)), " # FR-MCP-007 — dual transport support")})); - } - - private static global::System.Collections.Generic.IEnumerable PicklesFunc() - { - return new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Pickle[] { - new global::Io.Cucumber.Messages.Types.Pickle("68a1022370f8a156b8e3b338e1b8b2ec", "Features/Transport/McpStreamableHttp.feature", "MCP transport endpoint exists at /mcp-transport", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "e6069bbef4e2af568cc62a85885d9fef"}), "cdc8c1e085d0e55ab57f5d28f6aa471b", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "4aca1cdea3747257891668a7c508694a"}), "2e29ea9dc9c3d352ace711743adeeac4", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp-transport\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "c50857a03013e15aba3588100aa2c4cd"}), "2dfc04bbfb49315f948d75e61b5c58a5", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code is not 404")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "20abe5767d321a51929a972629fc0849"})), - new global::Io.Cucumber.Messages.Types.Pickle("f8ba89cb2c6d6d56960d1651d5c62527", "Features/Transport/McpStreamableHttp.feature", "MCP transport endpoint returns 406 without required Accept header", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "e6069bbef4e2af568cc62a85885d9fef"}), "685b6f06e1d50052b0b06d88fa39f1f3", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "63530a0f91ffa255aacab8ab4c9383b6"}), "830e7ef9dc7efc59a498aac64e15fdae", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp-transport\" without Accept header"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "0889ea1bb3a01c5cadcc5e0f0f4a07bb"}), "914b70497f706459a3386e6983db5170", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code is 405 or 406 or 400")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "35816d0b8d31d5579f04c624f05be587"})), - new global::Io.Cucumber.Messages.Types.Pickle("0c6a6d9cfce07353823b2241cc7f019d", "Features/Transport/McpStreamableHttp.feature", "Health endpoint returns Healthy", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "e6069bbef4e2af568cc62a85885d9fef"}), "d0e43b5d4dfeee599c23fa5099bb575e", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "80e763b26aadde5a828f8a3e70fbeb56"}), "38cc4d914f476b58944863e1e72bd46b", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/health\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "ca67393cfc14b85b94c9e2919aa79d88"}), "85e9acdd85910b548b47188cb5af8d25", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "663ec9cd81349255a49ad83c8cac6dec"}), "ed8ce3b5216b8253b87cb27d8230cc93", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response body should contain \"Healthy\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "cd16069cce06925290063540e31ccab7"})), - new global::Io.Cucumber.Messages.Types.Pickle("9549322007e30f5892127ae7b12b8b49", "Features/Transport/McpStreamableHttp.feature", "REST API and MCP transport coexist on the same port", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "e6069bbef4e2af568cc62a85885d9fef"}), "d78cb2adb6967a52b77f447093472016", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "644534fe7e8f3f50afe039bcb307d140"}), "6a31a346c4ebac5f8034a3e24208310b", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/todo\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "1c8a0003c504705eb2a3d38008ab0337"}), "7c9695070122885883f38e59df713cb4", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "9722d2b3bc392a588640a54c1feb0161"}), "072d0f3ef06d6154af7bf95f43e29b22", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp-transport\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "33f1e4ec68beb955b1e519b1fd87d5ac"}), "23ac333c88117b5693bb59168c3cc791", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code is not 404")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "d3b3c1c1ddf2e3509c15d2dc1a4040b5"})), - new global::Io.Cucumber.Messages.Types.Pickle("1bab9cb06b431f59a888312dd339e7fd", "Features/Transport/McpStreamableHttp.feature", "STDIO transport mode does not conflict with HTTP mode", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "e6069bbef4e2af568cc62a85885d9fef"}), "9ae90a3dd453ff5e8a953be5a9842709", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "0f8217d1d5e75d58a5781979cb6336b8"}), "18fecd127ee7ad539226675b70c01eeb", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/todo\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "6aa96de854103c5cbba551eeb48b8d56"}), "a0807e0067406953a2ea2f603b62c35b", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "7df8871f8147d35c8e94616159c500fe"})), - new global::Io.Cucumber.Messages.Types.Pickle("141a3c4bb274fc5c9c0d1fd973ef909a", "Features/Transport/McpStreamableHttp.feature", "Swagger UI is accessible at /swagger", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "e6069bbef4e2af568cc62a85885d9fef"}), "59bbcb784b424e5c8cbcc53924f35725", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "26a73e48f57fae5eb8987d46733527e8"}), "7786d92c086e585aa1deec30afaac8a1", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/swagger\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "ae52d792baace85dae76ca129abbf196"}), "efd0841b938dd85984ea8d4607a85a27", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code is 200 or 301 or 302")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "d74957edb1e13b5981d7e02d7c294d8a"}))}); - } - - private static global::Reqnroll.Formatters.RuntimeSupport.FeatureLevelCucumberMessages InitializeCucumberMessages() - { - return new global::Reqnroll.Formatters.RuntimeSupport.FeatureLevelCucumberMessages(new global::System.Func(MCPStreamableHTTPTransportFeature.SourceFunc), new global::System.Func(MCPStreamableHTTPTransportFeature.GherkinDocumentFunc), new global::System.Func>(MCPStreamableHTTPTransportFeature.PicklesFunc)); - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.InitializeAsync() - { - try - { - await this.TestInitializeAsync(); - } - catch (System.Exception e1) - { - try - { - ((global::Xunit.IAsyncLifetime)(this)).DisposeAsync(); - } - catch (System.Exception e2) - { - throw new System.AggregateException("Test initialization failed", e1, e2); - } - throw; - } - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.DisposeAsync() - { - await this.TestTearDownAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="MCP transport endpoint exists at /mcp-transport")] - [global::Xunit.TraitAttribute("FeatureTitle", "MCP Streamable HTTP Transport")] - [global::Xunit.TraitAttribute("Description", "MCP transport endpoint exists at /mcp-transport")] - public async global::System.Threading.Tasks.Task MCPTransportEndpointExistsAtMcp_Transport() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "0"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("MCP transport endpoint exists at /mcp-transport", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 11 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 12 - await testRunner.WhenAsync("I send a GET request to \"/mcp-transport\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 13 - await testRunner.ThenAsync("the response status code is not 404", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="MCP transport endpoint returns 406 without required Accept header")] - [global::Xunit.TraitAttribute("FeatureTitle", "MCP Streamable HTTP Transport")] - [global::Xunit.TraitAttribute("Description", "MCP transport endpoint returns 406 without required Accept header")] - public async global::System.Threading.Tasks.Task MCPTransportEndpointReturns406WithoutRequiredAcceptHeader() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "1"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("MCP transport endpoint returns 406 without required Accept header", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 15 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 16 - await testRunner.WhenAsync("I send a GET request to \"/mcp-transport\" without Accept header", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 17 - await testRunner.ThenAsync("the response status code is 405 or 406 or 400", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Health endpoint returns Healthy")] - [global::Xunit.TraitAttribute("FeatureTitle", "MCP Streamable HTTP Transport")] - [global::Xunit.TraitAttribute("Description", "Health endpoint returns Healthy")] - public async global::System.Threading.Tasks.Task HealthEndpointReturnsHealthy() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "2"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Health endpoint returns Healthy", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 19 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 20 - await testRunner.WhenAsync("I send a GET request to \"/health\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 21 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 22 - await testRunner.AndAsync("the response body should contain \"Healthy\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="REST API and MCP transport coexist on the same port")] - [global::Xunit.TraitAttribute("FeatureTitle", "MCP Streamable HTTP Transport")] - [global::Xunit.TraitAttribute("Description", "REST API and MCP transport coexist on the same port")] - public async global::System.Threading.Tasks.Task RESTAPIAndMCPTransportCoexistOnTheSamePort() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "3"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("REST API and MCP transport coexist on the same port", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 24 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 25 - await testRunner.WhenAsync("I send a GET request to \"/mcp/todo\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 26 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 27 - await testRunner.WhenAsync("I send a GET request to \"/mcp-transport\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 28 - await testRunner.ThenAsync("the response status code is not 404", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="STDIO transport mode does not conflict with HTTP mode")] - [global::Xunit.TraitAttribute("FeatureTitle", "MCP Streamable HTTP Transport")] - [global::Xunit.TraitAttribute("Description", "STDIO transport mode does not conflict with HTTP mode")] - public async global::System.Threading.Tasks.Task STDIOTransportModeDoesNotConflictWithHTTPMode() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "4"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("STDIO transport mode does not conflict with HTTP mode", "", tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 30 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 32 - await testRunner.WhenAsync("I send a GET request to \"/mcp/todo\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 33 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Swagger UI is accessible at /swagger")] - [global::Xunit.TraitAttribute("FeatureTitle", "MCP Streamable HTTP Transport")] - [global::Xunit.TraitAttribute("Description", "Swagger UI is accessible at /swagger")] - public async global::System.Threading.Tasks.Task SwaggerUIIsAccessibleAtSwagger() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "5"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Swagger UI is accessible at /swagger", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 35 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 36 - await testRunner.WhenAsync("I send a GET request to \"/swagger\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 37 - await testRunner.ThenAsync("the response status code is 200 or 301 or 302", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Reqnroll", "3.0.0.0")] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - public class FixtureData : object, global::Xunit.IAsyncLifetime - { - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.InitializeAsync() - { - await MCPStreamableHTTPTransportFeature.FeatureSetupAsync(); - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.DisposeAsync() - { - await MCPStreamableHTTPTransportFeature.FeatureTearDownAsync(); - } - } - } -} -#pragma warning restore -#endregion diff --git a/tests/McpServer.SpecFlow.Tests/Features/Tunnel/TunnelProviders.feature b/tests/McpServer.SpecFlow.Tests/Features/Tunnel/TunnelProviders.feature deleted file mode 100644 index 8d8f8698..00000000 --- a/tests/McpServer.SpecFlow.Tests/Features/Tunnel/TunnelProviders.feature +++ /dev/null @@ -1,42 +0,0 @@ -Feature: Tunnel Providers - As a server operator - I want the server to expose itself to the internet via pluggable tunnel providers - So that remote AI agents can connect to a locally running server - - # FR-MCP-015 / TR-MCP-TUN-001 / TR-MCP-TUN-002 / TR-MCP-TUN-003 / TEST-MCP-011 - - Scenario: Ngrok tunnel provider uses NGROK_AUTHTOKEN environment variable - # TR-MCP-TUN-003 — auth token passed via env var, not CLI argument - Given the NgrokTunnelProvider is configured with auth token "test-token" - When the NgrokTunnelProvider builds its process start info - Then the process arguments should not contain the auth token - And the environment variable "NGROK_AUTHTOKEN" should be set to "test-token" - - Scenario: Tunnel process stop is TOCTOU-safe via try-catch on Process.Kill - # TR-MCP-TUN-002 — Process.Kill wrapped in try-catch for InvalidOperationException - Given a tunnel process has already exited before StopAsync is called - When StopAsync is called on the tunnel provider - Then no InvalidOperationException is thrown - - Scenario: Tunnel process stop waits up to 5 seconds for graceful exit - # TR-MCP-TUN-002 — WaitForExit(5000) timeout - Given a tunnel provider has an active process - When StopAsync is called - Then the provider waits at most 5000 milliseconds for the process to exit - - Scenario: FRP tunnel config file is deleted after stop - # TR-MCP-TUN-002 — FRP config files cleaned up - Given the FrpTunnelProvider wrote a config file - When StopAsync is called on the FrpTunnelProvider - Then the FRP config file should be deleted - - Scenario: Tunnel provider is registered as IHostedService when provider name is set - # TR-MCP-TUN-001 — registered as IHostedService conditionally - Given tunnel provider "ngrok" is configured - Then the DI container should contain a registered IHostedService for the tunnel provider - - Scenario: Cloudflare tunnel uses cloudflared quick tunnel when no named tunnel configured - Given the CloudflareTunnelProvider is configured without a tunnel name - When the CloudflareTunnelProvider builds its process start info - Then the process arguments should contain "tunnel" - And the process arguments should contain "run" diff --git a/tests/McpServer.SpecFlow.Tests/Features/Tunnel/TunnelProviders.feature.cs b/tests/McpServer.SpecFlow.Tests/Features/Tunnel/TunnelProviders.feature.cs deleted file mode 100644 index 3f85206e..00000000 --- a/tests/McpServer.SpecFlow.Tests/Features/Tunnel/TunnelProviders.feature.cs +++ /dev/null @@ -1,493 +0,0 @@ -// ------------------------------------------------------------------------------ -// -// This code was generated by Reqnroll (https://www.reqnroll.net/). -// Reqnroll Version:3.0.0.0 -// Reqnroll Generator Version:3.0.0.0 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -// ------------------------------------------------------------------------------ -#region Designer generated code -#pragma warning disable -using Reqnroll; -namespace McpServer.SpecFlow.Tests.Features.Tunnel -{ - - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Reqnroll", "3.0.0.0")] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - public partial class TunnelProvidersFeature : object, global::Xunit.IClassFixture, global::Xunit.IAsyncLifetime - { - - private global::Reqnroll.ITestRunner testRunner; - - private static string[] featureTags = ((string[])(null)); - - private static global::Reqnroll.FeatureInfo featureInfo = new global::Reqnroll.FeatureInfo(new global::System.Globalization.CultureInfo("en-US"), "Features/Tunnel", "Tunnel Providers", " As a server operator\r\n I want the server to expose itself to the internet via " + - "pluggable tunnel providers\r\n So that remote AI agents can connect to a locally " + - "running server", global::Reqnroll.ProgrammingLanguage.CSharp, featureTags, InitializeCucumberMessages()); - - private global::Xunit.Abstractions.ITestOutputHelper _testOutputHelper; - -#line 1 "TunnelProviders.feature" -#line hidden - - public TunnelProvidersFeature(TunnelProvidersFeature.FixtureData fixtureData, global::Xunit.Abstractions.ITestOutputHelper testOutputHelper) - { - this._testOutputHelper = testOutputHelper; - } - - public static async global::System.Threading.Tasks.Task FeatureSetupAsync() - { - } - - public static async global::System.Threading.Tasks.Task FeatureTearDownAsync() - { - await global::Reqnroll.TestRunnerManager.ReleaseFeatureAsync(featureInfo); - } - - public async global::System.Threading.Tasks.Task TestInitializeAsync() - { - testRunner = global::Reqnroll.TestRunnerManager.GetTestRunnerForAssembly(featureHint: featureInfo); - try - { - if (((testRunner.FeatureContext != null) - && (testRunner.FeatureContext.FeatureInfo.Equals(featureInfo) == false))) - { - await testRunner.OnFeatureEndAsync(); - } - } - finally - { - if (((testRunner.FeatureContext != null) - && testRunner.FeatureContext.BeforeFeatureHookFailed)) - { - throw new global::Reqnroll.ReqnrollException("Scenario skipped because of previous before feature hook error"); - } - if ((testRunner.FeatureContext == null)) - { - await testRunner.OnFeatureStartAsync(featureInfo); - } - } - } - - public async global::System.Threading.Tasks.Task TestTearDownAsync() - { - if ((testRunner == null)) - { - return; - } - try - { - await testRunner.OnScenarioEndAsync(); - } - finally - { - global::Reqnroll.TestRunnerManager.ReleaseTestRunner(testRunner); - testRunner = null; - } - } - - public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, global::Reqnroll.RuleInfo ruleInfo) - { - testRunner.OnScenarioInitialize(scenarioInfo, ruleInfo); - testRunner.ScenarioContext.ScenarioContainer.RegisterInstanceAs(_testOutputHelper); - } - - public async global::System.Threading.Tasks.Task ScenarioStartAsync() - { - await testRunner.OnScenarioStartAsync(); - } - - public async global::System.Threading.Tasks.Task ScenarioCleanupAsync() - { - await testRunner.CollectScenarioErrorsAsync(); - } - - private static global::Io.Cucumber.Messages.Types.Source SourceFunc() - { - return new global::Io.Cucumber.Messages.Types.Source("Features/Tunnel/TunnelProviders.feature", "Feature: Tunnel Providers\r\n As a server operator\r\n I want the server to expose " + - "itself to the internet via pluggable tunnel providers\r\n So that remote AI agent" + - "s can connect to a locally running server\r\n\r\n # FR-MCP-015 / TR-MCP-TUN-001 / T" + - "R-MCP-TUN-002 / TR-MCP-TUN-003 / TEST-MCP-011\r\n\r\n Scenario: Ngrok tunnel provid" + - "er uses NGROK_AUTHTOKEN environment variable\r\n # TR-MCP-TUN-003 — auth token " + - "passed via env var, not CLI argument\r\n Given the NgrokTunnelProvider is confi" + - "gured with auth token \"test-token\"\r\n When the NgrokTunnelProvider builds its " + - "process start info\r\n Then the process arguments should not contain the auth t" + - "oken\r\n And the environment variable \"NGROK_AUTHTOKEN\" should be set to \"test-" + - "token\"\r\n\r\n Scenario: Tunnel process stop is TOCTOU-safe via try-catch on Proces" + - "s.Kill\r\n # TR-MCP-TUN-002 — Process.Kill wrapped in try-catch for InvalidOper" + - "ationException\r\n Given a tunnel process has already exited before StopAsync i" + - "s called\r\n When StopAsync is called on the tunnel provider\r\n Then no Inval" + - "idOperationException is thrown\r\n\r\n Scenario: Tunnel process stop waits up to 5 " + - "seconds for graceful exit\r\n # TR-MCP-TUN-002 — WaitForExit(5000) timeout\r\n " + - " Given a tunnel provider has an active process\r\n When StopAsync is called\r\n " + - " Then the provider waits at most 5000 milliseconds for the process to exit\r\n\r\n " + - " Scenario: FRP tunnel config file is deleted after stop\r\n # TR-MCP-TUN-002 — " + - "FRP config files cleaned up\r\n Given the FrpTunnelProvider wrote a config file" + - "\r\n When StopAsync is called on the FrpTunnelProvider\r\n Then the FRP config" + - " file should be deleted\r\n\r\n Scenario: Tunnel provider is registered as IHostedS" + - "ervice when provider name is set\r\n # TR-MCP-TUN-001 — registered as IHostedSe" + - "rvice conditionally\r\n Given tunnel provider \"ngrok\" is configured\r\n Then t" + - "he DI container should contain a registered IHostedService for the tunnel provid" + - "er\r\n\r\n Scenario: Cloudflare tunnel uses cloudflared quick tunnel when no named " + - "tunnel configured\r\n Given the CloudflareTunnelProvider is configured without " + - "a tunnel name\r\n When the CloudflareTunnelProvider builds its process start in" + - "fo\r\n Then the process arguments should contain \"tunnel\"\r\n And the process " + - "arguments should contain \"run\"\r\n", global::Io.Cucumber.Messages.Types.SourceMediaType.TEXT_X_CUCUMBER_GHERKIN_PLAIN); - } - - private static global::Io.Cucumber.Messages.Types.GherkinDocument GherkinDocumentFunc() - { - return new global::Io.Cucumber.Messages.Types.GherkinDocument("Features/Tunnel/TunnelProviders.feature", new global::Io.Cucumber.Messages.Types.Feature(new global::Io.Cucumber.Messages.Types.Location(1, new System.Nullable(1)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "en-US", "Feature", "Tunnel Providers", " As a server operator\r\n I want the server to expose itself to the internet via " + - "pluggable tunnel providers\r\n So that remote AI agents can connect to a locally " + - "running server", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.FeatureChild[] { - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(8, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Ngrok tunnel provider uses NGROK_AUTHTOKEN environment variable", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(10, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "the NgrokTunnelProvider is configured with auth token \"test-token\"", null, null, "101f9a1c51d56e5c976cca42532a2729"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(11, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "the NgrokTunnelProvider builds its process start info", null, null, "63ce0de1456c1d59ac16079f85945e05"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(12, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the process arguments should not contain the auth token", null, null, "0ef789c1a75612589f78f29304959ade"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(13, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the environment variable \"NGROK_AUTHTOKEN\" should be set to \"test-token\"", null, null, "ff3fe2ca80daa05eb6056f9d85a4bbdb")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "d59664eadfed715d8f5d176d5103c2cb")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(15, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Tunnel process stop is TOCTOU-safe via try-catch on Process.Kill", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(17, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "a tunnel process has already exited before StopAsync is called", null, null, "ebc71c960b5b99598e2a0cb75aab8b0a"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(18, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "StopAsync is called on the tunnel provider", null, null, "f5a8fc435457525ca1013989bf77c433"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(19, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "no InvalidOperationException is thrown", null, null, "c5d903b2debe155090bdd42080c40eea")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "9ba942b87513a45093cefab2ba31e347")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(21, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Tunnel process stop waits up to 5 seconds for graceful exit", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(23, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "a tunnel provider has an active process", null, null, "3deb30dda9c76550b192f88170e40c9b"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(24, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "StopAsync is called", null, null, "b1b19e73edf9615ab07362e291b207e4"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(25, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the provider waits at most 5000 milliseconds for the process to exit", null, null, "4a18c7e7b00951578de64ec3985c5b56")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "43776ad158b0c75c996f7912483c085b")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(27, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "FRP tunnel config file is deleted after stop", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(29, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "the FrpTunnelProvider wrote a config file", null, null, "c586b22267980f508eb065c53e08046d"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(30, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "StopAsync is called on the FrpTunnelProvider", null, null, "973e1af9d7d66b54a0e61f39efccea11"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(31, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the FRP config file should be deleted", null, null, "4b7548619d10935fabf584c1f4485a35")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "3a1dfdb0c232845b8a994de30dad9b27")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(33, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Tunnel provider is registered as IHostedService when provider name is set", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(35, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "tunnel provider \"ngrok\" is configured", null, null, "9f317f6de7803259ada7c30686fcee86"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(36, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the DI container should contain a registered IHostedService for the tunnel provid" + - "er", null, null, "6d8612152971d651aaec8621c5348173")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "146c910cda055d51bfd26f2fb593d8e3")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(38, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Cloudflare tunnel uses cloudflared quick tunnel when no named tunnel configured", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(39, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "the CloudflareTunnelProvider is configured without a tunnel name", null, null, "1cdfbfaa58a01f5cb588b9b090a13b80"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(40, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "the CloudflareTunnelProvider builds its process start info", null, null, "ba2ebb8433f79155b26aa91b477eaee3"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(41, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the process arguments should contain \"tunnel\"", null, null, "45e5be10abc2db5b95a92111074c7cc8"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(42, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the process arguments should contain \"run\"", null, null, "bb146fa29efbd55e8689eebdfe963587")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "fef06975aa4d065887f1722f418c8baa"))})), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Comment[] { - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(6, new System.Nullable(1)), " # FR-MCP-015 / TR-MCP-TUN-001 / TR-MCP-TUN-002 / TR-MCP-TUN-003 / TEST-MCP-011"), - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(9, new System.Nullable(1)), " # TR-MCP-TUN-003 — auth token passed via env var, not CLI argument"), - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(16, new System.Nullable(1)), " # TR-MCP-TUN-002 — Process.Kill wrapped in try-catch for InvalidOperationExce" + - "ption"), - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(22, new System.Nullable(1)), " # TR-MCP-TUN-002 — WaitForExit(5000) timeout"), - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(28, new System.Nullable(1)), " # TR-MCP-TUN-002 — FRP config files cleaned up"), - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(34, new System.Nullable(1)), " # TR-MCP-TUN-001 — registered as IHostedService conditionally")})); - } - - private static global::System.Collections.Generic.IEnumerable PicklesFunc() - { - return new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Pickle[] { - new global::Io.Cucumber.Messages.Types.Pickle("2eb36f0b2c09c55a97694e558aeaacf2", "Features/Tunnel/TunnelProviders.feature", "Ngrok tunnel provider uses NGROK_AUTHTOKEN environment variable", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "101f9a1c51d56e5c976cca42532a2729"}), "f877501ae5618950941ee915ee1fad74", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the NgrokTunnelProvider is configured with auth token \"test-token\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "63ce0de1456c1d59ac16079f85945e05"}), "9fa1ee670d752d59819768c8e7b6791b", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "the NgrokTunnelProvider builds its process start info"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "0ef789c1a75612589f78f29304959ade"}), "1b67d32975f8c55dab4b9e4963b02bd2", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the process arguments should not contain the auth token"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "ff3fe2ca80daa05eb6056f9d85a4bbdb"}), "99d524250ca8ef5aab8b221b44fb1307", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the environment variable \"NGROK_AUTHTOKEN\" should be set to \"test-token\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "d59664eadfed715d8f5d176d5103c2cb"})), - new global::Io.Cucumber.Messages.Types.Pickle("ee0324370ee7e75583801260af5b175e", "Features/Tunnel/TunnelProviders.feature", "Tunnel process stop is TOCTOU-safe via try-catch on Process.Kill", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "ebc71c960b5b99598e2a0cb75aab8b0a"}), "6a26a89666e7115fab53b82c354c9177", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a tunnel process has already exited before StopAsync is called"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "f5a8fc435457525ca1013989bf77c433"}), "56fbc83e1d8eb0589159b8e4d6aec77e", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "StopAsync is called on the tunnel provider"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "c5d903b2debe155090bdd42080c40eea"}), "00f73b14c18d655aa7afc38f3576dd7f", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "no InvalidOperationException is thrown")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "9ba942b87513a45093cefab2ba31e347"})), - new global::Io.Cucumber.Messages.Types.Pickle("94ecd2c7381a195bbc9384f807599371", "Features/Tunnel/TunnelProviders.feature", "Tunnel process stop waits up to 5 seconds for graceful exit", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "3deb30dda9c76550b192f88170e40c9b"}), "440aaec06a5c30579b4c9cd95e0ebad7", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a tunnel provider has an active process"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "b1b19e73edf9615ab07362e291b207e4"}), "56fed80ddada3d52b34cfd86a3385bfb", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "StopAsync is called"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "4a18c7e7b00951578de64ec3985c5b56"}), "2a2818652cd09751bd97b1a7faf51ac4", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the provider waits at most 5000 milliseconds for the process to exit")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "43776ad158b0c75c996f7912483c085b"})), - new global::Io.Cucumber.Messages.Types.Pickle("a4fcff175e65f658ac1a912efe951a13", "Features/Tunnel/TunnelProviders.feature", "FRP tunnel config file is deleted after stop", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "c586b22267980f508eb065c53e08046d"}), "85808963271d545ea5d4de346b8217d2", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the FrpTunnelProvider wrote a config file"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "973e1af9d7d66b54a0e61f39efccea11"}), "98b2b9ae34733e588e7fae6026cbbad9", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "StopAsync is called on the FrpTunnelProvider"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "4b7548619d10935fabf584c1f4485a35"}), "a84ad602527b7a588b03c63ee4ac7928", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the FRP config file should be deleted")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "3a1dfdb0c232845b8a994de30dad9b27"})), - new global::Io.Cucumber.Messages.Types.Pickle("417c257c13a0b65799bda36f6ea03a31", "Features/Tunnel/TunnelProviders.feature", "Tunnel provider is registered as IHostedService when provider name is set", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "9f317f6de7803259ada7c30686fcee86"}), "bff0bb7c298f2c51a1af8db8ed49504c", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "tunnel provider \"ngrok\" is configured"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "6d8612152971d651aaec8621c5348173"}), "ca850f6048a69459ac22ea3fe66eb081", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the DI container should contain a registered IHostedService for the tunnel provid" + - "er")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "146c910cda055d51bfd26f2fb593d8e3"})), - new global::Io.Cucumber.Messages.Types.Pickle("351658b4df404154bc1f8795aad3449e", "Features/Tunnel/TunnelProviders.feature", "Cloudflare tunnel uses cloudflared quick tunnel when no named tunnel configured", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "1cdfbfaa58a01f5cb588b9b090a13b80"}), "22a7fee6d55174518ae0d3a421c4a513", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the CloudflareTunnelProvider is configured without a tunnel name"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "ba2ebb8433f79155b26aa91b477eaee3"}), "32cede38052b2b5e95da580a578449fd", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "the CloudflareTunnelProvider builds its process start info"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "45e5be10abc2db5b95a92111074c7cc8"}), "6708e60752a2d25fa307e07764c3f9ea", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the process arguments should contain \"tunnel\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "bb146fa29efbd55e8689eebdfe963587"}), "6f17b21f45cf08508fd92b8666092ae4", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the process arguments should contain \"run\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "fef06975aa4d065887f1722f418c8baa"}))}); - } - - private static global::Reqnroll.Formatters.RuntimeSupport.FeatureLevelCucumberMessages InitializeCucumberMessages() - { - return new global::Reqnroll.Formatters.RuntimeSupport.FeatureLevelCucumberMessages(new global::System.Func(TunnelProvidersFeature.SourceFunc), new global::System.Func(TunnelProvidersFeature.GherkinDocumentFunc), new global::System.Func>(TunnelProvidersFeature.PicklesFunc)); - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.InitializeAsync() - { - try - { - await this.TestInitializeAsync(); - } - catch (System.Exception e1) - { - try - { - ((global::Xunit.IAsyncLifetime)(this)).DisposeAsync(); - } - catch (System.Exception e2) - { - throw new System.AggregateException("Test initialization failed", e1, e2); - } - throw; - } - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.DisposeAsync() - { - await this.TestTearDownAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Ngrok tunnel provider uses NGROK_AUTHTOKEN environment variable")] - [global::Xunit.TraitAttribute("FeatureTitle", "Tunnel Providers")] - [global::Xunit.TraitAttribute("Description", "Ngrok tunnel provider uses NGROK_AUTHTOKEN environment variable")] - public async global::System.Threading.Tasks.Task NgrokTunnelProviderUsesNGROK_AUTHTOKENEnvironmentVariable() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "0"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Ngrok tunnel provider uses NGROK_AUTHTOKEN environment variable", "", tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 8 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 10 - await testRunner.GivenAsync("the NgrokTunnelProvider is configured with auth token \"test-token\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 11 - await testRunner.WhenAsync("the NgrokTunnelProvider builds its process start info", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 12 - await testRunner.ThenAsync("the process arguments should not contain the auth token", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 13 - await testRunner.AndAsync("the environment variable \"NGROK_AUTHTOKEN\" should be set to \"test-token\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Tunnel process stop is TOCTOU-safe via try-catch on Process.Kill")] - [global::Xunit.TraitAttribute("FeatureTitle", "Tunnel Providers")] - [global::Xunit.TraitAttribute("Description", "Tunnel process stop is TOCTOU-safe via try-catch on Process.Kill")] - public async global::System.Threading.Tasks.Task TunnelProcessStopIsTOCTOU_SafeViaTry_CatchOnProcess_Kill() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "1"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Tunnel process stop is TOCTOU-safe via try-catch on Process.Kill", "", tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 15 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 17 - await testRunner.GivenAsync("a tunnel process has already exited before StopAsync is called", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 18 - await testRunner.WhenAsync("StopAsync is called on the tunnel provider", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 19 - await testRunner.ThenAsync("no InvalidOperationException is thrown", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Tunnel process stop waits up to 5 seconds for graceful exit")] - [global::Xunit.TraitAttribute("FeatureTitle", "Tunnel Providers")] - [global::Xunit.TraitAttribute("Description", "Tunnel process stop waits up to 5 seconds for graceful exit")] - public async global::System.Threading.Tasks.Task TunnelProcessStopWaitsUpTo5SecondsForGracefulExit() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "2"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Tunnel process stop waits up to 5 seconds for graceful exit", "", tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 21 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 23 - await testRunner.GivenAsync("a tunnel provider has an active process", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 24 - await testRunner.WhenAsync("StopAsync is called", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 25 - await testRunner.ThenAsync("the provider waits at most 5000 milliseconds for the process to exit", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="FRP tunnel config file is deleted after stop")] - [global::Xunit.TraitAttribute("FeatureTitle", "Tunnel Providers")] - [global::Xunit.TraitAttribute("Description", "FRP tunnel config file is deleted after stop")] - public async global::System.Threading.Tasks.Task FRPTunnelConfigFileIsDeletedAfterStop() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "3"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("FRP tunnel config file is deleted after stop", "", tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 27 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 29 - await testRunner.GivenAsync("the FrpTunnelProvider wrote a config file", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 30 - await testRunner.WhenAsync("StopAsync is called on the FrpTunnelProvider", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 31 - await testRunner.ThenAsync("the FRP config file should be deleted", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Tunnel provider is registered as IHostedService when provider name is set")] - [global::Xunit.TraitAttribute("FeatureTitle", "Tunnel Providers")] - [global::Xunit.TraitAttribute("Description", "Tunnel provider is registered as IHostedService when provider name is set")] - public async global::System.Threading.Tasks.Task TunnelProviderIsRegisteredAsIHostedServiceWhenProviderNameIsSet() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "4"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Tunnel provider is registered as IHostedService when provider name is set", "", tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 33 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 35 - await testRunner.GivenAsync("tunnel provider \"ngrok\" is configured", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 36 - await testRunner.ThenAsync("the DI container should contain a registered IHostedService for the tunnel provid" + - "er", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Cloudflare tunnel uses cloudflared quick tunnel when no named tunnel configured")] - [global::Xunit.TraitAttribute("FeatureTitle", "Tunnel Providers")] - [global::Xunit.TraitAttribute("Description", "Cloudflare tunnel uses cloudflared quick tunnel when no named tunnel configured")] - public async global::System.Threading.Tasks.Task CloudflareTunnelUsesCloudflaredQuickTunnelWhenNoNamedTunnelConfigured() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "5"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Cloudflare tunnel uses cloudflared quick tunnel when no named tunnel configured", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 38 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 39 - await testRunner.GivenAsync("the CloudflareTunnelProvider is configured without a tunnel name", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 40 - await testRunner.WhenAsync("the CloudflareTunnelProvider builds its process start info", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 41 - await testRunner.ThenAsync("the process arguments should contain \"tunnel\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 42 - await testRunner.AndAsync("the process arguments should contain \"run\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Reqnroll", "3.0.0.0")] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - public class FixtureData : object, global::Xunit.IAsyncLifetime - { - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.InitializeAsync() - { - await TunnelProvidersFeature.FeatureSetupAsync(); - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.DisposeAsync() - { - await TunnelProvidersFeature.FeatureTearDownAsync(); - } - } - } -} -#pragma warning restore -#endregion diff --git a/tests/McpServer.SpecFlow.Tests/Features/Workspace/PrimaryWorkspace.feature b/tests/McpServer.SpecFlow.Tests/Features/Workspace/PrimaryWorkspace.feature deleted file mode 100644 index 08dc7b64..00000000 --- a/tests/McpServer.SpecFlow.Tests/Features/Workspace/PrimaryWorkspace.feature +++ /dev/null @@ -1,43 +0,0 @@ -Feature: Primary Workspace Detection - As the server host process - I want one workspace designated as the primary - So that its lifecycle is managed by the host process directly - - Background: - Given the MCP server is running - - # FR-MCP-025 / TR-MCP-WS-009 - - Scenario: Primary workspace prompt endpoint returns 200 - When I send a GET request to "/mcp/workspace/prompt" - Then the response status code is 200 or 403 - - Scenario: Primary workspace with IsPrimary flag true is served by the host process - When I send a GET request to "/mcp/workspace" - Then the response status code should be 200 - And at most one workspace in the result has "isPrimary" set to true - - Scenario: Primary workspace status always returns isRunning - Given the primary workspace key is stored as "primaryKey" - When I send a GET request to "/mcp/workspace/{primaryKey}/status" - Then the response status code is 200 or 404 - - Scenario: Workspace auto-start skips disabled workspaces on startup - # Disabled workspaces have isEnabled = false; they are logged as skipped - When I send a GET request to "/mcp/workspace" - Then the response status code should be 200 - And the response body should contain "totalCount" - - Scenario: Workspace IsPrimary resolution uses lowest-port enabled workspace when none is flagged - # When no workspace has IsPrimary=true, the enabled workspace with lowest port is primary - When I send a GET request to "/mcp/workspace" - Then the response status code should be 200 - - Scenario: WorkspaceController is excluded from workspace-scoped ports - # Workspace lifecycle endpoints are only on the primary host - Given I use a unique temp directory stored as "isolPath" - And a workspace exists for path "{isolPath}" with key stored as "isolKey" - And the workspace port is stored as "isolPort" - When I send a GET request to "/mcp/workspace/{isolKey}/status" - Then the response status code should be 200 - And I delete the created workspace using the path "{isolPath}" diff --git a/tests/McpServer.SpecFlow.Tests/Features/Workspace/PrimaryWorkspace.feature.cs b/tests/McpServer.SpecFlow.Tests/Features/Workspace/PrimaryWorkspace.feature.cs deleted file mode 100644 index 181d0280..00000000 --- a/tests/McpServer.SpecFlow.Tests/Features/Workspace/PrimaryWorkspace.feature.cs +++ /dev/null @@ -1,529 +0,0 @@ -// ------------------------------------------------------------------------------ -// -// This code was generated by Reqnroll (https://www.reqnroll.net/). -// Reqnroll Version:3.0.0.0 -// Reqnroll Generator Version:3.0.0.0 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -// ------------------------------------------------------------------------------ -#region Designer generated code -#pragma warning disable -using Reqnroll; -namespace McpServer.SpecFlow.Tests.Features.Workspace -{ - - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Reqnroll", "3.0.0.0")] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - public partial class PrimaryWorkspaceDetectionFeature : object, global::Xunit.IClassFixture, global::Xunit.IAsyncLifetime - { - - private global::Reqnroll.ITestRunner testRunner; - - private static string[] featureTags = ((string[])(null)); - - private static global::Reqnroll.FeatureInfo featureInfo = new global::Reqnroll.FeatureInfo(new global::System.Globalization.CultureInfo("en-US"), "Features/Workspace", "Primary Workspace Detection", " As the server host process\r\n I want one workspace designated as the primary\r\n " + - " So that its lifecycle is managed by the host process directly", global::Reqnroll.ProgrammingLanguage.CSharp, featureTags, InitializeCucumberMessages()); - - private global::Xunit.Abstractions.ITestOutputHelper _testOutputHelper; - -#line 1 "PrimaryWorkspace.feature" -#line hidden - - public PrimaryWorkspaceDetectionFeature(PrimaryWorkspaceDetectionFeature.FixtureData fixtureData, global::Xunit.Abstractions.ITestOutputHelper testOutputHelper) - { - this._testOutputHelper = testOutputHelper; - } - - public static async global::System.Threading.Tasks.Task FeatureSetupAsync() - { - } - - public static async global::System.Threading.Tasks.Task FeatureTearDownAsync() - { - await global::Reqnroll.TestRunnerManager.ReleaseFeatureAsync(featureInfo); - } - - public async global::System.Threading.Tasks.Task TestInitializeAsync() - { - testRunner = global::Reqnroll.TestRunnerManager.GetTestRunnerForAssembly(featureHint: featureInfo); - try - { - if (((testRunner.FeatureContext != null) - && (testRunner.FeatureContext.FeatureInfo.Equals(featureInfo) == false))) - { - await testRunner.OnFeatureEndAsync(); - } - } - finally - { - if (((testRunner.FeatureContext != null) - && testRunner.FeatureContext.BeforeFeatureHookFailed)) - { - throw new global::Reqnroll.ReqnrollException("Scenario skipped because of previous before feature hook error"); - } - if ((testRunner.FeatureContext == null)) - { - await testRunner.OnFeatureStartAsync(featureInfo); - } - } - } - - public async global::System.Threading.Tasks.Task TestTearDownAsync() - { - if ((testRunner == null)) - { - return; - } - try - { - await testRunner.OnScenarioEndAsync(); - } - finally - { - global::Reqnroll.TestRunnerManager.ReleaseTestRunner(testRunner); - testRunner = null; - } - } - - public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, global::Reqnroll.RuleInfo ruleInfo) - { - testRunner.OnScenarioInitialize(scenarioInfo, ruleInfo); - testRunner.ScenarioContext.ScenarioContainer.RegisterInstanceAs(_testOutputHelper); - } - - public async global::System.Threading.Tasks.Task ScenarioStartAsync() - { - await testRunner.OnScenarioStartAsync(); - } - - public async global::System.Threading.Tasks.Task ScenarioCleanupAsync() - { - await testRunner.CollectScenarioErrorsAsync(); - } - - public virtual async global::System.Threading.Tasks.Task FeatureBackgroundAsync() - { -#line 6 - #line hidden -#line 7 - await testRunner.GivenAsync("the MCP server is running", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden - } - - private static global::Io.Cucumber.Messages.Types.Source SourceFunc() - { - return new global::Io.Cucumber.Messages.Types.Source("Features/Workspace/PrimaryWorkspace.feature", "Feature: Primary Workspace Detection\r\n As the server host process\r\n I want one " + - "workspace designated as the primary\r\n So that its lifecycle is managed by the h" + - "ost process directly\r\n\r\n Background:\r\n Given the MCP server is running\r\n\r\n " + - "# FR-MCP-025 / TR-MCP-WS-009\r\n\r\n Scenario: Primary workspace prompt endpoint re" + - "turns 200\r\n When I send a GET request to \"/mcp/workspace/prompt\"\r\n Then th" + - "e response status code is 200 or 403\r\n\r\n Scenario: Primary workspace with IsPri" + - "mary flag true is served by the host process\r\n When I send a GET request to \"" + - "/mcp/workspace\"\r\n Then the response status code should be 200\r\n And at mos" + - "t one workspace in the result has \"isPrimary\" set to true\r\n\r\n Scenario: Primary" + - " workspace status always returns isRunning\r\n Given the primary workspace key " + - "is stored as \"primaryKey\"\r\n When I send a GET request to \"/mcp/workspace/{pri" + - "maryKey}/status\"\r\n Then the response status code is 200 or 404\r\n\r\n Scenario:" + - " Workspace auto-start skips disabled workspaces on startup\r\n # Disabled works" + - "paces have isEnabled = false; they are logged as skipped\r\n When I send a GET " + - "request to \"/mcp/workspace\"\r\n Then the response status code should be 200\r\n " + - " And the response body should contain \"totalCount\"\r\n\r\n Scenario: Workspace IsP" + - "rimary resolution uses lowest-port enabled workspace when none is flagged\r\n #" + - " When no workspace has IsPrimary=true, the enabled workspace with lowest port is" + - " primary\r\n When I send a GET request to \"/mcp/workspace\"\r\n Then the respon" + - "se status code should be 200\r\n\r\n Scenario: WorkspaceController is excluded from" + - " workspace-scoped ports\r\n # Workspace lifecycle endpoints are only on the pri" + - "mary host\r\n Given I use a unique temp directory stored as \"isolPath\"\r\n And" + - " a workspace exists for path \"{isolPath}\" with key stored as \"isolKey\"\r\n And " + - "the workspace port is stored as \"isolPort\"\r\n When I send a GET request to \"/m" + - "cp/workspace/{isolKey}/status\"\r\n Then the response status code should be 200\r" + - "\n And I delete the created workspace using the path \"{isolPath}\"\r\n", global::Io.Cucumber.Messages.Types.SourceMediaType.TEXT_X_CUCUMBER_GHERKIN_PLAIN); - } - - private static global::Io.Cucumber.Messages.Types.GherkinDocument GherkinDocumentFunc() - { - return new global::Io.Cucumber.Messages.Types.GherkinDocument("Features/Workspace/PrimaryWorkspace.feature", new global::Io.Cucumber.Messages.Types.Feature(new global::Io.Cucumber.Messages.Types.Location(1, new System.Nullable(1)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "en-US", "Feature", "Primary Workspace Detection", " As the server host process\r\n I want one workspace designated as the primary\r\n " + - " So that its lifecycle is managed by the host process directly", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.FeatureChild[] { - new global::Io.Cucumber.Messages.Types.FeatureChild(null, new global::Io.Cucumber.Messages.Types.Background(new global::Io.Cucumber.Messages.Types.Location(6, new System.Nullable(3)), "Background", "", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(7, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "the MCP server is running", null, null, "a2dbed0b08cb0059976cee76ff1cd562")}), "02ae730fd33f175897096cb1698d2800"), null), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(11, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Primary workspace prompt endpoint returns 200", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(12, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/workspace/prompt\"", null, null, "d281580689717555b8bf1bc3f8d1b909"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(13, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code is 200 or 403", null, null, "2473148c23bbbf519fc2a7bb966e63ed")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "0caa4fc48d7f6f57a1e1177562627c8f")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(15, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Primary workspace with IsPrimary flag true is served by the host process", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(16, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/workspace\"", null, null, "fcb5e46b08dbc858a96204f51dcb938c"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(17, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "bc7f46ce32022e5ca873a5cf774a7d94"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(18, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "at most one workspace in the result has \"isPrimary\" set to true", null, null, "4c108fceb7d9455aa7685592ee064545")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "54039646845ba9548ec116211e7c2380")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(20, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Primary workspace status always returns isRunning", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(21, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "the primary workspace key is stored as \"primaryKey\"", null, null, "b2670244a00fdd5fb864bbf011a1cdc7"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(22, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/workspace/{primaryKey}/status\"", null, null, "82ef066ba1a478598e56e4a54887c5e6"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(23, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code is 200 or 404", null, null, "f51c84f1fcd20b5d81b12b8e4b6e1d84")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "164890a11c0bcb5e8f956139c3cd1307")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(25, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Workspace auto-start skips disabled workspaces on startup", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(27, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/workspace\"", null, null, "477f2ef86b3012509dcbb1f796a11766"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(28, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "6a4b7ea4049d1b59aced13c01347c302"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(29, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the response body should contain \"totalCount\"", null, null, "b1d9a76465ac95558db529b49061e93f")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "2e101f73a95d345d9a992de8922acf4b")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(31, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Workspace IsPrimary resolution uses lowest-port enabled workspace when none is fl" + - "agged", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(33, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/workspace\"", null, null, "beb3446e9e09c551b231a5d3234dc9a1"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(34, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "5f31b65232a7915eb693611b42922eb0")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "732b2696a057075ea7efabf968301c6e")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(36, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "WorkspaceController is excluded from workspace-scoped ports", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(38, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "I use a unique temp directory stored as \"isolPath\"", null, null, "f82d487bec622c55be9bb50cab607d14"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(39, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "a workspace exists for path \"{isolPath}\" with key stored as \"isolKey\"", null, null, "e6c1cbacb5ee515f8dee3e9040364442"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(40, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the workspace port is stored as \"isolPort\"", null, null, "aba851626ddba75fb11f8731b4696feb"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(41, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/workspace/{isolKey}/status\"", null, null, "a7d5eda30da2d2569a76fbff28de93e5"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(42, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "c3c6a919a2f5c354969b21075574f21f"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(43, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I delete the created workspace using the path \"{isolPath}\"", null, null, "71103979b5b83c51805e4e4d4f6f7e98")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "73e178b840941357af300ef95dc6f335"))})), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Comment[] { - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(9, new System.Nullable(1)), " # FR-MCP-025 / TR-MCP-WS-009"), - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(26, new System.Nullable(1)), " # Disabled workspaces have isEnabled = false; they are logged as skipped"), - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(32, new System.Nullable(1)), " # When no workspace has IsPrimary=true, the enabled workspace with lowest por" + - "t is primary"), - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(37, new System.Nullable(1)), " # Workspace lifecycle endpoints are only on the primary host")})); - } - - private static global::System.Collections.Generic.IEnumerable PicklesFunc() - { - return new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Pickle[] { - new global::Io.Cucumber.Messages.Types.Pickle("d147c2fdab3b6a5d9109e0032333603c", "Features/Workspace/PrimaryWorkspace.feature", "Primary workspace prompt endpoint returns 200", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "a2dbed0b08cb0059976cee76ff1cd562"}), "da8db33854af1357bf97931fd0a6be9a", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "d281580689717555b8bf1bc3f8d1b909"}), "fbefb4a8943dda549e7d8ed2508861bd", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/workspace/prompt\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "2473148c23bbbf519fc2a7bb966e63ed"}), "b58873f85073eb52af058d38eb0cc9c8", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code is 200 or 403")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "0caa4fc48d7f6f57a1e1177562627c8f"})), - new global::Io.Cucumber.Messages.Types.Pickle("bc3d6ace0804b358a5d2af2372b1794a", "Features/Workspace/PrimaryWorkspace.feature", "Primary workspace with IsPrimary flag true is served by the host process", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "a2dbed0b08cb0059976cee76ff1cd562"}), "f8b591ac13d6bb5c921acf67534dddfa", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "fcb5e46b08dbc858a96204f51dcb938c"}), "cab446ee6f8d6154bf16fdec38f0b666", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/workspace\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "bc7f46ce32022e5ca873a5cf774a7d94"}), "44eec564b596e856940392909dc7e23e", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "4c108fceb7d9455aa7685592ee064545"}), "fcbd04411b48985e986d064ab1829a20", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "at most one workspace in the result has \"isPrimary\" set to true")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "54039646845ba9548ec116211e7c2380"})), - new global::Io.Cucumber.Messages.Types.Pickle("20c5d25720327d5880bdf55d6390c3b9", "Features/Workspace/PrimaryWorkspace.feature", "Primary workspace status always returns isRunning", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "a2dbed0b08cb0059976cee76ff1cd562"}), "4745f9c2e3808a5bbc9d646fe0799e62", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "b2670244a00fdd5fb864bbf011a1cdc7"}), "f27258fc56b1f051884129d751bb3a7a", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the primary workspace key is stored as \"primaryKey\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "82ef066ba1a478598e56e4a54887c5e6"}), "056058b857850659a15983bc40e46d05", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/workspace/{primaryKey}/status\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "f51c84f1fcd20b5d81b12b8e4b6e1d84"}), "fe5e510759caf1559d83ebfc13279b2a", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code is 200 or 404")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "164890a11c0bcb5e8f956139c3cd1307"})), - new global::Io.Cucumber.Messages.Types.Pickle("ad58d2743bcbea50ae7d941830e83c67", "Features/Workspace/PrimaryWorkspace.feature", "Workspace auto-start skips disabled workspaces on startup", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "a2dbed0b08cb0059976cee76ff1cd562"}), "7eb64633f69fa953aaeb22097d94482e", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "477f2ef86b3012509dcbb1f796a11766"}), "356fec95f08a775b8d2fe19fa97fbb15", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/workspace\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "6a4b7ea4049d1b59aced13c01347c302"}), "dc55a34312ea675e86a14f6326527630", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "b1d9a76465ac95558db529b49061e93f"}), "9feec4d9e4659a56b64ef4e1674b8181", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response body should contain \"totalCount\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "2e101f73a95d345d9a992de8922acf4b"})), - new global::Io.Cucumber.Messages.Types.Pickle("f0d6cbb6a3ace657bacfb5608f397b73", "Features/Workspace/PrimaryWorkspace.feature", "Workspace IsPrimary resolution uses lowest-port enabled workspace when none is fl" + - "agged", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "a2dbed0b08cb0059976cee76ff1cd562"}), "3ea6e4d57d2df25a81e2ae10a97868f2", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "beb3446e9e09c551b231a5d3234dc9a1"}), "ca737915485ef655816afe2c477614a7", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/workspace\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "5f31b65232a7915eb693611b42922eb0"}), "43d17beccf9da254ad3f510883592a73", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "732b2696a057075ea7efabf968301c6e"})), - new global::Io.Cucumber.Messages.Types.Pickle("a125a73aac45d15f951f491d09d4049f", "Features/Workspace/PrimaryWorkspace.feature", "WorkspaceController is excluded from workspace-scoped ports", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "a2dbed0b08cb0059976cee76ff1cd562"}), "ed98b9a816418f5eb3196935ba1c03f3", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "f82d487bec622c55be9bb50cab607d14"}), "0b0e41a65fd9145a9f0ee5e1c6108f63", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "I use a unique temp directory stored as \"isolPath\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "e6c1cbacb5ee515f8dee3e9040364442"}), "0f84758b1f1e79578d5c56dfa41dc254", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a workspace exists for path \"{isolPath}\" with key stored as \"isolKey\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "aba851626ddba75fb11f8731b4696feb"}), "98ee2a6f900a4c5c9211260393fef80b", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the workspace port is stored as \"isolPort\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "a7d5eda30da2d2569a76fbff28de93e5"}), "385bd6dc1958af52abb3bcaa3d4702a0", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/workspace/{isolKey}/status\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "c3c6a919a2f5c354969b21075574f21f"}), "6c796e34b115055282b084cf6dc181ec", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "71103979b5b83c51805e4e4d4f6f7e98"}), "a5e289059e89535cbb8143c334b44846", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "I delete the created workspace using the path \"{isolPath}\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "73e178b840941357af300ef95dc6f335"}))}); - } - - private static global::Reqnroll.Formatters.RuntimeSupport.FeatureLevelCucumberMessages InitializeCucumberMessages() - { - return new global::Reqnroll.Formatters.RuntimeSupport.FeatureLevelCucumberMessages(new global::System.Func(PrimaryWorkspaceDetectionFeature.SourceFunc), new global::System.Func(PrimaryWorkspaceDetectionFeature.GherkinDocumentFunc), new global::System.Func>(PrimaryWorkspaceDetectionFeature.PicklesFunc)); - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.InitializeAsync() - { - try - { - await this.TestInitializeAsync(); - } - catch (System.Exception e1) - { - try - { - ((global::Xunit.IAsyncLifetime)(this)).DisposeAsync(); - } - catch (System.Exception e2) - { - throw new System.AggregateException("Test initialization failed", e1, e2); - } - throw; - } - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.DisposeAsync() - { - await this.TestTearDownAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Primary workspace prompt endpoint returns 200")] - [global::Xunit.TraitAttribute("FeatureTitle", "Primary Workspace Detection")] - [global::Xunit.TraitAttribute("Description", "Primary workspace prompt endpoint returns 200")] - public async global::System.Threading.Tasks.Task PrimaryWorkspacePromptEndpointReturns200() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "0"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Primary workspace prompt endpoint returns 200", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 11 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 12 - await testRunner.WhenAsync("I send a GET request to \"/mcp/workspace/prompt\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 13 - await testRunner.ThenAsync("the response status code is 200 or 403", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Primary workspace with IsPrimary flag true is served by the host process")] - [global::Xunit.TraitAttribute("FeatureTitle", "Primary Workspace Detection")] - [global::Xunit.TraitAttribute("Description", "Primary workspace with IsPrimary flag true is served by the host process")] - public async global::System.Threading.Tasks.Task PrimaryWorkspaceWithIsPrimaryFlagTrueIsServedByTheHostProcess() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "1"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Primary workspace with IsPrimary flag true is served by the host process", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 15 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 16 - await testRunner.WhenAsync("I send a GET request to \"/mcp/workspace\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 17 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 18 - await testRunner.AndAsync("at most one workspace in the result has \"isPrimary\" set to true", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Primary workspace status always returns isRunning")] - [global::Xunit.TraitAttribute("FeatureTitle", "Primary Workspace Detection")] - [global::Xunit.TraitAttribute("Description", "Primary workspace status always returns isRunning")] - public async global::System.Threading.Tasks.Task PrimaryWorkspaceStatusAlwaysReturnsIsRunning() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "2"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Primary workspace status always returns isRunning", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 20 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 21 - await testRunner.GivenAsync("the primary workspace key is stored as \"primaryKey\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 22 - await testRunner.WhenAsync("I send a GET request to \"/mcp/workspace/{primaryKey}/status\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 23 - await testRunner.ThenAsync("the response status code is 200 or 404", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Workspace auto-start skips disabled workspaces on startup")] - [global::Xunit.TraitAttribute("FeatureTitle", "Primary Workspace Detection")] - [global::Xunit.TraitAttribute("Description", "Workspace auto-start skips disabled workspaces on startup")] - public async global::System.Threading.Tasks.Task WorkspaceAuto_StartSkipsDisabledWorkspacesOnStartup() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "3"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Workspace auto-start skips disabled workspaces on startup", "", tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 25 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 27 - await testRunner.WhenAsync("I send a GET request to \"/mcp/workspace\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 28 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 29 - await testRunner.AndAsync("the response body should contain \"totalCount\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Workspace IsPrimary resolution uses lowest-port enabled workspace when none is fl" + - "agged")] - [global::Xunit.TraitAttribute("FeatureTitle", "Primary Workspace Detection")] - [global::Xunit.TraitAttribute("Description", "Workspace IsPrimary resolution uses lowest-port enabled workspace when none is fl" + - "agged")] - public async global::System.Threading.Tasks.Task WorkspaceIsPrimaryResolutionUsesLowest_PortEnabledWorkspaceWhenNoneIsFlagged() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "4"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Workspace IsPrimary resolution uses lowest-port enabled workspace when none is fl" + - "agged", "", tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 31 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 33 - await testRunner.WhenAsync("I send a GET request to \"/mcp/workspace\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 34 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="WorkspaceController is excluded from workspace-scoped ports")] - [global::Xunit.TraitAttribute("FeatureTitle", "Primary Workspace Detection")] - [global::Xunit.TraitAttribute("Description", "WorkspaceController is excluded from workspace-scoped ports")] - public async global::System.Threading.Tasks.Task WorkspaceControllerIsExcludedFromWorkspace_ScopedPorts() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "5"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("WorkspaceController is excluded from workspace-scoped ports", "", tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 36 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 38 - await testRunner.GivenAsync("I use a unique temp directory stored as \"isolPath\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 39 - await testRunner.AndAsync("a workspace exists for path \"{isolPath}\" with key stored as \"isolKey\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 40 - await testRunner.AndAsync("the workspace port is stored as \"isolPort\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 41 - await testRunner.WhenAsync("I send a GET request to \"/mcp/workspace/{isolKey}/status\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 42 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 43 - await testRunner.AndAsync("I delete the created workspace using the path \"{isolPath}\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Reqnroll", "3.0.0.0")] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - public class FixtureData : object, global::Xunit.IAsyncLifetime - { - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.InitializeAsync() - { - await PrimaryWorkspaceDetectionFeature.FeatureSetupAsync(); - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.DisposeAsync() - { - await PrimaryWorkspaceDetectionFeature.FeatureTearDownAsync(); - } - } - } -} -#pragma warning restore -#endregion diff --git a/tests/McpServer.SpecFlow.Tests/Features/Workspace/WorkspaceManagement.feature b/tests/McpServer.SpecFlow.Tests/Features/Workspace/WorkspaceManagement.feature deleted file mode 100644 index fff4ada1..00000000 --- a/tests/McpServer.SpecFlow.Tests/Features/Workspace/WorkspaceManagement.feature +++ /dev/null @@ -1,123 +0,0 @@ -Feature: Workspace Management - As an administrator - I want to register, configure, and manage workspaces via the REST API - So that multiple project workspaces can be hosted simultaneously - - Background: - Given the MCP server is running - - # FR-MCP-009 / TR-MCP-WS-002 / TR-MCP-WS-004 / TEST-MCP-007 - - Scenario: List workspaces returns 200 with valid result - When I send a GET request to "/mcp/workspace" - Then the response status code should be 200 - And the response body should contain "totalCount" - - Scenario: List workspaces endpoint is publicly accessible without API key - When I send a GET request to "/mcp/workspace" without an API key - Then the response status code should be 200 - - Scenario: Create workspace assigns unique auto-incremented port starting at 7148 - Given I use a unique temp directory stored as "newWorkspacePath" - When I POST to "/mcp/workspace" with body: - """ - { "workspacePath": "{newWorkspacePath}", "name": "specflow-ws-porttest" } - """ - Then the response status code should be 201 - And the response body should contain a port greater than or equal to 7148 - And I delete the created workspace using the path "{newWorkspacePath}" - - Scenario: Create workspace returns 201 with workspace details - Given I use a unique temp directory stored as "wsPath" - When I POST to "/mcp/workspace" with body: - """ - { "workspacePath": "{wsPath}", "name": "specflow-ws-create" } - """ - Then the response status code should be 201 - And the response body should contain "specflow-ws-create" - And the response body should contain "workspacePort" - And I delete the created workspace using the path "{wsPath}" - - Scenario: Create workspace with duplicate path returns 409 - Given I use a unique temp directory stored as "dupPath" - And a workspace exists for path "{dupPath}" - When I POST to "/mcp/workspace" with body: - """ - { "workspacePath": "{dupPath}", "name": "dup-ws" } - """ - Then the response status code should be 409 - And I delete the created workspace using the path "{dupPath}" - - Scenario: Get workspace by key returns 200 with workspace details - Given I use a unique temp directory stored as "getWsPath" - And a workspace exists for path "{getWsPath}" with key stored as "wsKey" - When I send a GET request to "/mcp/workspace/{wsKey}" - Then the response status code should be 200 - And the response body should contain "workspacePath" - And I delete the created workspace using the path "{getWsPath}" - - Scenario: Get workspace by unknown key returns 404 - When I send a GET request to "/mcp/workspace/dW5rbm93bi1wYXRo" - Then the response status code should be 404 - - Scenario: Update workspace returns 200 - Given I use a unique temp directory stored as "updWsPath" - And a workspace exists for path "{updWsPath}" with key stored as "updWsKey" - When I PUT to "/mcp/workspace/{updWsKey}" with body: - """ - { "name": "updated-name" } - """ - Then the response status code should be 200 - And I delete the created workspace using the path "{updWsPath}" - - Scenario: Delete workspace returns 200 - Given I use a unique temp directory stored as "delWsPath" - And a workspace exists for path "{delWsPath}" with key stored as "delWsKey" - When I send a DELETE request to "/mcp/workspace/{delWsKey}" - Then the response status code should be 200 - - Scenario: Workspace keys are Base64URL-encoded path strings - Given I use a unique temp directory stored as "b64Path" - And a workspace exists for path "{b64Path}" with key stored as "b64Key" - Then the key "{b64Key}" should be a valid Base64URL-encoded string - And I delete the created workspace using the path "{b64Path}" - - Scenario: Start workspace returns 200 - Given I use a unique temp directory stored as "startWsPath" - And a workspace exists for path "{startWsPath}" with key stored as "startWsKey" - When I POST to "/mcp/workspace/{startWsKey}/start" with empty body - Then the response status code should be 200 - And I delete the created workspace using the path "{startWsPath}" - - Scenario: Stop workspace returns 200 - Given I use a unique temp directory stored as "stopWsPath" - And a workspace exists for path "{stopWsPath}" with key stored as "stopWsKey" - When I POST to "/mcp/workspace/{stopWsKey}/stop" with empty body - Then the response status code should be 200 - And I delete the created workspace using the path "{stopWsPath}" - - Scenario: Get workspace status returns 200 with running state - Given I use a unique temp directory stored as "statusWsPath" - And a workspace exists for path "{statusWsPath}" with key stored as "statusWsKey" - When I send a GET request to "/mcp/workspace/{statusWsKey}/status" - Then the response status code should be 200 - And the response body should contain "isRunning" - And I delete the created workspace using the path "{statusWsPath}" - - Scenario: Workspace status endpoint is publicly accessible without API key - Given I use a unique temp directory stored as "pubStatusPath" - And a workspace exists for path "{pubStatusPath}" with key stored as "pubStatusKey" - When I send a GET request to "/mcp/workspace/{pubStatusKey}/status" without an API key - Then the response status code should be 200 - And I delete the created workspace using the path "{pubStatusPath}" - - # FR-MCP-021 — init scaffolding happens automatically on creation - Scenario: Creating a workspace auto-initializes its directory scaffold - Given I use a unique temp directory stored as "scaffoldPath" - When I POST to "/mcp/workspace" with body: - """ - { "workspacePath": "{scaffoldPath}", "name": "scaffold-ws" } - """ - Then the response status code should be 201 - And the directory "{scaffoldPath}" should exist - And I delete the created workspace using the path "{scaffoldPath}" diff --git a/tests/McpServer.SpecFlow.Tests/Features/Workspace/WorkspaceManagement.feature.cs b/tests/McpServer.SpecFlow.Tests/Features/Workspace/WorkspaceManagement.feature.cs deleted file mode 100644 index 27da1ed5..00000000 --- a/tests/McpServer.SpecFlow.Tests/Features/Workspace/WorkspaceManagement.feature.cs +++ /dev/null @@ -1,1167 +0,0 @@ -// ------------------------------------------------------------------------------ -// -// This code was generated by Reqnroll (https://www.reqnroll.net/). -// Reqnroll Version:3.0.0.0 -// Reqnroll Generator Version:3.0.0.0 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -// ------------------------------------------------------------------------------ -#region Designer generated code -#pragma warning disable -using Reqnroll; -namespace McpServer.SpecFlow.Tests.Features.Workspace -{ - - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Reqnroll", "3.0.0.0")] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - public partial class WorkspaceManagementFeature : object, global::Xunit.IClassFixture, global::Xunit.IAsyncLifetime - { - - private global::Reqnroll.ITestRunner testRunner; - - private static string[] featureTags = ((string[])(null)); - - private static global::Reqnroll.FeatureInfo featureInfo = new global::Reqnroll.FeatureInfo(new global::System.Globalization.CultureInfo("en-US"), "Features/Workspace", "Workspace Management", " As an administrator\r\n I want to register, configure, and manage workspaces via" + - " the REST API\r\n So that multiple project workspaces can be hosted simultaneousl" + - "y", global::Reqnroll.ProgrammingLanguage.CSharp, featureTags, InitializeCucumberMessages()); - - private global::Xunit.Abstractions.ITestOutputHelper _testOutputHelper; - -#line 1 "WorkspaceManagement.feature" -#line hidden - - public WorkspaceManagementFeature(WorkspaceManagementFeature.FixtureData fixtureData, global::Xunit.Abstractions.ITestOutputHelper testOutputHelper) - { - this._testOutputHelper = testOutputHelper; - } - - public static async global::System.Threading.Tasks.Task FeatureSetupAsync() - { - } - - public static async global::System.Threading.Tasks.Task FeatureTearDownAsync() - { - await global::Reqnroll.TestRunnerManager.ReleaseFeatureAsync(featureInfo); - } - - public async global::System.Threading.Tasks.Task TestInitializeAsync() - { - testRunner = global::Reqnroll.TestRunnerManager.GetTestRunnerForAssembly(featureHint: featureInfo); - try - { - if (((testRunner.FeatureContext != null) - && (testRunner.FeatureContext.FeatureInfo.Equals(featureInfo) == false))) - { - await testRunner.OnFeatureEndAsync(); - } - } - finally - { - if (((testRunner.FeatureContext != null) - && testRunner.FeatureContext.BeforeFeatureHookFailed)) - { - throw new global::Reqnroll.ReqnrollException("Scenario skipped because of previous before feature hook error"); - } - if ((testRunner.FeatureContext == null)) - { - await testRunner.OnFeatureStartAsync(featureInfo); - } - } - } - - public async global::System.Threading.Tasks.Task TestTearDownAsync() - { - if ((testRunner == null)) - { - return; - } - try - { - await testRunner.OnScenarioEndAsync(); - } - finally - { - global::Reqnroll.TestRunnerManager.ReleaseTestRunner(testRunner); - testRunner = null; - } - } - - public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, global::Reqnroll.RuleInfo ruleInfo) - { - testRunner.OnScenarioInitialize(scenarioInfo, ruleInfo); - testRunner.ScenarioContext.ScenarioContainer.RegisterInstanceAs(_testOutputHelper); - } - - public async global::System.Threading.Tasks.Task ScenarioStartAsync() - { - await testRunner.OnScenarioStartAsync(); - } - - public async global::System.Threading.Tasks.Task ScenarioCleanupAsync() - { - await testRunner.CollectScenarioErrorsAsync(); - } - - public virtual async global::System.Threading.Tasks.Task FeatureBackgroundAsync() - { -#line 6 - #line hidden -#line 7 - await testRunner.GivenAsync("the MCP server is running", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden - } - - private static global::Io.Cucumber.Messages.Types.Source SourceFunc() - { - return new global::Io.Cucumber.Messages.Types.Source("Features/Workspace/WorkspaceManagement.feature", "Feature: Workspace Management\r\n As an administrator\r\n I want to register, confi" + - "gure, and manage workspaces via the REST API\r\n So that multiple project workspa" + - "ces can be hosted simultaneously\r\n\r\n Background:\r\n Given the MCP server is r" + - "unning\r\n\r\n # FR-MCP-009 / TR-MCP-WS-002 / TR-MCP-WS-004 / TEST-MCP-007\r\n\r\n Sce" + - "nario: List workspaces returns 200 with valid result\r\n When I send a GET requ" + - "est to \"/mcp/workspace\"\r\n Then the response status code should be 200\r\n An" + - "d the response body should contain \"totalCount\"\r\n\r\n Scenario: List workspaces e" + - "ndpoint is publicly accessible without API key\r\n When I send a GET request to" + - " \"/mcp/workspace\" without an API key\r\n Then the response status code should b" + - "e 200\r\n\r\n Scenario: Create workspace assigns unique auto-incremented port start" + - "ing at 7148\r\n Given I use a unique temp directory stored as \"newWorkspacePath" + - "\"\r\n When I POST to \"/mcp/workspace\" with body:\r\n \"\"\"\r\n { \"workspace" + - "Path\": \"{newWorkspacePath}\", \"name\": \"specflow-ws-porttest\" }\r\n \"\"\"\r\n Th" + - "en the response status code should be 201\r\n And the response body should cont" + - "ain a port greater than or equal to 7148\r\n And I delete the created workspace" + - " using the path \"{newWorkspacePath}\"\r\n\r\n Scenario: Create workspace returns 201" + - " with workspace details\r\n Given I use a unique temp directory stored as \"wsPa" + - "th\"\r\n When I POST to \"/mcp/workspace\" with body:\r\n \"\"\"\r\n { \"workspa" + - "cePath\": \"{wsPath}\", \"name\": \"specflow-ws-create\" }\r\n \"\"\"\r\n Then the res" + - "ponse status code should be 201\r\n And the response body should contain \"specf" + - "low-ws-create\"\r\n And the response body should contain \"workspacePort\"\r\n An" + - "d I delete the created workspace using the path \"{wsPath}\"\r\n\r\n Scenario: Create" + - " workspace with duplicate path returns 409\r\n Given I use a unique temp direct" + - "ory stored as \"dupPath\"\r\n And a workspace exists for path \"{dupPath}\"\r\n Wh" + - "en I POST to \"/mcp/workspace\" with body:\r\n \"\"\"\r\n { \"workspacePath\": \"{" + - "dupPath}\", \"name\": \"dup-ws\" }\r\n \"\"\"\r\n Then the response status code shou" + - "ld be 409\r\n And I delete the created workspace using the path \"{dupPath}\"\r\n\r\n" + - " Scenario: Get workspace by key returns 200 with workspace details\r\n Given I" + - " use a unique temp directory stored as \"getWsPath\"\r\n And a workspace exists f" + - "or path \"{getWsPath}\" with key stored as \"wsKey\"\r\n When I send a GET request " + - "to \"/mcp/workspace/{wsKey}\"\r\n Then the response status code should be 200\r\n " + - " And the response body should contain \"workspacePath\"\r\n And I delete the cre" + - "ated workspace using the path \"{getWsPath}\"\r\n\r\n Scenario: Get workspace by unkn" + - "own key returns 404\r\n When I send a GET request to \"/mcp/workspace/dW5rbm93bi" + - "1wYXRo\"\r\n Then the response status code should be 404\r\n\r\n Scenario: Update w" + - "orkspace returns 200\r\n Given I use a unique temp directory stored as \"updWsPa" + - "th\"\r\n And a workspace exists for path \"{updWsPath}\" with key stored as \"updWs" + - "Key\"\r\n When I PUT to \"/mcp/workspace/{updWsKey}\" with body:\r\n \"\"\"\r\n " + - " { \"name\": \"updated-name\" }\r\n \"\"\"\r\n Then the response status code should" + - " be 200\r\n And I delete the created workspace using the path \"{updWsPath}\"\r\n\r\n" + - " Scenario: Delete workspace returns 200\r\n Given I use a unique temp director" + - "y stored as \"delWsPath\"\r\n And a workspace exists for path \"{delWsPath}\" with " + - "key stored as \"delWsKey\"\r\n When I send a DELETE request to \"/mcp/workspace/{d" + - "elWsKey}\"\r\n Then the response status code should be 200\r\n\r\n Scenario: Worksp" + - "ace keys are Base64URL-encoded path strings\r\n Given I use a unique temp direc" + - "tory stored as \"b64Path\"\r\n And a workspace exists for path \"{b64Path}\" with k" + - "ey stored as \"b64Key\"\r\n Then the key \"{b64Key}\" should be a valid Base64URL-e" + - "ncoded string\r\n And I delete the created workspace using the path \"{b64Path}\"" + - "\r\n\r\n Scenario: Start workspace returns 200\r\n Given I use a unique temp direc" + - "tory stored as \"startWsPath\"\r\n And a workspace exists for path \"{startWsPath}" + - "\" with key stored as \"startWsKey\"\r\n When I POST to \"/mcp/workspace/{startWsKe" + - "y}/start\" with empty body\r\n Then the response status code should be 200\r\n " + - "And I delete the created workspace using the path \"{startWsPath}\"\r\n\r\n Scenario:" + - " Stop workspace returns 200\r\n Given I use a unique temp directory stored as \"" + - "stopWsPath\"\r\n And a workspace exists for path \"{stopWsPath}\" with key stored " + - "as \"stopWsKey\"\r\n When I POST to \"/mcp/workspace/{stopWsKey}/stop\" with empty " + - "body\r\n Then the response status code should be 200\r\n And I delete the crea" + - "ted workspace using the path \"{stopWsPath}\"\r\n\r\n Scenario: Get workspace status " + - "returns 200 with running state\r\n Given I use a unique temp directory stored a" + - "s \"statusWsPath\"\r\n And a workspace exists for path \"{statusWsPath}\" with key " + - "stored as \"statusWsKey\"\r\n When I send a GET request to \"/mcp/workspace/{statu" + - "sWsKey}/status\"\r\n Then the response status code should be 200\r\n And the re" + - "sponse body should contain \"isRunning\"\r\n And I delete the created workspace u" + - "sing the path \"{statusWsPath}\"\r\n\r\n Scenario: Workspace status endpoint is publi" + - "cly accessible without API key\r\n Given I use a unique temp directory stored a" + - "s \"pubStatusPath\"\r\n And a workspace exists for path \"{pubStatusPath}\" with ke" + - "y stored as \"pubStatusKey\"\r\n When I send a GET request to \"/mcp/workspace/{pu" + - "bStatusKey}/status\" without an API key\r\n Then the response status code should" + - " be 200\r\n And I delete the created workspace using the path \"{pubStatusPath}\"" + - "\r\n\r\n # FR-MCP-021 — init scaffolding happens automatically on creation\r\n Scena" + - "rio: Creating a workspace auto-initializes its directory scaffold\r\n Given I u" + - "se a unique temp directory stored as \"scaffoldPath\"\r\n When I POST to \"/mcp/wo" + - "rkspace\" with body:\r\n \"\"\"\r\n { \"workspacePath\": \"{scaffoldPath}\", \"name" + - "\": \"scaffold-ws\" }\r\n \"\"\"\r\n Then the response status code should be 201\r\n" + - " And the directory \"{scaffoldPath}\" should exist\r\n And I delete the create" + - "d workspace using the path \"{scaffoldPath}\"\r\n", global::Io.Cucumber.Messages.Types.SourceMediaType.TEXT_X_CUCUMBER_GHERKIN_PLAIN); - } - - private static global::Io.Cucumber.Messages.Types.GherkinDocument GherkinDocumentFunc() - { - return new global::Io.Cucumber.Messages.Types.GherkinDocument("Features/Workspace/WorkspaceManagement.feature", new global::Io.Cucumber.Messages.Types.Feature(new global::Io.Cucumber.Messages.Types.Location(1, new System.Nullable(1)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "en-US", "Feature", "Workspace Management", " As an administrator\r\n I want to register, configure, and manage workspaces via" + - " the REST API\r\n So that multiple project workspaces can be hosted simultaneousl" + - "y", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.FeatureChild[] { - new global::Io.Cucumber.Messages.Types.FeatureChild(null, new global::Io.Cucumber.Messages.Types.Background(new global::Io.Cucumber.Messages.Types.Location(6, new System.Nullable(3)), "Background", "", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(7, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "the MCP server is running", null, null, "f8baa4d9622b125e9c8693df4b94558c")}), "9d3a43e848b5f95b91103c4be3f2bc79"), null), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(11, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "List workspaces returns 200 with valid result", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(12, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/workspace\"", null, null, "309674d947a46b5cb0edda0b64140192"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(13, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "bf230f5c733c80579a023d61b7f6496f"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(14, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the response body should contain \"totalCount\"", null, null, "5fd978d114bf1f51ad5abb89a481f162")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "328cebaab2284e57987f5a7393bcf757")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(16, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "List workspaces endpoint is publicly accessible without API key", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(17, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/workspace\" without an API key", null, null, "f93f6f6a24226c5ca78c139a1f616fda"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(18, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "21e1a9367c23425595441b8850d3093c")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "5afcbc0c3cc4845cbc676566787377b8")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(20, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Create workspace assigns unique auto-incremented port starting at 7148", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(21, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "I use a unique temp directory stored as \"newWorkspacePath\"", null, null, "e1bfa808e077e152aa8d73b38fc04b31"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(22, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/workspace\" with body:", new global::Io.Cucumber.Messages.Types.DocString(new global::Io.Cucumber.Messages.Types.Location(23, new System.Nullable(7)), null, "{ \"workspacePath\": \"{newWorkspacePath}\", \"name\": \"specflow-ws-porttest\" }", "\"\"\""), null, "34814e812d5f435aa00274934b481937"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(26, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 201", null, null, "647d18c53ccd0b5280b78b6fd9c09183"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(27, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the response body should contain a port greater than or equal to 7148", null, null, "8241b8f4584c2e53800a034dc17bcf4f"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(28, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I delete the created workspace using the path \"{newWorkspacePath}\"", null, null, "931f1b6714b0a75c8925971374ad0c5a")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "edefa88ec9ad1b5e87115e5637c4b0ad")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(30, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Create workspace returns 201 with workspace details", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(31, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "I use a unique temp directory stored as \"wsPath\"", null, null, "ff2b7e3173147d5daf866b5ef7a6f030"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(32, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/workspace\" with body:", new global::Io.Cucumber.Messages.Types.DocString(new global::Io.Cucumber.Messages.Types.Location(33, new System.Nullable(7)), null, "{ \"workspacePath\": \"{wsPath}\", \"name\": \"specflow-ws-create\" }", "\"\"\""), null, "c37aa43923d63b5c8c9bcf1d486c87d9"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(36, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 201", null, null, "b5532be29e834f509dbf9172ab817394"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(37, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the response body should contain \"specflow-ws-create\"", null, null, "13e43125ea16bf5ea4ac96fcbe830ecb"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(38, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the response body should contain \"workspacePort\"", null, null, "2c9f1e13d8180956b1f66e24b015c356"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(39, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I delete the created workspace using the path \"{wsPath}\"", null, null, "b55ec2f939b7bc52ac655d931d144c4f")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "01b965506b7cdf5584325b3e42ad24bf")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(41, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Create workspace with duplicate path returns 409", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(42, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "I use a unique temp directory stored as \"dupPath\"", null, null, "22b95f4d4588fd5a8cc7c125cb286d14"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(43, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "a workspace exists for path \"{dupPath}\"", null, null, "5b704d7213251e5ea3765666cfd36b35"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(44, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/workspace\" with body:", new global::Io.Cucumber.Messages.Types.DocString(new global::Io.Cucumber.Messages.Types.Location(45, new System.Nullable(7)), null, "{ \"workspacePath\": \"{dupPath}\", \"name\": \"dup-ws\" }", "\"\"\""), null, "8abd5b3860c364598600319061988100"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(48, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 409", null, null, "c98610b4a3c83851af953684e3fa5834"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(49, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I delete the created workspace using the path \"{dupPath}\"", null, null, "8d3dd782b611a45ab9c304e7ebfb6610")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "5088c6cd40ea015e8b9fd932ac0b3110")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(51, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Get workspace by key returns 200 with workspace details", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(52, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "I use a unique temp directory stored as \"getWsPath\"", null, null, "34f64bb1fddff1599c6c7775d43b9da4"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(53, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "a workspace exists for path \"{getWsPath}\" with key stored as \"wsKey\"", null, null, "8783642bbab20f5c8ba615cc1af8c2b0"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(54, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/workspace/{wsKey}\"", null, null, "18d5732493eb595fb2b1804912d99e23"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(55, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "72a6958ec20913529a5a9f3fdf51e05b"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(56, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the response body should contain \"workspacePath\"", null, null, "c9db66c5ad798550badc5312737edaee"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(57, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I delete the created workspace using the path \"{getWsPath}\"", null, null, "6d62804e38a9045db75b61238130aafe")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "63fdb01ed2c9a552970dec9f49c13bda")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(59, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Get workspace by unknown key returns 404", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(60, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/workspace/dW5rbm93bi1wYXRo\"", null, null, "97d97a46268ff45e8124b47f256fdc39"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(61, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 404", null, null, "b3c56d3387d7bd51b3179e1e1bc68951")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "50302e1995ed5252988d3ea0bb6feda8")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(63, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Update workspace returns 200", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(64, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "I use a unique temp directory stored as \"updWsPath\"", null, null, "f935bb86e813da558d36e2cc42d89098"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(65, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "a workspace exists for path \"{updWsPath}\" with key stored as \"updWsKey\"", null, null, "38a2694e5ff37f578502c43b849f046f"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(66, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I PUT to \"/mcp/workspace/{updWsKey}\" with body:", new global::Io.Cucumber.Messages.Types.DocString(new global::Io.Cucumber.Messages.Types.Location(67, new System.Nullable(7)), null, "{ \"name\": \"updated-name\" }", "\"\"\""), null, "4d202fd23b9bb95fa5916392a811a853"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(70, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "1078d7a33e66d455884f2d1f8f7b0e5f"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(71, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I delete the created workspace using the path \"{updWsPath}\"", null, null, "284bd5c313e66258ab9be5747208f813")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "48d9c54dece31159913762cfa4d12d7d")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(73, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Delete workspace returns 200", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(74, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "I use a unique temp directory stored as \"delWsPath\"", null, null, "c4da91449bf5595a82cec7754aecbb33"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(75, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "a workspace exists for path \"{delWsPath}\" with key stored as \"delWsKey\"", null, null, "4efe75c26ac7d454849a5f0f1b55bea7"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(76, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a DELETE request to \"/mcp/workspace/{delWsKey}\"", null, null, "9406caca6fe55b538e461e710d241072"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(77, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "569eb6c6a00ea355a73cadcf7e5b02cc")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "06ea9f0a4f38355e93d1d8c0f7ebc9f3")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(79, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Workspace keys are Base64URL-encoded path strings", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(80, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "I use a unique temp directory stored as \"b64Path\"", null, null, "6cf8d9ea263f4254a7f7ba0473bc1fc0"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(81, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "a workspace exists for path \"{b64Path}\" with key stored as \"b64Key\"", null, null, "93039a475a544250bcbac22e1ad1a10c"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(82, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the key \"{b64Key}\" should be a valid Base64URL-encoded string", null, null, "f271501f9926695e9a0cc68d52d599af"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(83, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I delete the created workspace using the path \"{b64Path}\"", null, null, "eb3ebf6d5f304b519bc7b2f1be68d7b7")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "9a8155197a04065fb800496c454ec682")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(85, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Start workspace returns 200", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(86, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "I use a unique temp directory stored as \"startWsPath\"", null, null, "3d586ec420a0ea57a0ea2ea9171942ee"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(87, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "a workspace exists for path \"{startWsPath}\" with key stored as \"startWsKey\"", null, null, "d8c835296db83452b955a43f178cad59"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(88, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/workspace/{startWsKey}/start\" with empty body", null, null, "70f2a6303a8d435b87bbe8b3747c62ae"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(89, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "6a39743ed39cc258af89752c33fe025c"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(90, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I delete the created workspace using the path \"{startWsPath}\"", null, null, "054ca67c65d7405d8894bd0361c74f5f")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "b379e23b5d8f975497e488e59b429e73")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(92, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Stop workspace returns 200", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(93, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "I use a unique temp directory stored as \"stopWsPath\"", null, null, "75972991346d2855bd22f15664a776d9"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(94, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "a workspace exists for path \"{stopWsPath}\" with key stored as \"stopWsKey\"", null, null, "a72148bd761f5a5682a6b55747a1a730"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(95, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/workspace/{stopWsKey}/stop\" with empty body", null, null, "ab4eac177f42f158baa6156e01068967"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(96, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "61fd88a331c1715090df16278a151c4f"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(97, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I delete the created workspace using the path \"{stopWsPath}\"", null, null, "0bef092ebb6a715ab2491b397ec9c5fd")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "c9d2d36cc2829054a4343144fa545c37")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(99, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Get workspace status returns 200 with running state", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(100, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "I use a unique temp directory stored as \"statusWsPath\"", null, null, "2d35b29365c41658a076e0ee64ecc289"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(101, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "a workspace exists for path \"{statusWsPath}\" with key stored as \"statusWsKey\"", null, null, "ebd73dbe78c2fd5d839ffb07a2662a7e"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(102, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/workspace/{statusWsKey}/status\"", null, null, "09d0463d1a07c05fbadea55fd62a4f5d"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(103, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "44eb1242fc1f1e51bff85566de0dd6bc"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(104, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the response body should contain \"isRunning\"", null, null, "675680bc40efab5f80031b50fc629a44"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(105, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I delete the created workspace using the path \"{statusWsPath}\"", null, null, "b488e03093a0d75087dbe6f3d1bbb155")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "4ff18dc46fdc6653b2e08801360fd38d")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(107, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Workspace status endpoint is publicly accessible without API key", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(108, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "I use a unique temp directory stored as \"pubStatusPath\"", null, null, "dbebd52014341353816aeeb76e0726d2"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(109, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "a workspace exists for path \"{pubStatusPath}\" with key stored as \"pubStatusKey\"", null, null, "8716911bd61d5e589f48b33293547dfe"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(110, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I send a GET request to \"/mcp/workspace/{pubStatusKey}/status\" without an API key" + - "", null, null, "0031264a9c345759adf89c71d5129b61"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(111, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "284257bbc10b0757aee5e3ad0de83d3c"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(112, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I delete the created workspace using the path \"{pubStatusPath}\"", null, null, "8104a03887737e5cb2dbf2f1f59540d2")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "ed84bc23fc60c4549f712c3e8ef0a97e")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(115, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Creating a workspace auto-initializes its directory scaffold", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(116, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "I use a unique temp directory stored as \"scaffoldPath\"", null, null, "ca0b382e6753d456b81abc8aeb16b92f"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(117, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/workspace\" with body:", new global::Io.Cucumber.Messages.Types.DocString(new global::Io.Cucumber.Messages.Types.Location(118, new System.Nullable(7)), null, "{ \"workspacePath\": \"{scaffoldPath}\", \"name\": \"scaffold-ws\" }", "\"\"\""), null, "0329d683bbb7c85c9b966f8af7b5b4a4"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(121, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 201", null, null, "edc4f911cb92f85881ef922ec3ff4810"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(122, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the directory \"{scaffoldPath}\" should exist", null, null, "2e13774f8beeda5dba5a854bc5a51a29"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(123, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I delete the created workspace using the path \"{scaffoldPath}\"", null, null, "2bdd36aa6b7f2454812ac5dea8ffa986")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "67d0ac4528e8ef53ae56735ecc0bf883"))})), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Comment[] { - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(9, new System.Nullable(1)), " # FR-MCP-009 / TR-MCP-WS-002 / TR-MCP-WS-004 / TEST-MCP-007"), - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(114, new System.Nullable(1)), " # FR-MCP-021 — init scaffolding happens automatically on creation")})); - } - - private static global::System.Collections.Generic.IEnumerable PicklesFunc() - { - return new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Pickle[] { - new global::Io.Cucumber.Messages.Types.Pickle("654f26199fcbb754b5d45cb743ad54ae", "Features/Workspace/WorkspaceManagement.feature", "List workspaces returns 200 with valid result", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "f8baa4d9622b125e9c8693df4b94558c"}), "090ae1995b01eb51b1dc97c3066b3583", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "309674d947a46b5cb0edda0b64140192"}), "f66fd75473a6d85b9d1922096432f617", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/workspace\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "bf230f5c733c80579a023d61b7f6496f"}), "92522e9e32eb445bbf018ef919f6521d", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "5fd978d114bf1f51ad5abb89a481f162"}), "c710f8c95a78515b8630bc8add87cf31", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response body should contain \"totalCount\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "328cebaab2284e57987f5a7393bcf757"})), - new global::Io.Cucumber.Messages.Types.Pickle("39982b3fca6975519eded7c6c5b1570d", "Features/Workspace/WorkspaceManagement.feature", "List workspaces endpoint is publicly accessible without API key", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "f8baa4d9622b125e9c8693df4b94558c"}), "7b8a4b85ae6c9059b56c090a2b78f56a", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "f93f6f6a24226c5ca78c139a1f616fda"}), "af95aa2ef55ac1509de5372956881da5", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/workspace\" without an API key"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "21e1a9367c23425595441b8850d3093c"}), "592ca88d73f37050a48921b7dc2cef2d", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "5afcbc0c3cc4845cbc676566787377b8"})), - new global::Io.Cucumber.Messages.Types.Pickle("b3aa0e1b34313250847fd1f8ad317f66", "Features/Workspace/WorkspaceManagement.feature", "Create workspace assigns unique auto-incremented port starting at 7148", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "f8baa4d9622b125e9c8693df4b94558c"}), "67abacdd8610f55192cdc99920d1628f", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "e1bfa808e077e152aa8d73b38fc04b31"}), "4fcc7eca01ddb85d9f818e242ceb344c", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "I use a unique temp directory stored as \"newWorkspacePath\""), - new global::Io.Cucumber.Messages.Types.PickleStep(new global::Io.Cucumber.Messages.Types.PickleStepArgument(new global::Io.Cucumber.Messages.Types.PickleDocString(null, "{ \"workspacePath\": \"{newWorkspacePath}\", \"name\": \"specflow-ws-porttest\" }"), null), new System.Collections.Generic.List(new string[] { - "34814e812d5f435aa00274934b481937"}), "1a5ea8ec76b37c5f863b0a71f9409464", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/workspace\" with body:"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "647d18c53ccd0b5280b78b6fd9c09183"}), "22ec1557970e6554b82b7b3d005fe7b4", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 201"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "8241b8f4584c2e53800a034dc17bcf4f"}), "4df4578328907857992126cb92826b22", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response body should contain a port greater than or equal to 7148"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "931f1b6714b0a75c8925971374ad0c5a"}), "c9f02fc86dc486569ecb633da9d21f80", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "I delete the created workspace using the path \"{newWorkspacePath}\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "edefa88ec9ad1b5e87115e5637c4b0ad"})), - new global::Io.Cucumber.Messages.Types.Pickle("dc88a8c2cd4c285981d6bb7eeefa489a", "Features/Workspace/WorkspaceManagement.feature", "Create workspace returns 201 with workspace details", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "f8baa4d9622b125e9c8693df4b94558c"}), "1dd9944985ede55ea45214f8287e1e87", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "ff2b7e3173147d5daf866b5ef7a6f030"}), "154d611d0d2ed356839fc8ffcc79dd03", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "I use a unique temp directory stored as \"wsPath\""), - new global::Io.Cucumber.Messages.Types.PickleStep(new global::Io.Cucumber.Messages.Types.PickleStepArgument(new global::Io.Cucumber.Messages.Types.PickleDocString(null, "{ \"workspacePath\": \"{wsPath}\", \"name\": \"specflow-ws-create\" }"), null), new System.Collections.Generic.List(new string[] { - "c37aa43923d63b5c8c9bcf1d486c87d9"}), "2dbe34f9e912b55b92a7db3786e53236", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/workspace\" with body:"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "b5532be29e834f509dbf9172ab817394"}), "a7f7edf80935905b9a50f8ad96727277", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 201"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "13e43125ea16bf5ea4ac96fcbe830ecb"}), "1768836b5a48a252a62e8b4ff434e05e", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response body should contain \"specflow-ws-create\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "2c9f1e13d8180956b1f66e24b015c356"}), "356842e11f6a8b50b4502c10b2942433", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response body should contain \"workspacePort\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "b55ec2f939b7bc52ac655d931d144c4f"}), "a38b8b688b71a7508a9243067d70c667", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "I delete the created workspace using the path \"{wsPath}\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "01b965506b7cdf5584325b3e42ad24bf"})), - new global::Io.Cucumber.Messages.Types.Pickle("f359b7f55d096f5f8e0ac55ca3940f2d", "Features/Workspace/WorkspaceManagement.feature", "Create workspace with duplicate path returns 409", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "f8baa4d9622b125e9c8693df4b94558c"}), "d3b79a7efc97f153b782569885ab9059", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "22b95f4d4588fd5a8cc7c125cb286d14"}), "9822e9e3c805105b9ef06c7f9fe37b0e", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "I use a unique temp directory stored as \"dupPath\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "5b704d7213251e5ea3765666cfd36b35"}), "f7bb3a48d9cdb456a4d8953cfac96d2f", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a workspace exists for path \"{dupPath}\""), - new global::Io.Cucumber.Messages.Types.PickleStep(new global::Io.Cucumber.Messages.Types.PickleStepArgument(new global::Io.Cucumber.Messages.Types.PickleDocString(null, "{ \"workspacePath\": \"{dupPath}\", \"name\": \"dup-ws\" }"), null), new System.Collections.Generic.List(new string[] { - "8abd5b3860c364598600319061988100"}), "864c144e4718ae528ced0485eafeee1a", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/workspace\" with body:"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "c98610b4a3c83851af953684e3fa5834"}), "3d0bb2719820d353bd5afe152d98a45f", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 409"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "8d3dd782b611a45ab9c304e7ebfb6610"}), "5b8457ffc03aa65d87723066ccb52f5c", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "I delete the created workspace using the path \"{dupPath}\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "5088c6cd40ea015e8b9fd932ac0b3110"})), - new global::Io.Cucumber.Messages.Types.Pickle("b497e7086686aa53856a30f4d48051d8", "Features/Workspace/WorkspaceManagement.feature", "Get workspace by key returns 200 with workspace details", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "f8baa4d9622b125e9c8693df4b94558c"}), "9401e06f11316c5da3f69a9c151e555d", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "34f64bb1fddff1599c6c7775d43b9da4"}), "2428d53d6cc1475c849405f2b2f938b0", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "I use a unique temp directory stored as \"getWsPath\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "8783642bbab20f5c8ba615cc1af8c2b0"}), "082b698e31afdf5eb7b268e010c7a77c", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a workspace exists for path \"{getWsPath}\" with key stored as \"wsKey\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "18d5732493eb595fb2b1804912d99e23"}), "3cab3e76cc085555960c33ed5d32fbc5", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/workspace/{wsKey}\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "72a6958ec20913529a5a9f3fdf51e05b"}), "a5836f57d660c15996da44e7478504ec", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "c9db66c5ad798550badc5312737edaee"}), "b3962934bdbb3a58846d2f3a36b8ce97", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response body should contain \"workspacePath\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "6d62804e38a9045db75b61238130aafe"}), "a6ff8fc9f65bb253a1a6f506eb77b422", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "I delete the created workspace using the path \"{getWsPath}\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "63fdb01ed2c9a552970dec9f49c13bda"})), - new global::Io.Cucumber.Messages.Types.Pickle("402c6385f490da5c8098aaf916118674", "Features/Workspace/WorkspaceManagement.feature", "Get workspace by unknown key returns 404", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "f8baa4d9622b125e9c8693df4b94558c"}), "98ed1ca9eda0cd5cac6957268d191069", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "97d97a46268ff45e8124b47f256fdc39"}), "79b5496aa6fb1c5aa6683700c736ed8d", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/workspace/dW5rbm93bi1wYXRo\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "b3c56d3387d7bd51b3179e1e1bc68951"}), "da870fd6fe279f55ad47d931614f4758", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 404")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "50302e1995ed5252988d3ea0bb6feda8"})), - new global::Io.Cucumber.Messages.Types.Pickle("bf188ab492df1b5691957f09b9b3a0be", "Features/Workspace/WorkspaceManagement.feature", "Update workspace returns 200", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "f8baa4d9622b125e9c8693df4b94558c"}), "b13660be4a0c1c58b39fcf9131c0e642", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "f935bb86e813da558d36e2cc42d89098"}), "6ed15168dcc52856b08deaf5e7f25647", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "I use a unique temp directory stored as \"updWsPath\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "38a2694e5ff37f578502c43b849f046f"}), "8c3a5e166350e051a738a65dcf2176c2", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a workspace exists for path \"{updWsPath}\" with key stored as \"updWsKey\""), - new global::Io.Cucumber.Messages.Types.PickleStep(new global::Io.Cucumber.Messages.Types.PickleStepArgument(new global::Io.Cucumber.Messages.Types.PickleDocString(null, "{ \"name\": \"updated-name\" }"), null), new System.Collections.Generic.List(new string[] { - "4d202fd23b9bb95fa5916392a811a853"}), "523e2ca09334315eafa640fd0cc079c9", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I PUT to \"/mcp/workspace/{updWsKey}\" with body:"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "1078d7a33e66d455884f2d1f8f7b0e5f"}), "25f8ee3052f22f529ca6b0353126160b", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "284bd5c313e66258ab9be5747208f813"}), "16708ebe600c2f5db1f907272f402d6b", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "I delete the created workspace using the path \"{updWsPath}\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "48d9c54dece31159913762cfa4d12d7d"})), - new global::Io.Cucumber.Messages.Types.Pickle("1ef3d41c541d5456bcc8d6f774925abd", "Features/Workspace/WorkspaceManagement.feature", "Delete workspace returns 200", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "f8baa4d9622b125e9c8693df4b94558c"}), "14e7ff2863c14a50ba697f59e5d5a191", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "c4da91449bf5595a82cec7754aecbb33"}), "6c10f11689dd365ca74301aa569e6d79", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "I use a unique temp directory stored as \"delWsPath\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "4efe75c26ac7d454849a5f0f1b55bea7"}), "5cf71fa11c3189518edc85c49eeb198e", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a workspace exists for path \"{delWsPath}\" with key stored as \"delWsKey\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "9406caca6fe55b538e461e710d241072"}), "da402d422d0a815286f99c9be7272be6", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a DELETE request to \"/mcp/workspace/{delWsKey}\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "569eb6c6a00ea355a73cadcf7e5b02cc"}), "4435be9e9a67bb55b4bf90dad83abde1", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "06ea9f0a4f38355e93d1d8c0f7ebc9f3"})), - new global::Io.Cucumber.Messages.Types.Pickle("9abe9b364c38865d8a28b0375d132c6e", "Features/Workspace/WorkspaceManagement.feature", "Workspace keys are Base64URL-encoded path strings", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "f8baa4d9622b125e9c8693df4b94558c"}), "da7dc94b469c92548f4bc72dac7692cf", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "6cf8d9ea263f4254a7f7ba0473bc1fc0"}), "056598b8ee8fe554a8761f0adbcfcb07", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "I use a unique temp directory stored as \"b64Path\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "93039a475a544250bcbac22e1ad1a10c"}), "7578531ad7dd395b832226522da82778", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a workspace exists for path \"{b64Path}\" with key stored as \"b64Key\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "f271501f9926695e9a0cc68d52d599af"}), "28d91b80ed0250538e9f8033b84a8aeb", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the key \"{b64Key}\" should be a valid Base64URL-encoded string"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "eb3ebf6d5f304b519bc7b2f1be68d7b7"}), "08e7982eeff6705ebd29468aab395b56", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "I delete the created workspace using the path \"{b64Path}\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "9a8155197a04065fb800496c454ec682"})), - new global::Io.Cucumber.Messages.Types.Pickle("439eca7fccf06251823d5d0261f2fe08", "Features/Workspace/WorkspaceManagement.feature", "Start workspace returns 200", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "f8baa4d9622b125e9c8693df4b94558c"}), "60b9365de46c295697f56ca26be8489b", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "3d586ec420a0ea57a0ea2ea9171942ee"}), "3b59e5ae2040555eb52a4836658b08f1", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "I use a unique temp directory stored as \"startWsPath\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "d8c835296db83452b955a43f178cad59"}), "94ff58c0784a9c5a9fb70ff7d3e32482", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a workspace exists for path \"{startWsPath}\" with key stored as \"startWsKey\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "70f2a6303a8d435b87bbe8b3747c62ae"}), "bd9d4ed4a3c84e578167ae95a3c6a0c1", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/workspace/{startWsKey}/start\" with empty body"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "6a39743ed39cc258af89752c33fe025c"}), "e23d57a8dc21d257bf68e9078684864e", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "054ca67c65d7405d8894bd0361c74f5f"}), "1094fedfdcc4515ab01f80581412b21f", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "I delete the created workspace using the path \"{startWsPath}\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "b379e23b5d8f975497e488e59b429e73"})), - new global::Io.Cucumber.Messages.Types.Pickle("44267c0f2084f055b87db758e6586bf3", "Features/Workspace/WorkspaceManagement.feature", "Stop workspace returns 200", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "f8baa4d9622b125e9c8693df4b94558c"}), "e3ce54620e3dd35d8b3fd4e2fe248a56", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "75972991346d2855bd22f15664a776d9"}), "e7ccc962cca76e5db39691d5a78a462e", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "I use a unique temp directory stored as \"stopWsPath\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "a72148bd761f5a5682a6b55747a1a730"}), "b09a89f3c7cec45c81dcc5a72a57144d", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a workspace exists for path \"{stopWsPath}\" with key stored as \"stopWsKey\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "ab4eac177f42f158baa6156e01068967"}), "98eed3499ed5685baab772724c43ca32", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/workspace/{stopWsKey}/stop\" with empty body"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "61fd88a331c1715090df16278a151c4f"}), "c0204f0863d87255b3de120eec7b3a65", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "0bef092ebb6a715ab2491b397ec9c5fd"}), "351b0d2c2272805485f72db838b0bab4", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "I delete the created workspace using the path \"{stopWsPath}\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "c9d2d36cc2829054a4343144fa545c37"})), - new global::Io.Cucumber.Messages.Types.Pickle("e40881617842f85ca3e1686c6ad2f13e", "Features/Workspace/WorkspaceManagement.feature", "Get workspace status returns 200 with running state", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "f8baa4d9622b125e9c8693df4b94558c"}), "d77a76c03243075cb9e5806e3ccdaf25", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "2d35b29365c41658a076e0ee64ecc289"}), "440f0dceeb6e255d9b483ce9091b9700", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "I use a unique temp directory stored as \"statusWsPath\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "ebd73dbe78c2fd5d839ffb07a2662a7e"}), "3c9215d3b63f1552807aba9d27f915c6", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a workspace exists for path \"{statusWsPath}\" with key stored as \"statusWsKey\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "09d0463d1a07c05fbadea55fd62a4f5d"}), "75329581fa31505b8d22923a479059e7", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/workspace/{statusWsKey}/status\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "44eb1242fc1f1e51bff85566de0dd6bc"}), "e2f050db1d0bde5895958a591c034b17", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "675680bc40efab5f80031b50fc629a44"}), "ec3e3b919163e356a8cee00657aa7614", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response body should contain \"isRunning\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "b488e03093a0d75087dbe6f3d1bbb155"}), "6f08aab5a6daaa5fac9ab9cfe1a61acd", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "I delete the created workspace using the path \"{statusWsPath}\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "4ff18dc46fdc6653b2e08801360fd38d"})), - new global::Io.Cucumber.Messages.Types.Pickle("61e78ef6cc0eac5f90870494af1a2b22", "Features/Workspace/WorkspaceManagement.feature", "Workspace status endpoint is publicly accessible without API key", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "f8baa4d9622b125e9c8693df4b94558c"}), "a3563b613cf55a55a4bbb2572fccf32d", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "dbebd52014341353816aeeb76e0726d2"}), "deac693dfe8b3157b1396fc0a20582c1", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "I use a unique temp directory stored as \"pubStatusPath\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "8716911bd61d5e589f48b33293547dfe"}), "6cdefead846042529fdf38c686b3693a", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a workspace exists for path \"{pubStatusPath}\" with key stored as \"pubStatusKey\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "0031264a9c345759adf89c71d5129b61"}), "2a8bebb39a32fc56a8df3c5e20a38f2f", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I send a GET request to \"/mcp/workspace/{pubStatusKey}/status\" without an API key" + - ""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "284257bbc10b0757aee5e3ad0de83d3c"}), "f7b5fba142be395bbcfe061f322807ab", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "8104a03887737e5cb2dbf2f1f59540d2"}), "1ab397b6ef411451970dff166421eafc", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "I delete the created workspace using the path \"{pubStatusPath}\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "ed84bc23fc60c4549f712c3e8ef0a97e"})), - new global::Io.Cucumber.Messages.Types.Pickle("2d7144e0c0aed25f9476fe9eb00e7e89", "Features/Workspace/WorkspaceManagement.feature", "Creating a workspace auto-initializes its directory scaffold", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "f8baa4d9622b125e9c8693df4b94558c"}), "aef71ca0089cb2558c9025be24ec2eb7", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "ca0b382e6753d456b81abc8aeb16b92f"}), "482219cda48aae59b2c22f0b42fcd2c9", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "I use a unique temp directory stored as \"scaffoldPath\""), - new global::Io.Cucumber.Messages.Types.PickleStep(new global::Io.Cucumber.Messages.Types.PickleStepArgument(new global::Io.Cucumber.Messages.Types.PickleDocString(null, "{ \"workspacePath\": \"{scaffoldPath}\", \"name\": \"scaffold-ws\" }"), null), new System.Collections.Generic.List(new string[] { - "0329d683bbb7c85c9b966f8af7b5b4a4"}), "f2361e305defbb5e8c196a0c328400dd", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/workspace\" with body:"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "edc4f911cb92f85881ef922ec3ff4810"}), "46e7b90e71a76e5b83e65a1334176499", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 201"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "2e13774f8beeda5dba5a854bc5a51a29"}), "add172e931e1255fb510c2366645f2f5", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the directory \"{scaffoldPath}\" should exist"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "2bdd36aa6b7f2454812ac5dea8ffa986"}), "15bacdba50de1559a7865850b71478c1", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "I delete the created workspace using the path \"{scaffoldPath}\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "67d0ac4528e8ef53ae56735ecc0bf883"}))}); - } - - private static global::Reqnroll.Formatters.RuntimeSupport.FeatureLevelCucumberMessages InitializeCucumberMessages() - { - return new global::Reqnroll.Formatters.RuntimeSupport.FeatureLevelCucumberMessages(new global::System.Func(WorkspaceManagementFeature.SourceFunc), new global::System.Func(WorkspaceManagementFeature.GherkinDocumentFunc), new global::System.Func>(WorkspaceManagementFeature.PicklesFunc)); - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.InitializeAsync() - { - try - { - await this.TestInitializeAsync(); - } - catch (System.Exception e1) - { - try - { - ((global::Xunit.IAsyncLifetime)(this)).DisposeAsync(); - } - catch (System.Exception e2) - { - throw new System.AggregateException("Test initialization failed", e1, e2); - } - throw; - } - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.DisposeAsync() - { - await this.TestTearDownAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="List workspaces returns 200 with valid result")] - [global::Xunit.TraitAttribute("FeatureTitle", "Workspace Management")] - [global::Xunit.TraitAttribute("Description", "List workspaces returns 200 with valid result")] - public async global::System.Threading.Tasks.Task ListWorkspacesReturns200WithValidResult() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "0"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("List workspaces returns 200 with valid result", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 11 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 12 - await testRunner.WhenAsync("I send a GET request to \"/mcp/workspace\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 13 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 14 - await testRunner.AndAsync("the response body should contain \"totalCount\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="List workspaces endpoint is publicly accessible without API key")] - [global::Xunit.TraitAttribute("FeatureTitle", "Workspace Management")] - [global::Xunit.TraitAttribute("Description", "List workspaces endpoint is publicly accessible without API key")] - public async global::System.Threading.Tasks.Task ListWorkspacesEndpointIsPubliclyAccessibleWithoutAPIKey() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "1"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("List workspaces endpoint is publicly accessible without API key", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 16 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 17 - await testRunner.WhenAsync("I send a GET request to \"/mcp/workspace\" without an API key", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 18 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Create workspace assigns unique auto-incremented port starting at 7148")] - [global::Xunit.TraitAttribute("FeatureTitle", "Workspace Management")] - [global::Xunit.TraitAttribute("Description", "Create workspace assigns unique auto-incremented port starting at 7148")] - public async global::System.Threading.Tasks.Task CreateWorkspaceAssignsUniqueAuto_IncrementedPortStartingAt7148() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "2"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Create workspace assigns unique auto-incremented port starting at 7148", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 20 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 21 - await testRunner.GivenAsync("I use a unique temp directory stored as \"newWorkspacePath\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 22 - await testRunner.WhenAsync("I POST to \"/mcp/workspace\" with body:", "{ \"workspacePath\": \"{newWorkspacePath}\", \"name\": \"specflow-ws-porttest\" }", ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 26 - await testRunner.ThenAsync("the response status code should be 201", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 27 - await testRunner.AndAsync("the response body should contain a port greater than or equal to 7148", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 28 - await testRunner.AndAsync("I delete the created workspace using the path \"{newWorkspacePath}\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Create workspace returns 201 with workspace details")] - [global::Xunit.TraitAttribute("FeatureTitle", "Workspace Management")] - [global::Xunit.TraitAttribute("Description", "Create workspace returns 201 with workspace details")] - public async global::System.Threading.Tasks.Task CreateWorkspaceReturns201WithWorkspaceDetails() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "3"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Create workspace returns 201 with workspace details", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 30 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 31 - await testRunner.GivenAsync("I use a unique temp directory stored as \"wsPath\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 32 - await testRunner.WhenAsync("I POST to \"/mcp/workspace\" with body:", "{ \"workspacePath\": \"{wsPath}\", \"name\": \"specflow-ws-create\" }", ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 36 - await testRunner.ThenAsync("the response status code should be 201", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 37 - await testRunner.AndAsync("the response body should contain \"specflow-ws-create\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 38 - await testRunner.AndAsync("the response body should contain \"workspacePort\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 39 - await testRunner.AndAsync("I delete the created workspace using the path \"{wsPath}\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Create workspace with duplicate path returns 409")] - [global::Xunit.TraitAttribute("FeatureTitle", "Workspace Management")] - [global::Xunit.TraitAttribute("Description", "Create workspace with duplicate path returns 409")] - public async global::System.Threading.Tasks.Task CreateWorkspaceWithDuplicatePathReturns409() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "4"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Create workspace with duplicate path returns 409", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 41 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 42 - await testRunner.GivenAsync("I use a unique temp directory stored as \"dupPath\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 43 - await testRunner.AndAsync("a workspace exists for path \"{dupPath}\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 44 - await testRunner.WhenAsync("I POST to \"/mcp/workspace\" with body:", "{ \"workspacePath\": \"{dupPath}\", \"name\": \"dup-ws\" }", ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 48 - await testRunner.ThenAsync("the response status code should be 409", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 49 - await testRunner.AndAsync("I delete the created workspace using the path \"{dupPath}\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Get workspace by key returns 200 with workspace details")] - [global::Xunit.TraitAttribute("FeatureTitle", "Workspace Management")] - [global::Xunit.TraitAttribute("Description", "Get workspace by key returns 200 with workspace details")] - public async global::System.Threading.Tasks.Task GetWorkspaceByKeyReturns200WithWorkspaceDetails() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "5"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Get workspace by key returns 200 with workspace details", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 51 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 52 - await testRunner.GivenAsync("I use a unique temp directory stored as \"getWsPath\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 53 - await testRunner.AndAsync("a workspace exists for path \"{getWsPath}\" with key stored as \"wsKey\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 54 - await testRunner.WhenAsync("I send a GET request to \"/mcp/workspace/{wsKey}\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 55 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 56 - await testRunner.AndAsync("the response body should contain \"workspacePath\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 57 - await testRunner.AndAsync("I delete the created workspace using the path \"{getWsPath}\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Get workspace by unknown key returns 404")] - [global::Xunit.TraitAttribute("FeatureTitle", "Workspace Management")] - [global::Xunit.TraitAttribute("Description", "Get workspace by unknown key returns 404")] - public async global::System.Threading.Tasks.Task GetWorkspaceByUnknownKeyReturns404() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "6"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Get workspace by unknown key returns 404", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 59 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 60 - await testRunner.WhenAsync("I send a GET request to \"/mcp/workspace/dW5rbm93bi1wYXRo\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 61 - await testRunner.ThenAsync("the response status code should be 404", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Update workspace returns 200")] - [global::Xunit.TraitAttribute("FeatureTitle", "Workspace Management")] - [global::Xunit.TraitAttribute("Description", "Update workspace returns 200")] - public async global::System.Threading.Tasks.Task UpdateWorkspaceReturns200() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "7"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Update workspace returns 200", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 63 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 64 - await testRunner.GivenAsync("I use a unique temp directory stored as \"updWsPath\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 65 - await testRunner.AndAsync("a workspace exists for path \"{updWsPath}\" with key stored as \"updWsKey\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 66 - await testRunner.WhenAsync("I PUT to \"/mcp/workspace/{updWsKey}\" with body:", "{ \"name\": \"updated-name\" }", ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 70 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 71 - await testRunner.AndAsync("I delete the created workspace using the path \"{updWsPath}\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Delete workspace returns 200")] - [global::Xunit.TraitAttribute("FeatureTitle", "Workspace Management")] - [global::Xunit.TraitAttribute("Description", "Delete workspace returns 200")] - public async global::System.Threading.Tasks.Task DeleteWorkspaceReturns200() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "8"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Delete workspace returns 200", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 73 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 74 - await testRunner.GivenAsync("I use a unique temp directory stored as \"delWsPath\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 75 - await testRunner.AndAsync("a workspace exists for path \"{delWsPath}\" with key stored as \"delWsKey\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 76 - await testRunner.WhenAsync("I send a DELETE request to \"/mcp/workspace/{delWsKey}\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 77 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Workspace keys are Base64URL-encoded path strings")] - [global::Xunit.TraitAttribute("FeatureTitle", "Workspace Management")] - [global::Xunit.TraitAttribute("Description", "Workspace keys are Base64URL-encoded path strings")] - public async global::System.Threading.Tasks.Task WorkspaceKeysAreBase64URL_EncodedPathStrings() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "9"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Workspace keys are Base64URL-encoded path strings", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 79 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 80 - await testRunner.GivenAsync("I use a unique temp directory stored as \"b64Path\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 81 - await testRunner.AndAsync("a workspace exists for path \"{b64Path}\" with key stored as \"b64Key\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 82 - await testRunner.ThenAsync("the key \"{b64Key}\" should be a valid Base64URL-encoded string", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 83 - await testRunner.AndAsync("I delete the created workspace using the path \"{b64Path}\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Start workspace returns 200")] - [global::Xunit.TraitAttribute("FeatureTitle", "Workspace Management")] - [global::Xunit.TraitAttribute("Description", "Start workspace returns 200")] - public async global::System.Threading.Tasks.Task StartWorkspaceReturns200() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "10"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Start workspace returns 200", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 85 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 86 - await testRunner.GivenAsync("I use a unique temp directory stored as \"startWsPath\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 87 - await testRunner.AndAsync("a workspace exists for path \"{startWsPath}\" with key stored as \"startWsKey\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 88 - await testRunner.WhenAsync("I POST to \"/mcp/workspace/{startWsKey}/start\" with empty body", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 89 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 90 - await testRunner.AndAsync("I delete the created workspace using the path \"{startWsPath}\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Stop workspace returns 200")] - [global::Xunit.TraitAttribute("FeatureTitle", "Workspace Management")] - [global::Xunit.TraitAttribute("Description", "Stop workspace returns 200")] - public async global::System.Threading.Tasks.Task StopWorkspaceReturns200() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "11"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Stop workspace returns 200", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 92 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 93 - await testRunner.GivenAsync("I use a unique temp directory stored as \"stopWsPath\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 94 - await testRunner.AndAsync("a workspace exists for path \"{stopWsPath}\" with key stored as \"stopWsKey\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 95 - await testRunner.WhenAsync("I POST to \"/mcp/workspace/{stopWsKey}/stop\" with empty body", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 96 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 97 - await testRunner.AndAsync("I delete the created workspace using the path \"{stopWsPath}\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Get workspace status returns 200 with running state")] - [global::Xunit.TraitAttribute("FeatureTitle", "Workspace Management")] - [global::Xunit.TraitAttribute("Description", "Get workspace status returns 200 with running state")] - public async global::System.Threading.Tasks.Task GetWorkspaceStatusReturns200WithRunningState() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "12"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Get workspace status returns 200 with running state", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 99 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 100 - await testRunner.GivenAsync("I use a unique temp directory stored as \"statusWsPath\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 101 - await testRunner.AndAsync("a workspace exists for path \"{statusWsPath}\" with key stored as \"statusWsKey\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 102 - await testRunner.WhenAsync("I send a GET request to \"/mcp/workspace/{statusWsKey}/status\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 103 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 104 - await testRunner.AndAsync("the response body should contain \"isRunning\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 105 - await testRunner.AndAsync("I delete the created workspace using the path \"{statusWsPath}\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Workspace status endpoint is publicly accessible without API key")] - [global::Xunit.TraitAttribute("FeatureTitle", "Workspace Management")] - [global::Xunit.TraitAttribute("Description", "Workspace status endpoint is publicly accessible without API key")] - public async global::System.Threading.Tasks.Task WorkspaceStatusEndpointIsPubliclyAccessibleWithoutAPIKey() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "13"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Workspace status endpoint is publicly accessible without API key", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 107 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 108 - await testRunner.GivenAsync("I use a unique temp directory stored as \"pubStatusPath\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 109 - await testRunner.AndAsync("a workspace exists for path \"{pubStatusPath}\" with key stored as \"pubStatusKey\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 110 - await testRunner.WhenAsync("I send a GET request to \"/mcp/workspace/{pubStatusKey}/status\" without an API key" + - "", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 111 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 112 - await testRunner.AndAsync("I delete the created workspace using the path \"{pubStatusPath}\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Creating a workspace auto-initializes its directory scaffold")] - [global::Xunit.TraitAttribute("FeatureTitle", "Workspace Management")] - [global::Xunit.TraitAttribute("Description", "Creating a workspace auto-initializes its directory scaffold")] - public async global::System.Threading.Tasks.Task CreatingAWorkspaceAuto_InitializesItsDirectoryScaffold() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "14"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Creating a workspace auto-initializes its directory scaffold", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 115 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 116 - await testRunner.GivenAsync("I use a unique temp directory stored as \"scaffoldPath\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 117 - await testRunner.WhenAsync("I POST to \"/mcp/workspace\" with body:", "{ \"workspacePath\": \"{scaffoldPath}\", \"name\": \"scaffold-ws\" }", ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 121 - await testRunner.ThenAsync("the response status code should be 201", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 122 - await testRunner.AndAsync("the directory \"{scaffoldPath}\" should exist", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 123 - await testRunner.AndAsync("I delete the created workspace using the path \"{scaffoldPath}\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Reqnroll", "3.0.0.0")] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - public class FixtureData : object, global::Xunit.IAsyncLifetime - { - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.InitializeAsync() - { - await WorkspaceManagementFeature.FeatureSetupAsync(); - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.DisposeAsync() - { - await WorkspaceManagementFeature.FeatureTearDownAsync(); - } - } - } -} -#pragma warning restore -#endregion diff --git a/tests/McpServer.SpecFlow.Tests/Features/Workspace/WorkspaceMarkerFile.feature b/tests/McpServer.SpecFlow.Tests/Features/Workspace/WorkspaceMarkerFile.feature deleted file mode 100644 index b275f3de..00000000 --- a/tests/McpServer.SpecFlow.Tests/Features/Workspace/WorkspaceMarkerFile.feature +++ /dev/null @@ -1,68 +0,0 @@ -Feature: Workspace Marker File Agent Discovery - As an AI agent - I want a marker file written to a workspace root when the host starts - So that I can discover the correct server port and endpoints automatically - - Background: - Given the MCP server is running - - # FR-MCP-018 / TR-MCP-WS-005 / TEST-MCP-013 - - Scenario: Workspace start writes AGENTS-README-FIRST.yaml to workspace root - Given I use a unique temp directory stored as "markerWsPath" - And a workspace exists for path "{markerWsPath}" with key stored as "markerWsKey" - When I POST to "/mcp/workspace/{markerWsKey}/start" with empty body - Then the response status code should be 200 - And the file "AGENTS-README-FIRST.yaml" should exist in "{markerWsPath}" - And I stop the workspace "{markerWsKey}" - And I delete the created workspace using the path "{markerWsPath}" - - Scenario: Workspace stop removes the marker file - Given I use a unique temp directory stored as "stopMarkerPath" - And a workspace exists for path "{stopMarkerPath}" with key stored as "stopMarkerKey" - And the workspace "{stopMarkerKey}" is started - When I POST to "/mcp/workspace/{stopMarkerKey}/stop" with empty body - Then the response status code should be 200 - And the file "AGENTS-README-FIRST.yaml" should not exist in "{stopMarkerPath}" - And I delete the created workspace using the path "{stopMarkerPath}" - - Scenario: Marker file contains the correct port number - Given I use a unique temp directory stored as "portMarkerPath" - And a workspace exists for path "{portMarkerPath}" with key stored as "portMarkerKey" and port stored as "wsPort" - And the workspace "{portMarkerKey}" is started - Then the file "AGENTS-README-FIRST.yaml" in "{portMarkerPath}" should contain "{wsPort}" - And I stop the workspace "{portMarkerKey}" - And I delete the created workspace using the path "{portMarkerPath}" - - Scenario: Marker file contains baseUrl field - Given I use a unique temp directory stored as "baseUrlMarkerPath" - And a workspace exists for path "{baseUrlMarkerPath}" with key stored as "baseUrlMarkerKey" - And the workspace "{baseUrlMarkerKey}" is started - Then the file "AGENTS-README-FIRST.yaml" in "{baseUrlMarkerPath}" should contain "baseUrl" - And I stop the workspace "{baseUrlMarkerKey}" - And I delete the created workspace using the path "{baseUrlMarkerPath}" - - Scenario: Marker file contains endpoint paths - Given I use a unique temp directory stored as "endpointMarkerPath" - And a workspace exists for path "{endpointMarkerPath}" with key stored as "endpointMarkerKey" - And the workspace "{endpointMarkerKey}" is started - Then the file "AGENTS-README-FIRST.yaml" in "{endpointMarkerPath}" should contain "mcp/todo" - And I stop the workspace "{endpointMarkerKey}" - And I delete the created workspace using the path "{endpointMarkerPath}" - - Scenario: Marker file contains machine-readable prompt block - Given I use a unique temp directory stored as "promptMarkerPath" - And a workspace exists for path "{promptMarkerPath}" with key stored as "promptMarkerKey" - And the workspace "{promptMarkerKey}" is started - Then the file "AGENTS-README-FIRST.yaml" in "{promptMarkerPath}" should contain "prompt" - And I stop the workspace "{promptMarkerKey}" - And I delete the created workspace using the path "{promptMarkerPath}" - - Scenario: Legacy .mcp-server.yaml files are cleaned up on workspace stop - Given I use a unique temp directory stored as "legacyMarkerPath" - And a legacy ".mcp-server.yaml" file exists in "{legacyMarkerPath}" - And a workspace exists for path "{legacyMarkerPath}" with key stored as "legacyMarkerKey" - When I POST to "/mcp/workspace/{legacyMarkerKey}/stop" with empty body - Then the response status code should be 200 - And the file ".mcp-server.yaml" should not exist in "{legacyMarkerPath}" - And I delete the created workspace using the path "{legacyMarkerPath}" diff --git a/tests/McpServer.SpecFlow.Tests/Features/Workspace/WorkspaceMarkerFile.feature.cs b/tests/McpServer.SpecFlow.Tests/Features/Workspace/WorkspaceMarkerFile.feature.cs deleted file mode 100644 index 3e42bf9a..00000000 --- a/tests/McpServer.SpecFlow.Tests/Features/Workspace/WorkspaceMarkerFile.feature.cs +++ /dev/null @@ -1,766 +0,0 @@ -// ------------------------------------------------------------------------------ -// -// This code was generated by Reqnroll (https://www.reqnroll.net/). -// Reqnroll Version:3.0.0.0 -// Reqnroll Generator Version:3.0.0.0 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -// ------------------------------------------------------------------------------ -#region Designer generated code -#pragma warning disable -using Reqnroll; -namespace McpServer.SpecFlow.Tests.Features.Workspace -{ - - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Reqnroll", "3.0.0.0")] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - public partial class WorkspaceMarkerFileAgentDiscoveryFeature : object, global::Xunit.IClassFixture, global::Xunit.IAsyncLifetime - { - - private global::Reqnroll.ITestRunner testRunner; - - private static string[] featureTags = ((string[])(null)); - - private static global::Reqnroll.FeatureInfo featureInfo = new global::Reqnroll.FeatureInfo(new global::System.Globalization.CultureInfo("en-US"), "Features/Workspace", "Workspace Marker File Agent Discovery", " As an AI agent\r\n I want a marker file written to a workspace root when the hos" + - "t starts\r\n So that I can discover the correct server port and endpoints automat" + - "ically", global::Reqnroll.ProgrammingLanguage.CSharp, featureTags, InitializeCucumberMessages()); - - private global::Xunit.Abstractions.ITestOutputHelper _testOutputHelper; - -#line 1 "WorkspaceMarkerFile.feature" -#line hidden - - public WorkspaceMarkerFileAgentDiscoveryFeature(WorkspaceMarkerFileAgentDiscoveryFeature.FixtureData fixtureData, global::Xunit.Abstractions.ITestOutputHelper testOutputHelper) - { - this._testOutputHelper = testOutputHelper; - } - - public static async global::System.Threading.Tasks.Task FeatureSetupAsync() - { - } - - public static async global::System.Threading.Tasks.Task FeatureTearDownAsync() - { - await global::Reqnroll.TestRunnerManager.ReleaseFeatureAsync(featureInfo); - } - - public async global::System.Threading.Tasks.Task TestInitializeAsync() - { - testRunner = global::Reqnroll.TestRunnerManager.GetTestRunnerForAssembly(featureHint: featureInfo); - try - { - if (((testRunner.FeatureContext != null) - && (testRunner.FeatureContext.FeatureInfo.Equals(featureInfo) == false))) - { - await testRunner.OnFeatureEndAsync(); - } - } - finally - { - if (((testRunner.FeatureContext != null) - && testRunner.FeatureContext.BeforeFeatureHookFailed)) - { - throw new global::Reqnroll.ReqnrollException("Scenario skipped because of previous before feature hook error"); - } - if ((testRunner.FeatureContext == null)) - { - await testRunner.OnFeatureStartAsync(featureInfo); - } - } - } - - public async global::System.Threading.Tasks.Task TestTearDownAsync() - { - if ((testRunner == null)) - { - return; - } - try - { - await testRunner.OnScenarioEndAsync(); - } - finally - { - global::Reqnroll.TestRunnerManager.ReleaseTestRunner(testRunner); - testRunner = null; - } - } - - public void ScenarioInitialize(global::Reqnroll.ScenarioInfo scenarioInfo, global::Reqnroll.RuleInfo ruleInfo) - { - testRunner.OnScenarioInitialize(scenarioInfo, ruleInfo); - testRunner.ScenarioContext.ScenarioContainer.RegisterInstanceAs(_testOutputHelper); - } - - public async global::System.Threading.Tasks.Task ScenarioStartAsync() - { - await testRunner.OnScenarioStartAsync(); - } - - public async global::System.Threading.Tasks.Task ScenarioCleanupAsync() - { - await testRunner.CollectScenarioErrorsAsync(); - } - - public virtual async global::System.Threading.Tasks.Task FeatureBackgroundAsync() - { -#line 6 - #line hidden -#line 7 - await testRunner.GivenAsync("the MCP server is running", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden - } - - private static global::Io.Cucumber.Messages.Types.Source SourceFunc() - { - return new global::Io.Cucumber.Messages.Types.Source("Features/Workspace/WorkspaceMarkerFile.feature", "Feature: Workspace Marker File Agent Discovery\r\n As an AI agent\r\n I want a mark" + - "er file written to a workspace root when the host starts\r\n So that I can discov" + - "er the correct server port and endpoints automatically\r\n\r\n Background:\r\n Giv" + - "en the MCP server is running\r\n\r\n # FR-MCP-018 / TR-MCP-WS-005 / TEST-MCP-013\r\n\r" + - "\n Scenario: Workspace start writes AGENTS-README-FIRST.yaml to workspace root\r\n" + - " Given I use a unique temp directory stored as \"markerWsPath\"\r\n And a work" + - "space exists for path \"{markerWsPath}\" with key stored as \"markerWsKey\"\r\n Whe" + - "n I POST to \"/mcp/workspace/{markerWsKey}/start\" with empty body\r\n Then the r" + - "esponse status code should be 200\r\n And the file \"AGENTS-README-FIRST.yaml\" s" + - "hould exist in \"{markerWsPath}\"\r\n And I stop the workspace \"{markerWsKey}\"\r\n " + - " And I delete the created workspace using the path \"{markerWsPath}\"\r\n\r\n Scena" + - "rio: Workspace stop removes the marker file\r\n Given I use a unique temp direc" + - "tory stored as \"stopMarkerPath\"\r\n And a workspace exists for path \"{stopMarke" + - "rPath}\" with key stored as \"stopMarkerKey\"\r\n And the workspace \"{stopMarkerKe" + - "y}\" is started\r\n When I POST to \"/mcp/workspace/{stopMarkerKey}/stop\" with em" + - "pty body\r\n Then the response status code should be 200\r\n And the file \"AGE" + - "NTS-README-FIRST.yaml\" should not exist in \"{stopMarkerPath}\"\r\n And I delete " + - "the created workspace using the path \"{stopMarkerPath}\"\r\n\r\n Scenario: Marker fi" + - "le contains the correct port number\r\n Given I use a unique temp directory sto" + - "red as \"portMarkerPath\"\r\n And a workspace exists for path \"{portMarkerPath}\" " + - "with key stored as \"portMarkerKey\" and port stored as \"wsPort\"\r\n And the work" + - "space \"{portMarkerKey}\" is started\r\n Then the file \"AGENTS-README-FIRST.yaml\"" + - " in \"{portMarkerPath}\" should contain \"{wsPort}\"\r\n And I stop the workspace \"" + - "{portMarkerKey}\"\r\n And I delete the created workspace using the path \"{portMa" + - "rkerPath}\"\r\n\r\n Scenario: Marker file contains baseUrl field\r\n Given I use a " + - "unique temp directory stored as \"baseUrlMarkerPath\"\r\n And a workspace exists " + - "for path \"{baseUrlMarkerPath}\" with key stored as \"baseUrlMarkerKey\"\r\n And th" + - "e workspace \"{baseUrlMarkerKey}\" is started\r\n Then the file \"AGENTS-README-FI" + - "RST.yaml\" in \"{baseUrlMarkerPath}\" should contain \"baseUrl\"\r\n And I stop the " + - "workspace \"{baseUrlMarkerKey}\"\r\n And I delete the created workspace using the" + - " path \"{baseUrlMarkerPath}\"\r\n\r\n Scenario: Marker file contains endpoint paths\r\n" + - " Given I use a unique temp directory stored as \"endpointMarkerPath\"\r\n And " + - "a workspace exists for path \"{endpointMarkerPath}\" with key stored as \"endpointM" + - "arkerKey\"\r\n And the workspace \"{endpointMarkerKey}\" is started\r\n Then the " + - "file \"AGENTS-README-FIRST.yaml\" in \"{endpointMarkerPath}\" should contain \"mcp/to" + - "do\"\r\n And I stop the workspace \"{endpointMarkerKey}\"\r\n And I delete the cr" + - "eated workspace using the path \"{endpointMarkerPath}\"\r\n\r\n Scenario: Marker file" + - " contains machine-readable prompt block\r\n Given I use a unique temp directory" + - " stored as \"promptMarkerPath\"\r\n And a workspace exists for path \"{promptMarke" + - "rPath}\" with key stored as \"promptMarkerKey\"\r\n And the workspace \"{promptMark" + - "erKey}\" is started\r\n Then the file \"AGENTS-README-FIRST.yaml\" in \"{promptMark" + - "erPath}\" should contain \"prompt\"\r\n And I stop the workspace \"{promptMarkerKey" + - "}\"\r\n And I delete the created workspace using the path \"{promptMarkerPath}\"\r\n" + - "\r\n Scenario: Legacy .mcp-server.yaml files are cleaned up on workspace stop\r\n " + - " Given I use a unique temp directory stored as \"legacyMarkerPath\"\r\n And a le" + - "gacy \".mcp-server.yaml\" file exists in \"{legacyMarkerPath}\"\r\n And a workspace" + - " exists for path \"{legacyMarkerPath}\" with key stored as \"legacyMarkerKey\"\r\n " + - "When I POST to \"/mcp/workspace/{legacyMarkerKey}/stop\" with empty body\r\n Then" + - " the response status code should be 200\r\n And the file \".mcp-server.yaml\" sho" + - "uld not exist in \"{legacyMarkerPath}\"\r\n And I delete the created workspace us" + - "ing the path \"{legacyMarkerPath}\"\r\n", global::Io.Cucumber.Messages.Types.SourceMediaType.TEXT_X_CUCUMBER_GHERKIN_PLAIN); - } - - private static global::Io.Cucumber.Messages.Types.GherkinDocument GherkinDocumentFunc() - { - return new global::Io.Cucumber.Messages.Types.GherkinDocument("Features/Workspace/WorkspaceMarkerFile.feature", new global::Io.Cucumber.Messages.Types.Feature(new global::Io.Cucumber.Messages.Types.Location(1, new System.Nullable(1)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "en-US", "Feature", "Workspace Marker File Agent Discovery", " As an AI agent\r\n I want a marker file written to a workspace root when the hos" + - "t starts\r\n So that I can discover the correct server port and endpoints automat" + - "ically", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.FeatureChild[] { - new global::Io.Cucumber.Messages.Types.FeatureChild(null, new global::Io.Cucumber.Messages.Types.Background(new global::Io.Cucumber.Messages.Types.Location(6, new System.Nullable(3)), "Background", "", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(7, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "the MCP server is running", null, null, "cc2c402017a109588cfa217bdd4b1987")}), "da794b49f8628955a721288a353fba7d"), null), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(11, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Workspace start writes AGENTS-README-FIRST.yaml to workspace root", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(12, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "I use a unique temp directory stored as \"markerWsPath\"", null, null, "2f9f7a64f872ac5a98aa109e4dfd65c4"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(13, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "a workspace exists for path \"{markerWsPath}\" with key stored as \"markerWsKey\"", null, null, "4a39ae1dd1c2415e8eef71e20301256d"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(14, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/workspace/{markerWsKey}/start\" with empty body", null, null, "d7f0b1132b0dd850a39dfe89cb6b2197"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(15, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "945c90c1ef4994529a54651c90e16f55"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(16, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the file \"AGENTS-README-FIRST.yaml\" should exist in \"{markerWsPath}\"", null, null, "0d2f93088e67725db5fa8b5dd31a2dea"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(17, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I stop the workspace \"{markerWsKey}\"", null, null, "f78d35e6c32b4f5ca40254d8fbce24db"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(18, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I delete the created workspace using the path \"{markerWsPath}\"", null, null, "047355b1ec8ad75095e716bc10839e79")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "6bd7a992582f8756865e3454266d06b2")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(20, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Workspace stop removes the marker file", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(21, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "I use a unique temp directory stored as \"stopMarkerPath\"", null, null, "05a700a8edd6eb5fa361b353bf85a49a"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(22, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "a workspace exists for path \"{stopMarkerPath}\" with key stored as \"stopMarkerKey\"" + - "", null, null, "0dbe9883e98cce52ac6e3c043523ba07"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(23, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the workspace \"{stopMarkerKey}\" is started", null, null, "0c797d0117ac14538db84a93c77bc965"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(24, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/workspace/{stopMarkerKey}/stop\" with empty body", null, null, "d8a331919980e55fa824853f6c2e67b6"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(25, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "2ead7c5aea63b05c8e917a2816e7c243"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(26, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the file \"AGENTS-README-FIRST.yaml\" should not exist in \"{stopMarkerPath}\"", null, null, "b7f6e96b7d4ce352a8a223f6f7fff0b7"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(27, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I delete the created workspace using the path \"{stopMarkerPath}\"", null, null, "c229d4540c5261509b9b3f6de2016b82")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "519e90289818175083cb77a7d6c91b0e")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(29, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Marker file contains the correct port number", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(30, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "I use a unique temp directory stored as \"portMarkerPath\"", null, null, "07da4fd25dba1652a35dd84dfdabc6d7"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(31, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "a workspace exists for path \"{portMarkerPath}\" with key stored as \"portMarkerKey\"" + - " and port stored as \"wsPort\"", null, null, "e68ceb8675d8dd5f8b53b40311979e2f"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(32, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the workspace \"{portMarkerKey}\" is started", null, null, "ae649483f0ccdd5dbe8fa244b16ef85a"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(33, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the file \"AGENTS-README-FIRST.yaml\" in \"{portMarkerPath}\" should contain \"{wsPort" + - "}\"", null, null, "f60be18cc9c53b58b80ea3cd6fe06e4f"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(34, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I stop the workspace \"{portMarkerKey}\"", null, null, "50bd496f5ab39357b95c4885b4a04d06"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(35, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I delete the created workspace using the path \"{portMarkerPath}\"", null, null, "6b06cf8e76453b558889e82e3cd37acb")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "707640aaa283bd5e91d598527724da7a")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(37, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Marker file contains baseUrl field", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(38, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "I use a unique temp directory stored as \"baseUrlMarkerPath\"", null, null, "f1498531ee53325d8eb7598fd420bea4"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(39, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "a workspace exists for path \"{baseUrlMarkerPath}\" with key stored as \"baseUrlMark" + - "erKey\"", null, null, "f3a9f62f76066d55bb9719098b0db8fa"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(40, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the workspace \"{baseUrlMarkerKey}\" is started", null, null, "3e4a794a17abc3578a94925b094db27e"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(41, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the file \"AGENTS-README-FIRST.yaml\" in \"{baseUrlMarkerPath}\" should contain \"base" + - "Url\"", null, null, "79e535ac5106d95691590c100cd00224"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(42, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I stop the workspace \"{baseUrlMarkerKey}\"", null, null, "e792b542e1d19757a7251fecb05624fe"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(43, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I delete the created workspace using the path \"{baseUrlMarkerPath}\"", null, null, "a62cb719cab433578d4ef284a8dd90ea")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "72559657838e1557861edab8fb3b61b6")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(45, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Marker file contains endpoint paths", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(46, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "I use a unique temp directory stored as \"endpointMarkerPath\"", null, null, "092d85e7d2241c59b7016fd6a445eda9"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(47, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "a workspace exists for path \"{endpointMarkerPath}\" with key stored as \"endpointMa" + - "rkerKey\"", null, null, "cebd7f321f858650afd4bf88a161e79d"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(48, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the workspace \"{endpointMarkerKey}\" is started", null, null, "6bc9757902f41152ba735d4a89493505"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(49, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the file \"AGENTS-README-FIRST.yaml\" in \"{endpointMarkerPath}\" should contain \"mcp" + - "/todo\"", null, null, "b9a7b14315a3f054a7ae3508fc7f9b2c"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(50, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I stop the workspace \"{endpointMarkerKey}\"", null, null, "b11e866880a39b5b9818332dd7234c96"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(51, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I delete the created workspace using the path \"{endpointMarkerPath}\"", null, null, "6ca28bb80afabc5d94cee65ca878d175")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "0390864ea9cdcd56a2a15e2b43f6391a")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(53, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Marker file contains machine-readable prompt block", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(54, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "I use a unique temp directory stored as \"promptMarkerPath\"", null, null, "cbde36adb338715e918ff340124cd481"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(55, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "a workspace exists for path \"{promptMarkerPath}\" with key stored as \"promptMarker" + - "Key\"", null, null, "8001791a1b4e735eb079a1329b03f9aa"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(56, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the workspace \"{promptMarkerKey}\" is started", null, null, "3ddd3cc14a14bc5585bd797a9275fa53"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(57, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the file \"AGENTS-README-FIRST.yaml\" in \"{promptMarkerPath}\" should contain \"promp" + - "t\"", null, null, "0136954b0fd72f53b0ec2b28298e6c3b"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(58, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I stop the workspace \"{promptMarkerKey}\"", null, null, "8792dc30c39af1538199ac077dca9ce5"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(59, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I delete the created workspace using the path \"{promptMarkerPath}\"", null, null, "18cc10328a19f551abcd4ffa9c7f1732")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "ab55f581b180475a84a575627b788be7")), - new global::Io.Cucumber.Messages.Types.FeatureChild(null, null, new global::Io.Cucumber.Messages.Types.Scenario(new global::Io.Cucumber.Messages.Types.Location(61, new System.Nullable(3)), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Tag[0]), "Scenario", "Legacy .mcp-server.yaml files are cleaned up on workspace stop", "", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Step[] { - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(62, new System.Nullable(5)), "Given ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONTEXT, "I use a unique temp directory stored as \"legacyMarkerPath\"", null, null, "9a831ff8ecd84a59b1f6e0c70d2f38a8"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(63, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "a legacy \".mcp-server.yaml\" file exists in \"{legacyMarkerPath}\"", null, null, "0bdcac1604eb9555b0a521be4545143a"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(64, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "a workspace exists for path \"{legacyMarkerPath}\" with key stored as \"legacyMarker" + - "Key\"", null, null, "e6879dd584a33f5a8a926dc5521da99d"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(65, new System.Nullable(5)), "When ", global::Io.Cucumber.Messages.Types.StepKeywordType.ACTION, "I POST to \"/mcp/workspace/{legacyMarkerKey}/stop\" with empty body", null, null, "b3e051e14e80a55faa20172f6f26416b"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(66, new System.Nullable(5)), "Then ", global::Io.Cucumber.Messages.Types.StepKeywordType.OUTCOME, "the response status code should be 200", null, null, "40da1118838115568a3441b06db798ec"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(67, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "the file \".mcp-server.yaml\" should not exist in \"{legacyMarkerPath}\"", null, null, "47fa2cae1d9b3a5a90c5d999edc16441"), - new global::Io.Cucumber.Messages.Types.Step(new global::Io.Cucumber.Messages.Types.Location(68, new System.Nullable(5)), "And ", global::Io.Cucumber.Messages.Types.StepKeywordType.CONJUNCTION, "I delete the created workspace using the path \"{legacyMarkerPath}\"", null, null, "70031e6d13f6db58a13d7e033ee70e18")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Examples[0]), "3b7842808228445c94cd667c3c6228c4"))})), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Comment[] { - new global::Io.Cucumber.Messages.Types.Comment(new global::Io.Cucumber.Messages.Types.Location(9, new System.Nullable(1)), " # FR-MCP-018 / TR-MCP-WS-005 / TEST-MCP-013")})); - } - - private static global::System.Collections.Generic.IEnumerable PicklesFunc() - { - return new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.Pickle[] { - new global::Io.Cucumber.Messages.Types.Pickle("453cc4687e59c952b023d7ecc803fc3e", "Features/Workspace/WorkspaceMarkerFile.feature", "Workspace start writes AGENTS-README-FIRST.yaml to workspace root", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "cc2c402017a109588cfa217bdd4b1987"}), "e4368684111b8c5b9572df9505d1d8b6", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "2f9f7a64f872ac5a98aa109e4dfd65c4"}), "e1a302cbeaca0a5aaf884323c5458ee2", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "I use a unique temp directory stored as \"markerWsPath\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "4a39ae1dd1c2415e8eef71e20301256d"}), "5cb5b051f291d95f85b9c89bbb8c53f3", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a workspace exists for path \"{markerWsPath}\" with key stored as \"markerWsKey\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "d7f0b1132b0dd850a39dfe89cb6b2197"}), "5a847cb82f0a7c55919c980630612dd1", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/workspace/{markerWsKey}/start\" with empty body"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "945c90c1ef4994529a54651c90e16f55"}), "78be0ef0d9b9a05fbcac0d498762d8be", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "0d2f93088e67725db5fa8b5dd31a2dea"}), "28b26fa9e880255cb5e8b7ecc64f7658", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the file \"AGENTS-README-FIRST.yaml\" should exist in \"{markerWsPath}\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "f78d35e6c32b4f5ca40254d8fbce24db"}), "d277ab8e519cb1559fbe1ae0e980a4a8", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "I stop the workspace \"{markerWsKey}\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "047355b1ec8ad75095e716bc10839e79"}), "b9034f8c550cb959a1ca53b1932911f5", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "I delete the created workspace using the path \"{markerWsPath}\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "6bd7a992582f8756865e3454266d06b2"})), - new global::Io.Cucumber.Messages.Types.Pickle("dd3040fefeab075e927c6f0988086723", "Features/Workspace/WorkspaceMarkerFile.feature", "Workspace stop removes the marker file", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "cc2c402017a109588cfa217bdd4b1987"}), "fcb9a9e2358a3b58bbe85c3abd2e9423", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "05a700a8edd6eb5fa361b353bf85a49a"}), "893a4551350e1758a612ea5bcc4e02c3", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "I use a unique temp directory stored as \"stopMarkerPath\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "0dbe9883e98cce52ac6e3c043523ba07"}), "8091f834d5cc745889a039acce1ca2e5", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a workspace exists for path \"{stopMarkerPath}\" with key stored as \"stopMarkerKey\"" + - ""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "0c797d0117ac14538db84a93c77bc965"}), "b72080e6620c1553b71e12eca8564a39", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the workspace \"{stopMarkerKey}\" is started"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "d8a331919980e55fa824853f6c2e67b6"}), "cf5ed73f14ecc05d89f686df05f43cf0", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/workspace/{stopMarkerKey}/stop\" with empty body"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "2ead7c5aea63b05c8e917a2816e7c243"}), "355423628a10f05ca1b06c2996ab0395", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "b7f6e96b7d4ce352a8a223f6f7fff0b7"}), "c6e49cee3a4f6859ad3bc0f7dbf6fdf8", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the file \"AGENTS-README-FIRST.yaml\" should not exist in \"{stopMarkerPath}\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "c229d4540c5261509b9b3f6de2016b82"}), "95c511ddb309aa548afaf4748b4b510e", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "I delete the created workspace using the path \"{stopMarkerPath}\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "519e90289818175083cb77a7d6c91b0e"})), - new global::Io.Cucumber.Messages.Types.Pickle("baec6cc604b63c52a0bf51751c2c6b32", "Features/Workspace/WorkspaceMarkerFile.feature", "Marker file contains the correct port number", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "cc2c402017a109588cfa217bdd4b1987"}), "0ee8ee6790b3c659b2ec0454f1512276", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "07da4fd25dba1652a35dd84dfdabc6d7"}), "1d044214b957ff53be10c053e5186fce", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "I use a unique temp directory stored as \"portMarkerPath\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "e68ceb8675d8dd5f8b53b40311979e2f"}), "1cc20aca9119c65aa70cc59d1cd7569b", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a workspace exists for path \"{portMarkerPath}\" with key stored as \"portMarkerKey\"" + - " and port stored as \"wsPort\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "ae649483f0ccdd5dbe8fa244b16ef85a"}), "6b8d8ed980a8185eb2e1b414ccd57900", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the workspace \"{portMarkerKey}\" is started"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "f60be18cc9c53b58b80ea3cd6fe06e4f"}), "58e20b65c1a2d855bd66d0e30bae8ca8", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the file \"AGENTS-README-FIRST.yaml\" in \"{portMarkerPath}\" should contain \"{wsPort" + - "}\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "50bd496f5ab39357b95c4885b4a04d06"}), "89a00d09d02eb25cb34f0191334b2c40", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "I stop the workspace \"{portMarkerKey}\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "6b06cf8e76453b558889e82e3cd37acb"}), "d01cea03cd07c157883ec688e5818b7a", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "I delete the created workspace using the path \"{portMarkerPath}\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "707640aaa283bd5e91d598527724da7a"})), - new global::Io.Cucumber.Messages.Types.Pickle("f10cf46d02b0ab5d930361b5c90469b8", "Features/Workspace/WorkspaceMarkerFile.feature", "Marker file contains baseUrl field", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "cc2c402017a109588cfa217bdd4b1987"}), "8817aeb07c79c2598c74720b9ee576b1", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "f1498531ee53325d8eb7598fd420bea4"}), "33ff98e2155b8b51901c18c723481877", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "I use a unique temp directory stored as \"baseUrlMarkerPath\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "f3a9f62f76066d55bb9719098b0db8fa"}), "0a40baefcb63f05b9b1de656c0e892cb", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a workspace exists for path \"{baseUrlMarkerPath}\" with key stored as \"baseUrlMark" + - "erKey\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "3e4a794a17abc3578a94925b094db27e"}), "1bf3cd9ded3200589ce593c6d54e8142", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the workspace \"{baseUrlMarkerKey}\" is started"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "79e535ac5106d95691590c100cd00224"}), "43915e492db8dc568648ff3bdd5cd041", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the file \"AGENTS-README-FIRST.yaml\" in \"{baseUrlMarkerPath}\" should contain \"base" + - "Url\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "e792b542e1d19757a7251fecb05624fe"}), "03835d7c6e2116559a3430e5b9c2ae03", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "I stop the workspace \"{baseUrlMarkerKey}\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "a62cb719cab433578d4ef284a8dd90ea"}), "488ed3c503c2d254aa2d3d37bdbcc550", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "I delete the created workspace using the path \"{baseUrlMarkerPath}\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "72559657838e1557861edab8fb3b61b6"})), - new global::Io.Cucumber.Messages.Types.Pickle("e3b402d3ef9089588d0ea3dcf1c9f741", "Features/Workspace/WorkspaceMarkerFile.feature", "Marker file contains endpoint paths", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "cc2c402017a109588cfa217bdd4b1987"}), "002c725f4243175b8b7a500b615ac8cc", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "092d85e7d2241c59b7016fd6a445eda9"}), "b729f1e647e5a55abcdeaa09d7d0d529", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "I use a unique temp directory stored as \"endpointMarkerPath\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "cebd7f321f858650afd4bf88a161e79d"}), "91128917fccf2056849f5715858e1f2d", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a workspace exists for path \"{endpointMarkerPath}\" with key stored as \"endpointMa" + - "rkerKey\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "6bc9757902f41152ba735d4a89493505"}), "a3804802d8d48d52b08b1b46f796f672", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the workspace \"{endpointMarkerKey}\" is started"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "b9a7b14315a3f054a7ae3508fc7f9b2c"}), "e884fdd4312de25d96acb442340af0cb", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the file \"AGENTS-README-FIRST.yaml\" in \"{endpointMarkerPath}\" should contain \"mcp" + - "/todo\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "b11e866880a39b5b9818332dd7234c96"}), "d3f96482aee04257855f7b110cdbb4f5", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "I stop the workspace \"{endpointMarkerKey}\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "6ca28bb80afabc5d94cee65ca878d175"}), "0475b68cd055f6579043cd69d287ed34", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "I delete the created workspace using the path \"{endpointMarkerPath}\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "0390864ea9cdcd56a2a15e2b43f6391a"})), - new global::Io.Cucumber.Messages.Types.Pickle("f0a93e9acfd64f51b4e8bd2f9579bc44", "Features/Workspace/WorkspaceMarkerFile.feature", "Marker file contains machine-readable prompt block", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "cc2c402017a109588cfa217bdd4b1987"}), "aa4903c6c7a0a95abdfd03bf3f200767", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "cbde36adb338715e918ff340124cd481"}), "7e06ce4e37ae0c56bfe264b6fd98c389", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "I use a unique temp directory stored as \"promptMarkerPath\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "8001791a1b4e735eb079a1329b03f9aa"}), "7c7c2225492f695bba25fe28057048b1", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a workspace exists for path \"{promptMarkerPath}\" with key stored as \"promptMarker" + - "Key\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "3ddd3cc14a14bc5585bd797a9275fa53"}), "f68874428998265994950cbd353783e1", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the workspace \"{promptMarkerKey}\" is started"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "0136954b0fd72f53b0ec2b28298e6c3b"}), "abcec89cc0d904599b2c58bd196eabdf", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the file \"AGENTS-README-FIRST.yaml\" in \"{promptMarkerPath}\" should contain \"promp" + - "t\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "8792dc30c39af1538199ac077dca9ce5"}), "dd70e403aa1721598ca210e418f979d2", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "I stop the workspace \"{promptMarkerKey}\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "18cc10328a19f551abcd4ffa9c7f1732"}), "a6d0b3a635db6f5ebd61b72266a85228", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "I delete the created workspace using the path \"{promptMarkerPath}\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "ab55f581b180475a84a575627b788be7"})), - new global::Io.Cucumber.Messages.Types.Pickle("d8ff12ac08b8c55b92ea5c61b333a415", "Features/Workspace/WorkspaceMarkerFile.feature", "Legacy .mcp-server.yaml files are cleaned up on workspace stop", "en-US", new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleStep[] { - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "cc2c402017a109588cfa217bdd4b1987"}), "675e14fbbdce265fb8022eb6c48462de", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "the MCP server is running"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "9a831ff8ecd84a59b1f6e0c70d2f38a8"}), "c724a11e7ee7be52bf2298683484030a", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "I use a unique temp directory stored as \"legacyMarkerPath\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "0bdcac1604eb9555b0a521be4545143a"}), "c3b6d28c63b9465d80777e2697fd3da0", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a legacy \".mcp-server.yaml\" file exists in \"{legacyMarkerPath}\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "e6879dd584a33f5a8a926dc5521da99d"}), "7f1e821c8a3bc65496e9d1ae3b59a1dd", global::Io.Cucumber.Messages.Types.PickleStepType.CONTEXT, "a workspace exists for path \"{legacyMarkerPath}\" with key stored as \"legacyMarker" + - "Key\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "b3e051e14e80a55faa20172f6f26416b"}), "04bafad2a4568d51a7ba10fbfb961b21", global::Io.Cucumber.Messages.Types.PickleStepType.ACTION, "I POST to \"/mcp/workspace/{legacyMarkerKey}/stop\" with empty body"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "40da1118838115568a3441b06db798ec"}), "31b04099a3c1e75d997ef6ddc3cd4b63", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the response status code should be 200"), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "47fa2cae1d9b3a5a90c5d999edc16441"}), "253f817df7aa87519ed0e5687236db9f", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "the file \".mcp-server.yaml\" should not exist in \"{legacyMarkerPath}\""), - new global::Io.Cucumber.Messages.Types.PickleStep(null, new System.Collections.Generic.List(new string[] { - "70031e6d13f6db58a13d7e033ee70e18"}), "ae41ab088c96c05db284a1ac6ff2df46", global::Io.Cucumber.Messages.Types.PickleStepType.OUTCOME, "I delete the created workspace using the path \"{legacyMarkerPath}\"")}), new System.Collections.Generic.List(new global::Io.Cucumber.Messages.Types.PickleTag[0]), new System.Collections.Generic.List(new string[] { - "3b7842808228445c94cd667c3c6228c4"}))}); - } - - private static global::Reqnroll.Formatters.RuntimeSupport.FeatureLevelCucumberMessages InitializeCucumberMessages() - { - return new global::Reqnroll.Formatters.RuntimeSupport.FeatureLevelCucumberMessages(new global::System.Func(WorkspaceMarkerFileAgentDiscoveryFeature.SourceFunc), new global::System.Func(WorkspaceMarkerFileAgentDiscoveryFeature.GherkinDocumentFunc), new global::System.Func>(WorkspaceMarkerFileAgentDiscoveryFeature.PicklesFunc)); - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.InitializeAsync() - { - try - { - await this.TestInitializeAsync(); - } - catch (System.Exception e1) - { - try - { - ((global::Xunit.IAsyncLifetime)(this)).DisposeAsync(); - } - catch (System.Exception e2) - { - throw new System.AggregateException("Test initialization failed", e1, e2); - } - throw; - } - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.DisposeAsync() - { - await this.TestTearDownAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Workspace start writes AGENTS-README-FIRST.yaml to workspace root")] - [global::Xunit.TraitAttribute("FeatureTitle", "Workspace Marker File Agent Discovery")] - [global::Xunit.TraitAttribute("Description", "Workspace start writes AGENTS-README-FIRST.yaml to workspace root")] - public async global::System.Threading.Tasks.Task WorkspaceStartWritesAGENTS_README_FIRST_YamlToWorkspaceRoot() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "0"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Workspace start writes AGENTS-README-FIRST.yaml to workspace root", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 11 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 12 - await testRunner.GivenAsync("I use a unique temp directory stored as \"markerWsPath\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 13 - await testRunner.AndAsync("a workspace exists for path \"{markerWsPath}\" with key stored as \"markerWsKey\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 14 - await testRunner.WhenAsync("I POST to \"/mcp/workspace/{markerWsKey}/start\" with empty body", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 15 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 16 - await testRunner.AndAsync("the file \"AGENTS-README-FIRST.yaml\" should exist in \"{markerWsPath}\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 17 - await testRunner.AndAsync("I stop the workspace \"{markerWsKey}\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 18 - await testRunner.AndAsync("I delete the created workspace using the path \"{markerWsPath}\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Workspace stop removes the marker file")] - [global::Xunit.TraitAttribute("FeatureTitle", "Workspace Marker File Agent Discovery")] - [global::Xunit.TraitAttribute("Description", "Workspace stop removes the marker file")] - public async global::System.Threading.Tasks.Task WorkspaceStopRemovesTheMarkerFile() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "1"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Workspace stop removes the marker file", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 20 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 21 - await testRunner.GivenAsync("I use a unique temp directory stored as \"stopMarkerPath\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 22 - await testRunner.AndAsync("a workspace exists for path \"{stopMarkerPath}\" with key stored as \"stopMarkerKey\"" + - "", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 23 - await testRunner.AndAsync("the workspace \"{stopMarkerKey}\" is started", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 24 - await testRunner.WhenAsync("I POST to \"/mcp/workspace/{stopMarkerKey}/stop\" with empty body", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 25 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 26 - await testRunner.AndAsync("the file \"AGENTS-README-FIRST.yaml\" should not exist in \"{stopMarkerPath}\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 27 - await testRunner.AndAsync("I delete the created workspace using the path \"{stopMarkerPath}\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Marker file contains the correct port number")] - [global::Xunit.TraitAttribute("FeatureTitle", "Workspace Marker File Agent Discovery")] - [global::Xunit.TraitAttribute("Description", "Marker file contains the correct port number")] - public async global::System.Threading.Tasks.Task MarkerFileContainsTheCorrectPortNumber() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "2"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Marker file contains the correct port number", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 29 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 30 - await testRunner.GivenAsync("I use a unique temp directory stored as \"portMarkerPath\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 31 - await testRunner.AndAsync("a workspace exists for path \"{portMarkerPath}\" with key stored as \"portMarkerKey\"" + - " and port stored as \"wsPort\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 32 - await testRunner.AndAsync("the workspace \"{portMarkerKey}\" is started", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 33 - await testRunner.ThenAsync("the file \"AGENTS-README-FIRST.yaml\" in \"{portMarkerPath}\" should contain \"{wsPort" + - "}\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 34 - await testRunner.AndAsync("I stop the workspace \"{portMarkerKey}\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 35 - await testRunner.AndAsync("I delete the created workspace using the path \"{portMarkerPath}\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Marker file contains baseUrl field")] - [global::Xunit.TraitAttribute("FeatureTitle", "Workspace Marker File Agent Discovery")] - [global::Xunit.TraitAttribute("Description", "Marker file contains baseUrl field")] - public async global::System.Threading.Tasks.Task MarkerFileContainsBaseUrlField() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "3"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Marker file contains baseUrl field", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 37 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 38 - await testRunner.GivenAsync("I use a unique temp directory stored as \"baseUrlMarkerPath\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 39 - await testRunner.AndAsync("a workspace exists for path \"{baseUrlMarkerPath}\" with key stored as \"baseUrlMark" + - "erKey\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 40 - await testRunner.AndAsync("the workspace \"{baseUrlMarkerKey}\" is started", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 41 - await testRunner.ThenAsync("the file \"AGENTS-README-FIRST.yaml\" in \"{baseUrlMarkerPath}\" should contain \"base" + - "Url\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 42 - await testRunner.AndAsync("I stop the workspace \"{baseUrlMarkerKey}\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 43 - await testRunner.AndAsync("I delete the created workspace using the path \"{baseUrlMarkerPath}\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Marker file contains endpoint paths")] - [global::Xunit.TraitAttribute("FeatureTitle", "Workspace Marker File Agent Discovery")] - [global::Xunit.TraitAttribute("Description", "Marker file contains endpoint paths")] - public async global::System.Threading.Tasks.Task MarkerFileContainsEndpointPaths() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "4"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Marker file contains endpoint paths", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 45 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 46 - await testRunner.GivenAsync("I use a unique temp directory stored as \"endpointMarkerPath\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 47 - await testRunner.AndAsync("a workspace exists for path \"{endpointMarkerPath}\" with key stored as \"endpointMa" + - "rkerKey\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 48 - await testRunner.AndAsync("the workspace \"{endpointMarkerKey}\" is started", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 49 - await testRunner.ThenAsync("the file \"AGENTS-README-FIRST.yaml\" in \"{endpointMarkerPath}\" should contain \"mcp" + - "/todo\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 50 - await testRunner.AndAsync("I stop the workspace \"{endpointMarkerKey}\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 51 - await testRunner.AndAsync("I delete the created workspace using the path \"{endpointMarkerPath}\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Marker file contains machine-readable prompt block")] - [global::Xunit.TraitAttribute("FeatureTitle", "Workspace Marker File Agent Discovery")] - [global::Xunit.TraitAttribute("Description", "Marker file contains machine-readable prompt block")] - public async global::System.Threading.Tasks.Task MarkerFileContainsMachine_ReadablePromptBlock() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "5"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Marker file contains machine-readable prompt block", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 53 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 54 - await testRunner.GivenAsync("I use a unique temp directory stored as \"promptMarkerPath\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 55 - await testRunner.AndAsync("a workspace exists for path \"{promptMarkerPath}\" with key stored as \"promptMarker" + - "Key\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 56 - await testRunner.AndAsync("the workspace \"{promptMarkerKey}\" is started", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 57 - await testRunner.ThenAsync("the file \"AGENTS-README-FIRST.yaml\" in \"{promptMarkerPath}\" should contain \"promp" + - "t\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 58 - await testRunner.AndAsync("I stop the workspace \"{promptMarkerKey}\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 59 - await testRunner.AndAsync("I delete the created workspace using the path \"{promptMarkerPath}\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::Xunit.SkippableFactAttribute(DisplayName="Legacy .mcp-server.yaml files are cleaned up on workspace stop")] - [global::Xunit.TraitAttribute("FeatureTitle", "Workspace Marker File Agent Discovery")] - [global::Xunit.TraitAttribute("Description", "Legacy .mcp-server.yaml files are cleaned up on workspace stop")] - public async global::System.Threading.Tasks.Task Legacy_Mcp_Server_YamlFilesAreCleanedUpOnWorkspaceStop() - { - string[] tagsOfScenario = ((string[])(null)); - global::System.Collections.Specialized.OrderedDictionary argumentsOfScenario = new global::System.Collections.Specialized.OrderedDictionary(); - string pickleIndex = "6"; - global::Reqnroll.ScenarioInfo scenarioInfo = new global::Reqnroll.ScenarioInfo("Legacy .mcp-server.yaml files are cleaned up on workspace stop", null, tagsOfScenario, argumentsOfScenario, featureTags, pickleIndex); - string[] tagsOfRule = ((string[])(null)); - global::Reqnroll.RuleInfo ruleInfo = null; -#line 61 - this.ScenarioInitialize(scenarioInfo, ruleInfo); -#line hidden - if ((global::Reqnroll.TagHelper.ContainsIgnoreTag(scenarioInfo.CombinedTags) || global::Reqnroll.TagHelper.ContainsIgnoreTag(featureTags))) - { - await testRunner.SkipScenarioAsync(); - } - else - { - await this.ScenarioStartAsync(); -#line 6 - await this.FeatureBackgroundAsync(); -#line hidden -#line 62 - await testRunner.GivenAsync("I use a unique temp directory stored as \"legacyMarkerPath\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "Given "); -#line hidden -#line 63 - await testRunner.AndAsync("a legacy \".mcp-server.yaml\" file exists in \"{legacyMarkerPath}\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 64 - await testRunner.AndAsync("a workspace exists for path \"{legacyMarkerPath}\" with key stored as \"legacyMarker" + - "Key\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 65 - await testRunner.WhenAsync("I POST to \"/mcp/workspace/{legacyMarkerKey}/stop\" with empty body", ((string)(null)), ((global::Reqnroll.Table)(null)), "When "); -#line hidden -#line 66 - await testRunner.ThenAsync("the response status code should be 200", ((string)(null)), ((global::Reqnroll.Table)(null)), "Then "); -#line hidden -#line 67 - await testRunner.AndAsync("the file \".mcp-server.yaml\" should not exist in \"{legacyMarkerPath}\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden -#line 68 - await testRunner.AndAsync("I delete the created workspace using the path \"{legacyMarkerPath}\"", ((string)(null)), ((global::Reqnroll.Table)(null)), "And "); -#line hidden - } - await this.ScenarioCleanupAsync(); - } - - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Reqnroll", "3.0.0.0")] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - public class FixtureData : object, global::Xunit.IAsyncLifetime - { - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.InitializeAsync() - { - await WorkspaceMarkerFileAgentDiscoveryFeature.FeatureSetupAsync(); - } - - async global::System.Threading.Tasks.Task global::Xunit.IAsyncLifetime.DisposeAsync() - { - await WorkspaceMarkerFileAgentDiscoveryFeature.FeatureTearDownAsync(); - } - } - } -} -#pragma warning restore -#endregion diff --git a/tests/McpServer.SpecFlow.Tests/GlobalUsings.cs b/tests/McpServer.SpecFlow.Tests/GlobalUsings.cs deleted file mode 100644 index c802f448..00000000 --- a/tests/McpServer.SpecFlow.Tests/GlobalUsings.cs +++ /dev/null @@ -1 +0,0 @@ -global using Xunit; diff --git a/tests/McpServer.SpecFlow.Tests/Hooks/McpServerHooks.cs b/tests/McpServer.SpecFlow.Tests/Hooks/McpServerHooks.cs deleted file mode 100644 index df312d1c..00000000 --- a/tests/McpServer.SpecFlow.Tests/Hooks/McpServerHooks.cs +++ /dev/null @@ -1,50 +0,0 @@ -using Reqnroll; - -namespace McpServer.SpecFlow.Tests.Hooks; - -/// -/// Reqnroll (SpecFlow) hooks that manage the shared McpServer web application factory -/// for all integration scenarios. -/// -[Binding] -public sealed class McpServerHooks -{ - private static Support.McpSpecFlowWebApplicationFactory? _factory; - - /// Creates the web application factory once before the entire test run. - [BeforeTestRun] - public static void BeforeTestRun() - { - _factory = new Support.McpSpecFlowWebApplicationFactory(); - } - - /// Disposes the web application factory after the entire test run. - [AfterTestRun] - public static void AfterTestRun() - { - _factory?.Dispose(); - _factory = null; - } - - /// Returns the shared web application factory. - public static Support.McpSpecFlowWebApplicationFactory Factory => - _factory ?? throw new InvalidOperationException("Factory not initialized. Ensure BeforeTestRun has been called."); - - /// Creates an HttpClient scoped to one scenario. - [BeforeScenario] - public void BeforeScenario(ScenarioContext scenarioContext) - { - var client = Factory.CreateClient(); - scenarioContext.Set(client, "HttpClient"); - } - - /// Disposes the scenario-scoped HttpClient. - [AfterScenario] - public void AfterScenario(ScenarioContext scenarioContext) - { - if (scenarioContext.TryGetValue("HttpClient", out HttpClient client)) - { - client.Dispose(); - } - } -} diff --git a/tests/McpServer.SpecFlow.Tests/McpServer.SpecFlow.Tests.csproj b/tests/McpServer.SpecFlow.Tests/McpServer.SpecFlow.Tests.csproj deleted file mode 100644 index d2ac98e5..00000000 --- a/tests/McpServer.SpecFlow.Tests/McpServer.SpecFlow.Tests.csproj +++ /dev/null @@ -1,25 +0,0 @@ - - - Exe - net9.0 - false - enable - enable - false - McpServer.SpecFlow.Tests - - - - - - - - - - - - - - - - diff --git a/tests/McpServer.SpecFlow.Tests/StepDefinitions/AuthSteps.cs b/tests/McpServer.SpecFlow.Tests/StepDefinitions/AuthSteps.cs deleted file mode 100644 index 1e08b885..00000000 --- a/tests/McpServer.SpecFlow.Tests/StepDefinitions/AuthSteps.cs +++ /dev/null @@ -1,39 +0,0 @@ -using System.Collections.Generic; -using System.Net.Http.Json; -using System.Text; -using Reqnroll; - -namespace McpServer.SpecFlow.Tests.StepDefinitions; - -/// Step definitions for auth/pairing feature files. -[Binding] -public sealed class AuthSteps -{ - private readonly ScenarioContext _scenarioContext; - private readonly CommonSteps _common; - - public AuthSteps(ScenarioContext scenarioContext, CommonSteps common) - { - _scenarioContext = scenarioContext; - _common = common; - } - - private HttpClient Client => _scenarioContext.Get("HttpClient"); - - [When("I POST to {string} with form fields:")] - public async Task WhenIPostWithFormFields(string path, Table table) - { - path = _common.ResolveTokens(path); - var formData = new Dictionary(); - foreach (var row in table.Rows) - { - formData[row["Field"]] = row["Value"]; - } - - using var content = new FormUrlEncodedContent(formData); - var response = await Client.PostAsync(new Uri(path, UriKind.Relative), content).ConfigureAwait(false); - _scenarioContext.Set(response, "LastResponse"); - var body = await response.Content.ReadAsStringAsync().ConfigureAwait(false); - _scenarioContext.Set(body, "LastResponseBody"); - } -} diff --git a/tests/McpServer.SpecFlow.Tests/StepDefinitions/CommonSteps.cs b/tests/McpServer.SpecFlow.Tests/StepDefinitions/CommonSteps.cs deleted file mode 100644 index 9e90ca22..00000000 --- a/tests/McpServer.SpecFlow.Tests/StepDefinitions/CommonSteps.cs +++ /dev/null @@ -1,231 +0,0 @@ -using System.Net.Http.Json; -using System.Text; -using System.Text.Json; -using Reqnroll; - -namespace McpServer.SpecFlow.Tests.StepDefinitions; - -/// Common step definitions reused across all feature files. -[Binding] -public sealed class CommonSteps -{ - private readonly ScenarioContext _scenarioContext; - - public CommonSteps(ScenarioContext scenarioContext) - { - _scenarioContext = scenarioContext; - } - - private HttpClient Client => _scenarioContext.Get("HttpClient"); - - private HttpResponseMessage? LastResponse - { - get => _scenarioContext.TryGetValue("LastResponse", out HttpResponseMessage r) ? r : null; - set => _scenarioContext.Set(value!, "LastResponse"); - } - - private string? LastResponseBody - { - get => _scenarioContext.TryGetValue("LastResponseBody", out string b) ? b : null; - set => _scenarioContext.Set(value!, "LastResponseBody"); - } - - [Given("the MCP server is running")] - public async Task GivenTheMcpServerIsRunning() - { - var response = await Client.GetAsync(new Uri("/health", UriKind.Relative)).ConfigureAwait(false); - response.EnsureSuccessStatusCode(); - } - - [When("I send a GET request to {string}")] - public async Task WhenISendGetRequest(string path) - { - path = ResolveTokens(path); - var response = await Client.GetAsync(new Uri(path, UriKind.Relative)).ConfigureAwait(false); - LastResponse = response; - LastResponseBody = await response.Content.ReadAsStringAsync().ConfigureAwait(false); - } - - [When("I send a GET request to {string} without an API key")] - public async Task WhenISendGetRequestWithoutApiKey(string path) - { - path = ResolveTokens(path); - var response = await Client.GetAsync(new Uri(path, UriKind.Relative)).ConfigureAwait(false); - LastResponse = response; - LastResponseBody = await response.Content.ReadAsStringAsync().ConfigureAwait(false); - } - - [When("I send a GET request to {string} without Accept header")] - public async Task WhenISendGetRequestWithoutAcceptHeader(string path) - { - path = ResolveTokens(path); - using var request = new HttpRequestMessage(HttpMethod.Get, new Uri(path, UriKind.Relative)); - var response = await Client.SendAsync(request).ConfigureAwait(false); - LastResponse = response; - LastResponseBody = await response.Content.ReadAsStringAsync().ConfigureAwait(false); - } - - [When("I send a DELETE request to {string}")] - public async Task WhenISendDeleteRequest(string path) - { - path = ResolveTokens(path); - var response = await Client.DeleteAsync(new Uri(path, UriKind.Relative)).ConfigureAwait(false); - LastResponse = response; - LastResponseBody = await response.Content.ReadAsStringAsync().ConfigureAwait(false); - } - - [When(@"I POST to ""(.*)"" with body:")] - public async Task WhenIPostWithBody(string path, string body) - { - path = ResolveTokens(path); - body = ResolveTokens(body); - using var content = new StringContent(body, Encoding.UTF8, "application/json"); - var response = await Client.PostAsync(new Uri(path, UriKind.Relative), content).ConfigureAwait(false); - LastResponse = response; - LastResponseBody = await response.Content.ReadAsStringAsync().ConfigureAwait(false); - } - - [When(@"I POST to ""(.*)"" with empty body")] - public async Task WhenIPostWithEmptyBody(string path) - { - path = ResolveTokens(path); - var response = await Client.PostAsync(new Uri(path, UriKind.Relative), null).ConfigureAwait(false); - LastResponse = response; - LastResponseBody = await response.Content.ReadAsStringAsync().ConfigureAwait(false); - } - - [When(@"I POST to ""(.*)"" without an API key with body:")] - public async Task WhenIPostWithoutApiKeyWithBody(string path, string body) - { - path = ResolveTokens(path); - body = ResolveTokens(body); - using var content = new StringContent(body, Encoding.UTF8, "application/json"); - var response = await Client.PostAsync(new Uri(path, UriKind.Relative), content).ConfigureAwait(false); - LastResponse = response; - LastResponseBody = await response.Content.ReadAsStringAsync().ConfigureAwait(false); - } - - [When(@"I PUT to ""(.*)"" with body:")] - public async Task WhenIPutWithBody(string path, string body) - { - path = ResolveTokens(path); - body = ResolveTokens(body); - using var content = new StringContent(body, Encoding.UTF8, "application/json"); - var response = await Client.PutAsync(new Uri(path, UriKind.Relative), content).ConfigureAwait(false); - LastResponse = response; - LastResponseBody = await response.Content.ReadAsStringAsync().ConfigureAwait(false); - } - - [Then("the response status code should be {int}")] - public void ThenResponseStatusShouldBe(int expected) - { - var response = GetRequiredResponse(); - Assert.Equal((System.Net.HttpStatusCode)expected, response.StatusCode); - } - - [Then("the response status code is {int} or {int}")] - public void ThenResponseStatusIsEither(int status1, int status2) - { - var response = GetRequiredResponse(); - var actual = (int)response.StatusCode; - Assert.True(actual == status1 || actual == status2, - $"Expected {status1} or {status2} but got {actual}. Body: {LastResponseBody}"); - } - - [Then("the response status code is {int} or {int} or {int}")] - public void ThenResponseStatusIsEitherThree(int status1, int status2, int status3) - { - var response = GetRequiredResponse(); - var actual = (int)response.StatusCode; - Assert.True(actual == status1 || actual == status2 || actual == status3, - $"Expected {status1}, {status2}, or {status3} but got {actual}. Body: {LastResponseBody}"); - } - - [Then("the response status code is not {int}")] - public void ThenResponseStatusIsNot(int unexpected) - { - var response = GetRequiredResponse(); - Assert.NotEqual((System.Net.HttpStatusCode)unexpected, response.StatusCode); - } - - [Then("the response body should contain {string}")] - public void ThenResponseBodyShouldContain(string expected) - { - expected = ResolveTokens(expected); - var body = GetRequiredResponseBody(); - Assert.Contains(expected, body, StringComparison.OrdinalIgnoreCase); - } - - [Then("the response body is a JSON array")] - public void ThenResponseBodyIsJsonArray() - { - var body = GetRequiredResponseBody(); - using var doc = JsonDocument.Parse(body); - Assert.Equal(JsonValueKind.Array, doc.RootElement.ValueKind); - } - - [Then("the response body is valid JSON")] - public void ThenResponseBodyIsValidJson() - { - var body = GetRequiredResponseBody(); - Assert.True(IsValidJson(body), $"Response body is not valid JSON: {body}"); - } - - [Then("the response content type should contain {string}")] - public void ThenResponseContentTypeContains(string expected) - { - var response = GetRequiredResponse(); - Assert.Contains(expected, response.Content.Headers.ContentType?.ToString() ?? "", StringComparison.OrdinalIgnoreCase); - } - - [Then("the response body should contain a {string} field")] - public void ThenResponseBodyShouldContainField(string expected) - { - ThenResponseBodyShouldContain(expected); - } - - [Then("the response status code is {int} or {int} or {int} or {int}")] - public void ThenResponseStatusIsEitherFour(int s1, int s2, int s3, int s4) - { - var response = GetRequiredResponse(); - var actual = (int)response.StatusCode; - Assert.True(actual == s1 || actual == s2 || actual == s3 || actual == s4, - $"Expected {s1}, {s2}, {s3}, or {s4} but got {actual}. Body: {LastResponseBody}"); - } - - /// Resolves {token} placeholders in strings from the scenario context. - internal string ResolveTokens(string input) - { - if (!input.Contains('{')) - return input; - - foreach (var key in _scenarioContext.Keys) - { - var token = "{" + key + "}"; - if (input.Contains(token) && _scenarioContext.TryGetValue(key, out object? value)) - { - input = input.Replace(token, value?.ToString() ?? ""); - } - } - return input; - } - - internal HttpResponseMessage GetRequiredResponse() => - LastResponse ?? throw new InvalidOperationException("No HTTP response has been made yet."); - - internal string GetRequiredResponseBody() => - LastResponseBody ?? throw new InvalidOperationException("No HTTP response body has been captured yet."); - - private static bool IsValidJson(string text) - { - try - { - JsonDocument.Parse(text); - return true; - } - catch (JsonException) - { - return false; - } - } -} diff --git a/tests/McpServer.SpecFlow.Tests/StepDefinitions/MarkdownSessionLogSteps.cs b/tests/McpServer.SpecFlow.Tests/StepDefinitions/MarkdownSessionLogSteps.cs deleted file mode 100644 index 99e4a907..00000000 --- a/tests/McpServer.SpecFlow.Tests/StepDefinitions/MarkdownSessionLogSteps.cs +++ /dev/null @@ -1,155 +0,0 @@ -using McpServer.Support.Mcp.Ingestion; -using McpServer.Support.Mcp.Models; -using Reqnroll; - -namespace McpServer.SpecFlow.Tests.StepDefinitions; - -/// Step definitions for Markdown session log ingestion feature. -[Binding] -public sealed class MarkdownSessionLogSteps -{ - private readonly ScenarioContext _scenarioContext; - - public MarkdownSessionLogSteps(ScenarioContext scenarioContext) - { - _scenarioContext = scenarioContext; - } - - private string MarkdownFilePath - { - get => _scenarioContext.Get("MarkdownFilePath"); - set => _scenarioContext.Set(value, "MarkdownFilePath"); - } - - private string MarkdownContent - { - get => _scenarioContext.Get("MarkdownContent"); - set => _scenarioContext.Set(value, "MarkdownContent"); - } - - private UnifiedSessionLogDto? ParseResult - { - get => _scenarioContext.TryGetValue("ParseResult", out UnifiedSessionLogDto? r) ? r : null; - set => _scenarioContext.Set(value!, "ParseResult"); - } - - private string? NormalizedText - { - get => _scenarioContext.TryGetValue("NormalizedText", out string? t) ? t : null; - set => _scenarioContext.Set(value!, "NormalizedText"); - } - - [Given("a Markdown file with header {string}")] - public void GivenAMarkdownFileWithHeader(string header) - { - var content = header + "\n\n"; - MarkdownContent = content; - var tempPath = Path.Combine(Path.GetTempPath(), $"specflow-md-{Guid.NewGuid():N}.md"); - File.WriteAllText(tempPath, content); - MarkdownFilePath = tempPath; - _scenarioContext.Set(tempPath, "MarkdownTempFile"); - } - - [Given("the file contains section {string} with content {string}")] - public void GivenFileContainsSectionWithContent(string sectionName, string sectionContent) - { - var current = MarkdownContent; - current += $"\n## {sectionName}\n\n{sectionContent}\n\n"; - MarkdownContent = current; - File.WriteAllText(MarkdownFilePath, current); - } - - [Given(@"the file contains a ""(.*)"" subsection with prompt ""(.*)""")] - public void GivenFileContainsRequestSubsection(string subsectionType, string prompt) - { - var current = MarkdownContent; - current += $"\n### {subsectionType}\n\n{prompt}\n\n"; - MarkdownContent = current; - File.WriteAllText(MarkdownFilePath, current); - } - - [When("I call MarkdownSessionLogParser.TryParse on the file")] - public void WhenICallTryParseOnFile() - { - var content = File.ReadAllText(MarkdownFilePath); - ParseResult = MarkdownSessionLogParser.TryParse(content, MarkdownFilePath); - } - - [When("I call NormalizeToStructuredText on the result")] - public void WhenICallNormalizeToStructuredText() - { - var content = File.ReadAllText(MarkdownFilePath); - NormalizedText = MarkdownSessionLogParser.NormalizeToStructuredText(content); - } - - [Then("the result should not be null")] - public void ThenResultShouldNotBeNull() - { - Assert.NotNull(ParseResult); - } - - [Then("the result should be null")] - public void ThenResultShouldBeNull() - { - Assert.Null(ParseResult); - } - - [Then("the result title should be {string}")] - public void ThenResultTitleShouldBe(string expected) - { - Assert.NotNull(ParseResult); - Assert.Equal(expected, ParseResult.Title, StringComparer.OrdinalIgnoreCase); - } - - [Then("the result model should be {string}")] - public void ThenResultModelShouldBe(string expected) - { - Assert.NotNull(ParseResult); - Assert.Equal(expected, ParseResult.Model, StringComparer.OrdinalIgnoreCase); - } - - [Then("the result status should be {string}")] - public void ThenResultStatusShouldBe(string expected) - { - Assert.NotNull(ParseResult); - Assert.Equal(expected, ParseResult.Status?.Trim(), StringComparer.OrdinalIgnoreCase); - } - - [Then("the result should contain at least one entry")] - public void ThenResultShouldContainAtLeastOneEntry() - { - Assert.NotNull(ParseResult); - Assert.NotEmpty(ParseResult.Entries ?? []); - } - - [Then("the result should contain at least {int} entries")] - public void ThenResultShouldContainAtLeastNEntries(int minCount) - { - Assert.NotNull(ParseResult); - var count = (ParseResult.Entries ?? []).Count; - Assert.True(count >= minCount, - $"Expected at least {minCount} entries but got {count}."); - } - - [Then("the normalized text should not be empty")] - public void ThenNormalizedTextShouldNotBeEmpty() - { - Assert.False(string.IsNullOrWhiteSpace(NormalizedText), - "NormalizeToStructuredText returned empty text."); - } - - [Then("the normalized text should contain {string}")] - public void ThenNormalizedTextShouldContain(string expected) - { - Assert.Contains(expected, NormalizedText ?? "", StringComparison.OrdinalIgnoreCase); - } - - [AfterScenario] - public void CleanupTempFile() - { - if (_scenarioContext.TryGetValue("MarkdownTempFile", out string tempFile) && File.Exists(tempFile)) - { - File.Delete(tempFile); - } - } -} diff --git a/tests/McpServer.SpecFlow.Tests/StepDefinitions/RequirementsSteps.cs b/tests/McpServer.SpecFlow.Tests/StepDefinitions/RequirementsSteps.cs deleted file mode 100644 index 7d62c034..00000000 --- a/tests/McpServer.SpecFlow.Tests/StepDefinitions/RequirementsSteps.cs +++ /dev/null @@ -1,95 +0,0 @@ -using McpServer.Support.Mcp.Services; -using Reqnroll; - -namespace McpServer.SpecFlow.Tests.StepDefinitions; - -/// Step definitions for AI requirements analysis feature. -[Binding] -public sealed class RequirementsSteps -{ - private readonly ScenarioContext _scenarioContext; - - public RequirementsSteps(ScenarioContext scenarioContext) - { - _scenarioContext = scenarioContext; - } - - private string CopilotResponseBody - { - get => _scenarioContext.Get("CopilotResponseBody"); - set => _scenarioContext.Set(value, "CopilotResponseBody"); - } - - private RequirementsService CreateService() - { - return new RequirementsService( - null!, - null!, - null!, - Microsoft.Extensions.Logging.Abstractions.NullLogger.Instance); - } - - private List ExtractedIds - { - get => _scenarioContext.TryGetValue("ExtractedIds", out List? ids) ? ids! : []; - set => _scenarioContext.Set(value, "ExtractedIds"); - } - - [Given("a Copilot response containing:")] - public void GivenACopilotResponseContaining(string responseBody) - { - CopilotResponseBody = responseBody; - } - - [When("I extract requirement IDs from the JSON block response")] - public void WhenIExtractRequirementIdsFromJsonBlock() - { - var (frIds, trIds) = CreateService().ExtractRequirementIds(CopilotResponseBody); - var all = frIds.Concat(trIds).ToList(); - ExtractedIds = all; - _scenarioContext.Set(frIds, "ExtractedFrIds"); - _scenarioContext.Set(trIds, "ExtractedTrIds"); - } - - [When("I extract requirement IDs using regex fallback")] - public void WhenIExtractRequirementIdsUsingRegexFallback() - { - var (frIds, trIds) = CreateService().ExtractRequirementIds(CopilotResponseBody); - var all = frIds.Concat(trIds).ToList(); - ExtractedIds = all; - _scenarioContext.Set(frIds, "ExtractedFrIds"); - _scenarioContext.Set(trIds, "ExtractedTrIds"); - } - - [When("the discovered IDs are merged into the TODO")] - public void WhenTheDiscoveredIdsAreMergedIntoTheTodo() - { - // Simulate merging: the existing TODO's FR/TR IDs are the seed. - // The Copilot response is already stored, extraction happened above. - var (frIds, trIds) = CreateService().ExtractRequirementIds(CopilotResponseBody); - ExtractedIds = frIds.Concat(trIds).ToList(); - } - - [Then("the extracted IDs should contain {string}")] - public void ThenExtractedIdsShouldContain(string expected) - { - Assert.Contains(expected, ExtractedIds, StringComparer.OrdinalIgnoreCase); - } - - [Then("the extracted IDs should be distinct")] - public void ThenExtractedIdsShouldBeDistinct() - { - var duplicates = ExtractedIds - .GroupBy(id => id, StringComparer.OrdinalIgnoreCase) - .Where(g => g.Count() > 1) - .Select(g => g.Key) - .ToList(); - Assert.Empty(duplicates); - } - - [Then("the extracted IDs should be empty")] - public void ThenExtractedIdsShouldBeEmpty() - { - Assert.Empty(ExtractedIds); - } -} diff --git a/tests/McpServer.SpecFlow.Tests/StepDefinitions/SessionLogSteps.cs b/tests/McpServer.SpecFlow.Tests/StepDefinitions/SessionLogSteps.cs deleted file mode 100644 index a3296d12..00000000 --- a/tests/McpServer.SpecFlow.Tests/StepDefinitions/SessionLogSteps.cs +++ /dev/null @@ -1,41 +0,0 @@ -using System.Text; -using System.Text.Json; -using Reqnroll; - -namespace McpServer.SpecFlow.Tests.StepDefinitions; - -/// Step definitions for session log feature files. -[Binding] -public sealed class SessionLogSteps -{ - private readonly ScenarioContext _scenarioContext; - - public SessionLogSteps(ScenarioContext scenarioContext) - { - _scenarioContext = scenarioContext; - } - - private HttpClient Client => _scenarioContext.Get("HttpClient"); - - [Given("a session log exists with sourceType {string} and sessionId {string}")] - public async Task GivenASessionLogExists(string sourceType, string sessionId) - { - var body = JsonSerializer.Serialize(new - { - sourceType, - sessionId, - title = "SpecFlow Session Log", - status = "completed", - entries = Array.Empty() - }); - using var content = new StringContent(body, Encoding.UTF8, "application/json"); - var response = await Client.PostAsync(new Uri("/mcp/sessionlog", UriKind.Relative), content).ConfigureAwait(false); - // Accept 201 or 200 - } - - [Given("a session log exists with sourceType {string} and sessionId {string} and agentName {string}")] - public async Task GivenASessionLogExistsWithAgent(string sourceType, string sessionId, string agentName) - { - await GivenASessionLogExists(sourceType, sessionId).ConfigureAwait(false); - } -} diff --git a/tests/McpServer.SpecFlow.Tests/StepDefinitions/TodoSteps.cs b/tests/McpServer.SpecFlow.Tests/StepDefinitions/TodoSteps.cs deleted file mode 100644 index 20ec403b..00000000 --- a/tests/McpServer.SpecFlow.Tests/StepDefinitions/TodoSteps.cs +++ /dev/null @@ -1,176 +0,0 @@ -using System.Net.Http.Json; -using System.Text; -using System.Text.Json; -using Reqnroll; - -namespace McpServer.SpecFlow.Tests.StepDefinitions; - -/// Step definitions for TODO management feature. -[Binding] -public sealed class TodoSteps -{ - private readonly ScenarioContext _scenarioContext; - private readonly CommonSteps _common; - - public TodoSteps(ScenarioContext scenarioContext, CommonSteps common) - { - _scenarioContext = scenarioContext; - _common = common; - } - - private HttpClient Client => _scenarioContext.Get("HttpClient"); - - [Given("a TODO item exists with title {string}")] - public async Task GivenATodoItemExistsWithTitle(string title) - { - var uniqueId = $"SF-{Guid.NewGuid():N}"[..16].ToUpperInvariant(); - var body = JsonSerializer.Serialize(new - { - id = uniqueId, - title, - section = "mvp-support", - priority = "medium", - done = false - }); - using var content = new StringContent(body, Encoding.UTF8, "application/json"); - var response = await Client.PostAsync(new Uri("/mcp/todo", UriKind.Relative), content).ConfigureAwait(false); - response.EnsureSuccessStatusCode(); - } - - [Given("a TODO item exists with title {string} and id stored as {string}")] - public async Task GivenATodoItemExistsWithTitleAndIdStoredAs(string title, string idKey) - { - var uniqueId = $"SF-{Guid.NewGuid():N}"[..16].ToUpperInvariant(); - var body = JsonSerializer.Serialize(new - { - id = uniqueId, - title, - section = "mvp-support", - priority = "medium", - done = false - }); - using var content = new StringContent(body, Encoding.UTF8, "application/json"); - var response = await Client.PostAsync(new Uri("/mcp/todo", UriKind.Relative), content).ConfigureAwait(false); - var responseBody = await response.Content.ReadAsStringAsync().ConfigureAwait(false); - response.EnsureSuccessStatusCode(); - _scenarioContext.Set(uniqueId, idKey); - } - - [Given("a TODO item with existing FR IDs {string}")] - public async Task GivenATodoItemWithExistingFrIds(string existingIds) - { - var uniqueId = $"SF-{Guid.NewGuid():N}"[..16].ToUpperInvariant(); - var body = JsonSerializer.Serialize(new - { - id = uniqueId, - title = "Requirements Base Item", - section = "mvp-support", - priority = "high", - done = false, - functionalRequirements = existingIds.Split(',').Select(s => s.Trim()).ToList() - }); - using var content = new StringContent(body, Encoding.UTF8, "application/json"); - var response = await Client.PostAsync(new Uri("/mcp/todo", UriKind.Relative), content).ConfigureAwait(false); - response.EnsureSuccessStatusCode(); - _scenarioContext.Set(uniqueId, "reqBaseId"); - } - - [Then("every returned item should have section {string}")] - public void ThenEveryItemShouldHaveSection(string expectedSection) - { - var body = _common.GetRequiredResponseBody(); - using var doc = JsonDocument.Parse(body); - var items = doc.RootElement.GetProperty("items"); - foreach (var item in items.EnumerateArray()) - { - if (item.TryGetProperty("section", out var section)) - { - Assert.Equal(expectedSection, section.GetString(), StringComparer.OrdinalIgnoreCase); - } - } - } - - [Then("every returned item should have priority {string}")] - public void ThenEveryItemShouldHavePriority(string expectedPriority) - { - var body = _common.GetRequiredResponseBody(); - using var doc = JsonDocument.Parse(body); - var items = doc.RootElement.GetProperty("items"); - foreach (var item in items.EnumerateArray()) - { - if (item.TryGetProperty("priority", out var priority)) - { - Assert.Equal(expectedPriority, priority.GetString(), StringComparer.OrdinalIgnoreCase); - } - } - } - - [Then(@"every returned item should have done ""(.*)""")] - public void ThenEveryItemShouldHaveDone(string expectedDone) - { - var expected = bool.Parse(expectedDone); - var body = _common.GetRequiredResponseBody(); - using var doc = JsonDocument.Parse(body); - var items = doc.RootElement.GetProperty("items"); - foreach (var item in items.EnumerateArray()) - { - if (item.TryGetProperty("done", out var done)) - { - Assert.Equal(expected, done.GetBoolean()); - } - } - } - - [Then("every returned item title or description should contain {string}")] - public void ThenEveryItemTitleOrDescriptionContains(string keyword) - { - var body = _common.GetRequiredResponseBody(); - using var doc = JsonDocument.Parse(body); - if (!doc.RootElement.TryGetProperty("items", out var items) || - items.ValueKind == JsonValueKind.Null || - items.ValueKind != JsonValueKind.Array) - { - return; // No items to validate - } - foreach (var item in items.EnumerateArray()) - { - var title = item.TryGetProperty("title", out var t) ? t.GetString() ?? "" : ""; - var description = item.TryGetProperty("description", out var d) && d.ValueKind == JsonValueKind.Array - ? string.Join(" ", d.EnumerateArray().Select(x => x.GetString() ?? "")) - : ""; - var combined = title + " " + description; - Assert.Contains(keyword, combined, StringComparison.OrdinalIgnoreCase); - } - } - - [Then("the TODO should contain {string} exactly once")] - public async Task ThenTodoShouldContainIdExactlyOnce(string expectedId) - { - var itemId = _scenarioContext.Get("reqBaseId"); - var response = await Client.GetAsync(new Uri($"/mcp/todo/{itemId}", UriKind.Relative)).ConfigureAwait(false); - var body = await response.Content.ReadAsStringAsync().ConfigureAwait(false); - var count = CountOccurrences(body, expectedId); - Assert.Equal(1, count); - } - - [Then("the TODO should contain {string}")] - public async Task ThenTodoShouldContainId(string expectedId) - { - var itemId = _scenarioContext.Get("reqBaseId"); - var response = await Client.GetAsync(new Uri($"/mcp/todo/{itemId}", UriKind.Relative)).ConfigureAwait(false); - var body = await response.Content.ReadAsStringAsync().ConfigureAwait(false); - Assert.Contains(expectedId, body, StringComparison.OrdinalIgnoreCase); - } - - private static int CountOccurrences(string text, string pattern) - { - var count = 0; - var idx = 0; - while ((idx = text.IndexOf(pattern, idx, StringComparison.OrdinalIgnoreCase)) >= 0) - { - count++; - idx += pattern.Length; - } - return count; - } -} diff --git a/tests/McpServer.SpecFlow.Tests/StepDefinitions/ToolRegistrySteps.cs b/tests/McpServer.SpecFlow.Tests/StepDefinitions/ToolRegistrySteps.cs deleted file mode 100644 index aeedf8bc..00000000 --- a/tests/McpServer.SpecFlow.Tests/StepDefinitions/ToolRegistrySteps.cs +++ /dev/null @@ -1,93 +0,0 @@ -using System.Text; -using System.Text.Json; -using Reqnroll; - -namespace McpServer.SpecFlow.Tests.StepDefinitions; - -/// Step definitions for tool registry feature files. -[Binding] -public sealed class ToolRegistrySteps -{ - private readonly ScenarioContext _scenarioContext; - private readonly CommonSteps _common; - - public ToolRegistrySteps(ScenarioContext scenarioContext, CommonSteps common) - { - _scenarioContext = scenarioContext; - _common = common; - } - - private HttpClient Client => _scenarioContext.Get("HttpClient"); - - [Given("a tool exists with name {string} and tags {string}")] - public async Task GivenAToolExistsWithNameAndTags(string name, string tags) - { - var tagList = tags.Split(',').Select(t => t.Trim()).ToList(); - var body = JsonSerializer.Serialize(new { name, description = $"SpecFlow tool {name}", tags = tagList }); - using var content = new StringContent(body, Encoding.UTF8, "application/json"); - var response = await Client.PostAsync(new Uri("/mcp/tools", UriKind.Relative), content).ConfigureAwait(false); - response.EnsureSuccessStatusCode(); - } - - [Given("a tool exists with name {string} and tags {string} and id stored as {string}")] - public async Task GivenAToolExistsWithNameTagsAndId(string name, string tags, string idKey) - { - var tagList = tags.Split(',').Select(t => t.Trim()).ToList(); - var body = JsonSerializer.Serialize(new { name, description = $"SpecFlow tool {name}", tags = tagList }); - using var content = new StringContent(body, Encoding.UTF8, "application/json"); - var response = await Client.PostAsync(new Uri("/mcp/tools", UriKind.Relative), content).ConfigureAwait(false); - var responseBody = await response.Content.ReadAsStringAsync().ConfigureAwait(false); - response.EnsureSuccessStatusCode(); - using var doc = JsonDocument.Parse(responseBody); - // Response shape: { "success": true, "tool": { "id": 1, ... } } - if (doc.RootElement.TryGetProperty("tool", out var tool) && tool.TryGetProperty("id", out var toolId)) - { - _scenarioContext.Set(toolId.GetInt64().ToString(), idKey); - } - } - - [Given("a bucket exists with name {string}")] - public async Task GivenABucketExistsWithName(string name) - { - var body = JsonSerializer.Serialize(new - { - name, - owner = "sharpninja", - repo = "McpServer", - branch = "main" - }); - using var content = new StringContent(body, Encoding.UTF8, "application/json"); - var response = await Client.PostAsync(new Uri("/mcp/tools/buckets", UriKind.Relative), content).ConfigureAwait(false); - var status = (int)response.StatusCode; - Assert.True(status is 201 or 409, $"Expected 201 or 409, got {status}"); - } - - [Then("I delete the tool named {string}")] - public async Task ThenIDeleteToolNamed(string name) - { - // Find tool by searching, then delete by id - var searchResponse = await Client.GetAsync( - new Uri($"/mcp/tools/search?keyword={Uri.EscapeDataString(name)}", UriKind.Relative)).ConfigureAwait(false); - var searchBody = await searchResponse.Content.ReadAsStringAsync().ConfigureAwait(false); - if (!searchResponse.IsSuccessStatusCode) return; - - using var doc = JsonDocument.Parse(searchBody); - // Handle both array and paginated object responses - var items = doc.RootElement.ValueKind == JsonValueKind.Array - ? doc.RootElement - : (doc.RootElement.TryGetProperty("items", out var arr) ? arr : doc.RootElement); - - if (items.ValueKind != JsonValueKind.Array) return; - - foreach (var tool in items.EnumerateArray()) - { - var toolName = tool.TryGetProperty("name", out var n) ? n.GetString() : null; - if (string.Equals(toolName, name, StringComparison.OrdinalIgnoreCase) && - tool.TryGetProperty("id", out var id)) - { - await Client.DeleteAsync(new Uri($"/mcp/tools/{id.GetInt64()}", UriKind.Relative)).ConfigureAwait(false); - break; - } - } - } -} diff --git a/tests/McpServer.SpecFlow.Tests/StepDefinitions/TunnelSteps.cs b/tests/McpServer.SpecFlow.Tests/StepDefinitions/TunnelSteps.cs deleted file mode 100644 index fadfbdcb..00000000 --- a/tests/McpServer.SpecFlow.Tests/StepDefinitions/TunnelSteps.cs +++ /dev/null @@ -1,204 +0,0 @@ -using McpServer.Support.Mcp.Options; -using McpServer.Support.Mcp.Services; -using Microsoft.Extensions.Logging.Abstractions; -using Microsoft.Extensions.Options; -using Reqnroll; - -namespace McpServer.SpecFlow.Tests.StepDefinitions; - -/// Step definitions for tunnel provider feature files. -[Binding] -public sealed class TunnelSteps -{ - private readonly ScenarioContext _scenarioContext; - - public TunnelSteps(ScenarioContext scenarioContext) - { - _scenarioContext = scenarioContext; - } - - [Given("the NgrokTunnelProvider is configured with auth token {string}")] - public void GivenNgrokTunnelProviderConfiguredWithAuthToken(string authToken) - { - var options = new TunnelOptions - { - Port = 7147, - Ngrok = new NgrokTunnelOptions { AuthToken = authToken } - }; - _scenarioContext.Set(options, "TunnelOptions"); - _scenarioContext.Set(authToken, "NgrokAuthToken"); - } - - [When("the NgrokTunnelProvider builds its process start info")] - public void WhenNgrokProviderBuildsProcessStartInfo() - { - // Build the same ProcessStartInfo as NgrokTunnelProvider.StartAsync would build. - var options = _scenarioContext.Get("TunnelOptions"); - var authToken = _scenarioContext.TryGetValue("NgrokAuthToken", out string? token) ? token : null; - - var startInfo = new System.Diagnostics.ProcessStartInfo - { - FileName = "ngrok", - Arguments = $"http {options.Port} --log stdout --log-format json", - UseShellExecute = false, - CreateNoWindow = true, - RedirectStandardOutput = true, - RedirectStandardError = true, - }; - - if (!string.IsNullOrWhiteSpace(authToken)) - startInfo.Environment["NGROK_AUTHTOKEN"] = authToken; - - _scenarioContext.Set(startInfo, "ProcessStartInfo"); - } - - [Then("the process arguments should not contain the auth token")] - public void ThenProcessArgumentsShouldNotContainAuthToken() - { - var startInfo = _scenarioContext.Get("ProcessStartInfo"); - var authToken = _scenarioContext.Get("NgrokAuthToken"); - Assert.DoesNotContain(authToken, startInfo.Arguments, StringComparison.OrdinalIgnoreCase); - } - - [Then("the environment variable {string} should be set to {string}")] - public void ThenEnvironmentVariableShouldBeSet(string varName, string expected) - { - var startInfo = _scenarioContext.Get("ProcessStartInfo"); - Assert.True(startInfo.Environment.ContainsKey(varName), - $"Environment variable '{varName}' not found in ProcessStartInfo.Environment."); - Assert.Equal(expected, startInfo.Environment[varName]); - } - - [Given("a tunnel process has already exited before StopAsync is called")] - public void GivenTunnelProcessAlreadyExited() - { - // Simulate: process that has exited. Store a flag. - _scenarioContext.Set(true, "ProcessAlreadyExited"); - } - - [When("StopAsync is called on the tunnel provider")] - public void WhenStopAsyncCalledOnTunnelProvider() - { - // Since we cannot actually start ngrok in a test, we verify the TOCTOU-safe pattern: - // Calling Process.Kill on an already-exited process throws InvalidOperationException. - // The provider wraps this in try-catch. - var alreadyExited = _scenarioContext.TryGetValue("ProcessAlreadyExited", out bool exited) && exited; - - var exceptionThrown = false; - try - { - if (alreadyExited) - { - // Simulate the safe pattern: try-catch around Kill - try - { - throw new InvalidOperationException("Process has already exited."); - } - catch (InvalidOperationException) - { - // Expected — provider swallows this - } - } - } - catch - { - exceptionThrown = true; - } - _scenarioContext.Set(exceptionThrown, "ExceptionThrownOnStop"); - } - - [Then("no InvalidOperationException is thrown")] - public void ThenNoInvalidOperationExceptionThrown() - { - var exceptionThrown = _scenarioContext.TryGetValue("ExceptionThrownOnStop", out bool thrown) && thrown; - Assert.False(exceptionThrown, "Expected no exception to propagate from StopAsync."); - } - - [Given("a tunnel provider has an active process")] - public void GivenTunnelProviderHasActiveProcess() - { - _scenarioContext.Set(true, "HasActiveProcess"); - } - - [When("StopAsync is called")] - public void WhenStopAsyncCalled() - { - // The WaitForExit timeout is 5000ms per TR-MCP-TUN-002. - // We just verify the constant is correct. - _scenarioContext.Set(5000, "WaitForExitTimeout"); - } - - [Then("the provider waits at most {int} milliseconds for the process to exit")] - public void ThenProviderWaitsAtMostMilliseconds(int maxMs) - { - var timeout = _scenarioContext.Get("WaitForExitTimeout"); - Assert.Equal(maxMs, timeout); - } - - [Given("the FrpTunnelProvider wrote a config file")] - public void GivenFrpProviderWroteConfigFile() - { - var tempFile = Path.Combine(Path.GetTempPath(), $"frp_test_{Guid.NewGuid():N}.toml"); - File.WriteAllText(tempFile, "[common]\nserver_addr = \"test\"\n"); - _scenarioContext.Set(tempFile, "FrpConfigFile"); - } - - [When("StopAsync is called on the FrpTunnelProvider")] - public void WhenStopAsyncCalledOnFrpProvider() - { - // Simulate FRP config cleanup - if (_scenarioContext.TryGetValue("FrpConfigFile", out string configFile) && File.Exists(configFile)) - { - File.Delete(configFile); - } - } - - [Then("the FRP config file should be deleted")] - public void ThenFrpConfigFileShouldBeDeleted() - { - if (_scenarioContext.TryGetValue("FrpConfigFile", out string configFile)) - { - Assert.False(File.Exists(configFile), - $"Expected FRP config file '{configFile}' to be deleted."); - } - } - - [Given("tunnel provider {string} is configured")] - public void GivenTunnelProviderConfigured(string providerName) - { - _scenarioContext.Set(providerName, "TunnelProviderName"); - } - - [Then("the DI container should contain a registered IHostedService for the tunnel provider")] - public void ThenDiContainerShouldContainTunnelHostedService() - { - // Verify the configuration pattern: when a provider name is set, it's registered. - var providerName = _scenarioContext.Get("TunnelProviderName"); - Assert.False(string.IsNullOrWhiteSpace(providerName), - "Tunnel provider name must be set to register as IHostedService."); - // The actual DI registration is covered by integration tests in McpServer.Support.Mcp.Tests. - // Here we verify the precondition. - } - - [Given("the CloudflareTunnelProvider is configured without a tunnel name")] - public void GivenCloudflareTunnelProviderWithoutTunnelName() - { - var args = "tunnel run"; - _scenarioContext.Set(args, "CloudflareArgs"); - } - - [When("the CloudflareTunnelProvider builds its process start info")] - public void WhenCloudflareBuildStartInfo() - { - // already set above - } - - [Then("the process arguments should contain {string}")] - public void ThenProcessArgumentsShouldContain(string expected) - { - var args = _scenarioContext.TryGetValue("CloudflareArgs", out string? a) ? a - : (_scenarioContext.TryGetValue("ProcessStartInfo", out System.Diagnostics.ProcessStartInfo? psi) ? psi?.Arguments : null); - Assert.NotNull(args); - Assert.Contains(expected, args, StringComparison.OrdinalIgnoreCase); - } -} diff --git a/tests/McpServer.SpecFlow.Tests/StepDefinitions/WorkspaceSteps.cs b/tests/McpServer.SpecFlow.Tests/StepDefinitions/WorkspaceSteps.cs deleted file mode 100644 index 0d9288b0..00000000 --- a/tests/McpServer.SpecFlow.Tests/StepDefinitions/WorkspaceSteps.cs +++ /dev/null @@ -1,248 +0,0 @@ -using System.Net.Http.Json; -using System.Text; -using System.Text.Json; -using Reqnroll; - -namespace McpServer.SpecFlow.Tests.StepDefinitions; - -/// Step definitions for workspace management feature files. -[Binding] -public sealed class WorkspaceSteps -{ - private readonly ScenarioContext _scenarioContext; - private readonly CommonSteps _common; - - public WorkspaceSteps(ScenarioContext scenarioContext, CommonSteps common) - { - _scenarioContext = scenarioContext; - _common = common; - } - - private HttpClient Client => _scenarioContext.Get("HttpClient"); - - [Given("I use a unique temp directory stored as {string}")] - public void GivenIUseAUniqueTempDirectory(string pathKey) - { - var path = Path.Combine(Path.GetTempPath(), $"specflow_ws_{Guid.NewGuid():N}"); - Directory.CreateDirectory(path); - _scenarioContext.Set(path, pathKey); - } - - [Given("a workspace exists for path {string}")] - public async Task GivenAWorkspaceExistsForPath(string pathExpression) - { - var path = _common.ResolveTokens(pathExpression); - var body = JsonSerializer.Serialize(new { workspacePath = path, name = "specflow-ws" }); - using var content = new StringContent(body, Encoding.UTF8, "application/json"); - var response = await Client.PostAsync(new Uri("/mcp/workspace", UriKind.Relative), content).ConfigureAwait(false); - // Accept 201 or 409 (already exists) - var status = (int)response.StatusCode; - Assert.True(status is 201 or 409, $"Expected 201 or 409, got {status}"); - } - - [Given("a workspace exists for path {string} with key stored as {string}")] - public async Task GivenAWorkspaceExistsForPathWithKeyStoredAs(string pathExpression, string keyStoreAs) - { - var path = _common.ResolveTokens(pathExpression); - var body = JsonSerializer.Serialize(new { workspacePath = path, name = "specflow-ws" }); - using var content = new StringContent(body, Encoding.UTF8, "application/json"); - var response = await Client.PostAsync(new Uri("/mcp/workspace", UriKind.Relative), content).ConfigureAwait(false); - var status = (int)response.StatusCode; - Assert.True(status is 201 or 409, $"Expected 201 or 409, got {status}"); - - var wsKey = Base64UrlEncode(path); - _scenarioContext.Set(wsKey, keyStoreAs); - } - - [Given("a workspace exists for path {string} with key stored as {string} and port stored as {string}")] - public async Task GivenAWorkspaceExistsWithKeyAndPort(string pathExpression, string keyStoreAs, string portStoreAs) - { - var path = _common.ResolveTokens(pathExpression); - var body = JsonSerializer.Serialize(new { workspacePath = path, name = "specflow-ws" }); - using var content = new StringContent(body, Encoding.UTF8, "application/json"); - var response = await Client.PostAsync(new Uri("/mcp/workspace", UriKind.Relative), content).ConfigureAwait(false); - var responseBody = await response.Content.ReadAsStringAsync().ConfigureAwait(false); - var status = (int)response.StatusCode; - Assert.True(status is 201 or 409, $"Expected 201 or 409, got {status}"); - - var wsKey = Base64UrlEncode(path); - _scenarioContext.Set(wsKey, keyStoreAs); - - if (status == 201) - { - using var doc = JsonDocument.Parse(responseBody); - if (doc.RootElement.TryGetProperty("workspace", out var ws) && - ws.TryGetProperty("workspacePort", out var port)) - { - _scenarioContext.Set(port.GetInt32().ToString(), portStoreAs); - } - } - } - - [Given("the workspace {string} is started")] - public async Task GivenTheWorkspaceIsStarted(string keyExpression) - { - var key = _common.ResolveTokens(keyExpression); - await Client.PostAsync(new Uri($"/mcp/workspace/{key}/start", UriKind.Relative), null).ConfigureAwait(false); - } - - [Given("the primary workspace key is stored as {string}")] - public async Task GivenThePrimaryWorkspaceKeyIsStoredAs(string keyStoreAs) - { - var response = await Client.GetAsync(new Uri("/mcp/workspace", UriKind.Relative)).ConfigureAwait(false); - var body = await response.Content.ReadAsStringAsync().ConfigureAwait(false); - using var doc = JsonDocument.Parse(body); - var root = doc.RootElement; - // Response shape: { "workspaces": [...], "totalCount": ... } - var workspaceArray = root.TryGetProperty("workspaces", out var ws) ? ws : root; - if (workspaceArray.ValueKind == JsonValueKind.Array) - { - foreach (var workspace in workspaceArray.EnumerateArray()) - { - if (workspace.TryGetProperty("isPrimary", out var isPrimary) && isPrimary.GetBoolean()) - { - if (workspace.TryGetProperty("key", out var key)) - { - _scenarioContext.Set(key.GetString() ?? "", keyStoreAs); - return; - } - } - } - } - // Fallback: store empty string if no primary found - _scenarioContext.Set("", keyStoreAs); - } - - [Given("the workspace port is stored as {string}")] - public async Task GivenTheWorkspacePortIsStoredAs(string portKey) - { - // Use the last-set workspace path key to find the workspace - var response = await Client.GetAsync(new Uri("/mcp/workspace", UriKind.Relative)).ConfigureAwait(false); - var body = await response.Content.ReadAsStringAsync().ConfigureAwait(false); - _scenarioContext.Set("7148", portKey); // default fallback - } - - [Given("a legacy {string} file exists in {string}")] - public void GivenALegacyFileExistsIn(string fileName, string dirExpression) - { - var dir = _common.ResolveTokens(dirExpression); - Directory.CreateDirectory(dir); - File.WriteAllText(Path.Combine(dir, fileName), "legacy marker"); - } - - [When("I stop the workspace {string}")] - public async Task WhenIStopTheWorkspace(string keyExpression) - { - var key = _common.ResolveTokens(keyExpression); - await Client.PostAsync(new Uri($"/mcp/workspace/{key}/stop", UriKind.Relative), null).ConfigureAwait(false); - } - - [Then("I stop the workspace {string}")] - public async Task ThenIStopWorkspace(string keyExpression) - { - var key = _common.ResolveTokens(keyExpression); - await Client.PostAsync(new Uri($"/mcp/workspace/{key}/stop", UriKind.Relative), null).ConfigureAwait(false); - } - - [Then("I delete the created workspace using the path {string}")] - public async Task ThenIDeleteWorkspaceUsingPath(string pathExpression) - { - var path = _common.ResolveTokens(pathExpression); - var key = Base64UrlEncode(path); - await Client.PostAsync(new Uri($"/mcp/workspace/{key}/stop", UriKind.Relative), null).ConfigureAwait(false); - await Client.DeleteAsync(new Uri($"/mcp/workspace/{key}", UriKind.Relative)).ConfigureAwait(false); - } - - [Then("I delete the bucket named {string}")] - public async Task ThenIDeleteBucketNamed(string name) - { - await Client.DeleteAsync(new Uri($"/mcp/tools/buckets/{Uri.EscapeDataString(name)}", UriKind.Relative)).ConfigureAwait(false); - } - - [Then("the response body should contain a port greater than or equal to {int}")] - public void ThenResponseBodyShouldContainPortGreaterThan(int minPort) - { - var body = _common.GetRequiredResponseBody(); - using var doc = JsonDocument.Parse(body); - var port = FindPort(doc.RootElement); - Assert.True(port >= minPort, $"Expected port >= {minPort} but got {port}. Body: {body}"); - } - - [Then("the key {string} should be a valid Base64URL-encoded string")] - public void ThenKeyShouldBeValidBase64Url(string keyExpression) - { - var key = _common.ResolveTokens(keyExpression); - // Base64URL chars: A-Z, a-z, 0-9, -, _ - Assert.Matches(@"^[A-Za-z0-9\-_=]+$", key); - } - - [Then("at most one workspace in the result has {string} set to true")] - public void ThenAtMostOneWorkspaceHasFieldSetToTrue(string fieldName) - { - var body = _common.GetRequiredResponseBody(); - using var doc = JsonDocument.Parse(body); - var count = 0; - var root = doc.RootElement; - // Response shape: { "workspaces": [...], "totalCount": ... } - var workspaces = root.TryGetProperty("workspaces", out var ws) ? ws : root; - if (workspaces.ValueKind == JsonValueKind.Array) - { - foreach (var item in workspaces.EnumerateArray()) - { - if (item.TryGetProperty(fieldName, out var field) && field.GetBoolean()) - count++; - } - } - Assert.True(count <= 1, $"Expected at most one workspace with {fieldName}=true but got {count}"); - } - - [Then("the file {string} should exist in {string}")] - public void ThenFileShouldExistIn(string fileName, string dirExpression) - { - var dir = _common.ResolveTokens(dirExpression); - Assert.True(File.Exists(Path.Combine(dir, fileName)), - $"Expected file '{fileName}' to exist in '{dir}'."); - } - - [Then("the file {string} should not exist in {string}")] - public void ThenFileShouldNotExistIn(string fileName, string dirExpression) - { - var dir = _common.ResolveTokens(dirExpression); - Assert.False(File.Exists(Path.Combine(dir, fileName)), - $"Expected file '{fileName}' to NOT exist in '{dir}'."); - } - - [Then("the file {string} in {string} should contain {string}")] - public void ThenFileInDirShouldContain(string fileName, string dirExpression, string expected) - { - var dir = _common.ResolveTokens(dirExpression); - expected = _common.ResolveTokens(expected); - var path = Path.Combine(dir, fileName); - Assert.True(File.Exists(path), $"File '{path}' does not exist."); - var content = File.ReadAllText(path); - Assert.Contains(expected, content, StringComparison.OrdinalIgnoreCase); - } - - [Then("the directory {string} should exist")] - public void ThenDirectoryShouldExist(string dirExpression) - { - var dir = _common.ResolveTokens(dirExpression); - Assert.True(Directory.Exists(dir), $"Expected directory '{dir}' to exist."); - } - - private static int FindPort(JsonElement element) - { - if (element.TryGetProperty("workspacePort", out var port)) - return port.GetInt32(); - if (element.TryGetProperty("workspace", out var ws)) - return FindPort(ws); - return 0; - } - - private static string Base64UrlEncode(string input) - { - var bytes = System.Text.Encoding.UTF8.GetBytes(input); - return Convert.ToBase64String(bytes) - .Replace('+', '-').Replace('/', '_'); - } -} diff --git a/tests/McpServer.SpecFlow.Tests/Support/McpSpecFlowWebApplicationFactory.cs b/tests/McpServer.SpecFlow.Tests/Support/McpSpecFlowWebApplicationFactory.cs deleted file mode 100644 index a7eec36d..00000000 --- a/tests/McpServer.SpecFlow.Tests/Support/McpSpecFlowWebApplicationFactory.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System.Collections.Generic; -using McpServer.Support.Mcp; -using Microsoft.AspNetCore.Hosting; -using Microsoft.AspNetCore.Mvc.Testing; -using Microsoft.Extensions.Configuration; - -namespace McpServer.SpecFlow.Tests.Support; - -/// Web application factory for SpecFlow integration tests. -public sealed class McpSpecFlowWebApplicationFactory : WebApplicationFactory -{ - /// - protected override void ConfigureWebHost(IWebHostBuilder builder) - { - builder.UseEnvironment("Test"); - builder.ConfigureAppConfiguration(config => - { - config.AddInMemoryCollection(new Dictionary - { - { "Mcp:DataSource", ":memory:" } - }); - }); - } -} diff --git a/tests/McpServer.Support.Mcp.Tests/Configuration/ConfigurablePathIntegrationTests.cs b/tests/McpServer.Support.Mcp.Tests/Configuration/ConfigurablePathIntegrationTests.cs index f4bb508f..afba51ca 100644 --- a/tests/McpServer.Support.Mcp.Tests/Configuration/ConfigurablePathIntegrationTests.cs +++ b/tests/McpServer.Support.Mcp.Tests/Configuration/ConfigurablePathIntegrationTests.cs @@ -69,7 +69,7 @@ public async Task RepoIngestor_ResolvesRelativeRepoRoot_AgainstCurrentDirectory( Directory.CreateDirectory(repoFolder); await File.WriteAllTextAsync(Path.Combine(repoFolder, "readme.md"), "# relative root").ConfigureAwait(true); - var sut = new RepoIngestor(new Chunker(), Microsoft.Extensions.Options.Options.Create(new IngestionOptions { RepoRoot = relativeRepoRoot }), NullLogger.Instance); + var sut = new RepoIngestor(new Chunker(), Microsoft.Extensions.Options.Options.Create(new IngestionOptions { RepoRoot = relativeRepoRoot }), new WorkspaceContext(), NullLogger.Instance); var results = await sut.IngestAsync().ConfigureAwait(true); diff --git a/tests/McpServer.Support.Mcp.Tests/Configuration/IngestionAllowlistContractTests.cs b/tests/McpServer.Support.Mcp.Tests/Configuration/IngestionAllowlistContractTests.cs index c6e437ff..f2189bae 100644 --- a/tests/McpServer.Support.Mcp.Tests/Configuration/IngestionAllowlistContractTests.cs +++ b/tests/McpServer.Support.Mcp.Tests/Configuration/IngestionAllowlistContractTests.cs @@ -3,10 +3,22 @@ namespace McpServer.Support.Mcp.Tests.Configuration; /// -/// Validates the ingestion allowlist contract for indexed project coverage. +/// Validates ingestion allowlist and marker-template indexing contracts. /// +/// +/// Requirement coverage: TEST-MCP-087, FR-MCP-039, TR-MCP-CTX-001. +/// Test data uses repository files checked into source control so coverage assertions remain deterministic and traceable. +/// public sealed class IngestionAllowlistContractTests { + /// + /// Verifies that appsettings.yaml includes required repository allowlist patterns for indexed projects. + /// + /// + /// Requirement coverage: TEST-MCP-087, FR-MCP-039, TR-MCP-CTX-001. + /// Test data: src\McpServer.Support.Mcp\appsettings.yaml content with expected glob values. + /// This data is used to ensure configuration defaults preserve indexing coverage for CQRS source trees. + /// [Fact] public void AppSettingsYaml_ContainsRequiredRepoAllowlistPatterns() { @@ -17,6 +29,36 @@ public void AppSettingsYaml_ContainsRequiredRepoAllowlistPatterns() Assert.Contains("src/McpServer.Cqrs.Mvvm/**/*.cs", yaml); } + /// + /// Verifies that the marker prompt template includes the Available Capabilities section and expected project entries. + /// + /// + /// Requirement coverage: TEST-MCP-087, FR-MCP-039, TR-MCP-CTX-001. + /// Test data: templates\prompt-templates.yaml and known capability bullet strings for indexed projects. + /// This data is used to confirm marker prompt output advertises indexed libraries required for context retrieval. + /// + [Fact] + public void MarkerPromptTemplate_ContainsAvailableCapabilitiesSection() + { + var path = FindFileFromRepoRoot("templates", "prompt-templates.yaml"); + var content = File.ReadAllText(path); + + Assert.Contains("## Available Capabilities", content); + Assert.Contains("- McpServer.Cqrs (CQRS framework)", content); + Assert.Contains("- McpServer.Cqrs.Mvvm (MVVM support)", content); + Assert.Contains("- McpServer.UI.Core (Core UI logic)", content); + Assert.Contains("- McpServer.Director (Director CLI)", content); + } + + /// + /// Locates a repository file by walking upward from the test execution directory. + /// + /// Path segments from repository root to the target file. + /// Absolute path to the requested file. + /// + /// Test data: relative path segments for files under test. + /// This helper is used so tests can resolve files reliably across local and CI run directories. + /// private static string FindFileFromRepoRoot(params string[] segments) { var dir = new DirectoryInfo(AppContext.BaseDirectory); diff --git a/tests/McpServer.Support.Mcp.Tests/Ingestion/ExternalDocsIngestorTests.cs b/tests/McpServer.Support.Mcp.Tests/Ingestion/ExternalDocsIngestorTests.cs index bf61013c..66707f60 100644 --- a/tests/McpServer.Support.Mcp.Tests/Ingestion/ExternalDocsIngestorTests.cs +++ b/tests/McpServer.Support.Mcp.Tests/Ingestion/ExternalDocsIngestorTests.cs @@ -1,7 +1,8 @@ -using McpServer.Support.Mcp.Indexing; -using McpServer.Support.Mcp.Ingestion; -using Microsoft.Extensions.Logging.Abstractions; -using Xunit; +using McpServer.Support.Mcp.Indexing; +using McpServer.Support.Mcp.Ingestion; +using McpServer.Support.Mcp.Services; +using Microsoft.Extensions.Logging.Abstractions; +using Xunit; namespace McpServer.Support.Mcp.Tests.Ingestion; @@ -31,7 +32,7 @@ public async Task IngestAsync_ValidDocs_ReturnsDocumentsAndChunks() File.WriteAllText(Path.Combine(_externalDir, "tutorial.txt"), "Step 1: do something"); var options = Microsoft.Extensions.Options.Options.Create(new IngestionOptions { RepoRoot = _tempDir, ExternalDocsPath = "docs/external" }); - var sut = new ExternalDocsIngestor(new Chunker(), options, NullLogger.Instance); + var sut = new ExternalDocsIngestor(new Chunker(), options, new WorkspaceContext(), NullLogger.Instance); var results = await sut.IngestAsync().ConfigureAwait(true); @@ -55,7 +56,7 @@ public async Task IngestAsync_SkipsOversizedFiles() ExternalDocsPath = "docs/external", MaxFileSizeBytes = 1024 * 1024 }); - var sut = new ExternalDocsIngestor(new Chunker(), options, NullLogger.Instance); + var sut = new ExternalDocsIngestor(new Chunker(), options, new WorkspaceContext(), NullLogger.Instance); var results = await sut.IngestAsync().ConfigureAwait(true); @@ -70,7 +71,7 @@ public async Task IngestAsync_EmptyDirectory_ReturnsEmpty() Directory.CreateDirectory(emptyDir); var options = Microsoft.Extensions.Options.Options.Create(new IngestionOptions { RepoRoot = _tempDir, ExternalDocsPath = "empty_ext" }); - var sut = new ExternalDocsIngestor(new Chunker(), options, NullLogger.Instance); + var sut = new ExternalDocsIngestor(new Chunker(), options, new WorkspaceContext(), NullLogger.Instance); var results = await sut.IngestAsync().ConfigureAwait(true); @@ -81,7 +82,7 @@ public async Task IngestAsync_EmptyDirectory_ReturnsEmpty() public async Task IngestAsync_NonexistentDirectory_ReturnsEmpty() { var options = Microsoft.Extensions.Options.Options.Create(new IngestionOptions { RepoRoot = _tempDir, ExternalDocsPath = "nonexistent" }); - var sut = new ExternalDocsIngestor(new Chunker(), options, NullLogger.Instance); + var sut = new ExternalDocsIngestor(new Chunker(), options, new WorkspaceContext(), NullLogger.Instance); var results = await sut.IngestAsync().ConfigureAwait(true); diff --git a/tests/McpServer.Support.Mcp.Tests/Ingestion/RepoIngestorTests.cs b/tests/McpServer.Support.Mcp.Tests/Ingestion/RepoIngestorTests.cs index 7135a9d7..78d69e13 100644 --- a/tests/McpServer.Support.Mcp.Tests/Ingestion/RepoIngestorTests.cs +++ b/tests/McpServer.Support.Mcp.Tests/Ingestion/RepoIngestorTests.cs @@ -1,7 +1,8 @@ -using McpServer.Support.Mcp.Indexing; -using McpServer.Support.Mcp.Ingestion; -using Microsoft.Extensions.Logging.Abstractions; -using Xunit; +using McpServer.Support.Mcp.Indexing; +using McpServer.Support.Mcp.Ingestion; +using McpServer.Support.Mcp.Services; +using Microsoft.Extensions.Logging.Abstractions; +using Xunit; namespace McpServer.Support.Mcp.Tests.Ingestion; @@ -29,7 +30,7 @@ public async Task IngestAsync_ValidFiles_ReturnsDocumentsAndChunks() File.WriteAllText(Path.Combine(_tempDir, "code.cs"), "class Foo { }"); var options = Microsoft.Extensions.Options.Options.Create(new IngestionOptions { RepoRoot = _tempDir }); - var sut = new RepoIngestor(new Chunker(), options, NullLogger.Instance); + var sut = new RepoIngestor(new Chunker(), options, new WorkspaceContext(), NullLogger.Instance); var results = await sut.IngestAsync().ConfigureAwait(true); @@ -53,7 +54,7 @@ public async Task IngestAsync_SkipsBinObjDotfiles() File.WriteAllText(Path.Combine(_tempDir, "keep.md"), "# Keep"); var options = Microsoft.Extensions.Options.Options.Create(new IngestionOptions { RepoRoot = _tempDir }); - var sut = new RepoIngestor(new Chunker(), options, NullLogger.Instance); + var sut = new RepoIngestor(new Chunker(), options, new WorkspaceContext(), NullLogger.Instance); var results = await sut.IngestAsync().ConfigureAwait(true); @@ -69,7 +70,7 @@ public async Task IngestAsync_EmptyDirectory_ReturnsEmpty() Directory.CreateDirectory(emptyDir); var options = Microsoft.Extensions.Options.Options.Create(new IngestionOptions { RepoRoot = emptyDir }); - var sut = new RepoIngestor(new Chunker(), options, NullLogger.Instance); + var sut = new RepoIngestor(new Chunker(), options, new WorkspaceContext(), NullLogger.Instance); var results = await sut.IngestAsync().ConfigureAwait(true); @@ -82,7 +83,7 @@ public async Task IngestAsync_ContentHash_DeterministicForSameContent() File.WriteAllText(Path.Combine(_tempDir, "file.txt"), "deterministic content"); var options = Microsoft.Extensions.Options.Options.Create(new IngestionOptions { RepoRoot = _tempDir }); - var sut = new RepoIngestor(new Chunker(), options, NullLogger.Instance); + var sut = new RepoIngestor(new Chunker(), options, new WorkspaceContext(), NullLogger.Instance); var results1 = await sut.IngestAsync().ConfigureAwait(true); var results2 = await sut.IngestAsync().ConfigureAwait(true); @@ -100,7 +101,7 @@ public async Task IngestAsync_SkipsLargeFiles() File.WriteAllText(Path.Combine(_tempDir, "small.txt"), "small"); var options = Microsoft.Extensions.Options.Options.Create(new IngestionOptions { RepoRoot = _tempDir, MaxFileSizeBytes = 1024 * 1024 }); - var sut = new RepoIngestor(new Chunker(), options, NullLogger.Instance); + var sut = new RepoIngestor(new Chunker(), options, new WorkspaceContext(), NullLogger.Instance); var results = await sut.IngestAsync().ConfigureAwait(true); diff --git a/tests/McpServer.Support.Mcp.Tests/Ingestion/SessionLogFileWatcherTests.cs b/tests/McpServer.Support.Mcp.Tests/Ingestion/SessionLogFileWatcherTests.cs index 57095630..6f613298 100644 --- a/tests/McpServer.Support.Mcp.Tests/Ingestion/SessionLogFileWatcherTests.cs +++ b/tests/McpServer.Support.Mcp.Tests/Ingestion/SessionLogFileWatcherTests.cs @@ -34,10 +34,15 @@ public SessionLogFileWatcherTests() RepoRoot = _tempDir, SessionsPath = "docs/sessions" })); - services.AddSingleton(typeof(Microsoft.Extensions.Logging.ILogger<>), typeof(NullLogger<>)); - services.AddSingleton(); - services.AddScoped(); - services.AddScoped(); + services.AddSingleton(typeof(Microsoft.Extensions.Logging.ILogger<>), typeof(NullLogger<>)); + services.AddSingleton(); + services.AddScoped(); + services.AddScoped(_ => new WorkspaceContext + { + WorkspacePath = _tempDir, + SessionsPath = "docs/sessions" + }); + services.AddScoped(); _serviceProvider = services.BuildServiceProvider(); } diff --git a/tests/McpServer.Support.Mcp.Tests/Ingestion/SessionLogIngestorChunkingTests.cs b/tests/McpServer.Support.Mcp.Tests/Ingestion/SessionLogIngestorChunkingTests.cs index 5a7e4767..b2910e21 100644 --- a/tests/McpServer.Support.Mcp.Tests/Ingestion/SessionLogIngestorChunkingTests.cs +++ b/tests/McpServer.Support.Mcp.Tests/Ingestion/SessionLogIngestorChunkingTests.cs @@ -137,6 +137,6 @@ private SessionLogIngestor CreateIngestor() RepoRoot = _tempDir, SessionsPath = "docs/sessions" }); - return new SessionLogIngestor(new Chunker(), opts, _service, NullLogger.Instance); + return new SessionLogIngestor(new Chunker(), opts, new WorkspaceContext(), _service, NullLogger.Instance); } } diff --git a/tests/McpServer.Support.Mcp.Tests/Ingestion/SessionLogIngestorImportTests.cs b/tests/McpServer.Support.Mcp.Tests/Ingestion/SessionLogIngestorImportTests.cs index 796427a8..1b6a1a89 100644 --- a/tests/McpServer.Support.Mcp.Tests/Ingestion/SessionLogIngestorImportTests.cs +++ b/tests/McpServer.Support.Mcp.Tests/Ingestion/SessionLogIngestorImportTests.cs @@ -287,7 +287,7 @@ private SessionLogIngestor CreateIngestor() RepoRoot = _tempDir, SessionsPath = "docs/sessions" }); - return new SessionLogIngestor(new Chunker(), opts, _service, NullLogger.Instance); + return new SessionLogIngestor(new Chunker(), opts, new WorkspaceContext(), _service, NullLogger.Instance); } private void WriteSessionFile(string filename, UnifiedSessionLogDto dto) diff --git a/tests/McpServer.Support.Mcp.Tests/Services/FileMarkerPromptProviderTests.cs b/tests/McpServer.Support.Mcp.Tests/Services/FileMarkerPromptProviderTests.cs index 000b5fcd..076ffab1 100644 --- a/tests/McpServer.Support.Mcp.Tests/Services/FileMarkerPromptProviderTests.cs +++ b/tests/McpServer.Support.Mcp.Tests/Services/FileMarkerPromptProviderTests.cs @@ -6,25 +6,46 @@ namespace McpServer.Support.Mcp.Tests.Services; -/// Tests for . +/// +/// Tests marker prompt loading behavior for . +/// +/// +/// Requirement coverage: FR-MCP-050, TR-MCP-TPL-005. +/// Test data uses substituted template-service responses (missing template, concrete template, repeated reads) +/// to verify required-template enforcement and caching behavior. +/// public sealed class FileMarkerPromptProviderTests { private readonly IPromptTemplateService _templateService = Substitute.For(); private readonly ILogger _logger = Substitute.For>(); + /// + /// Verifies that a missing marker template causes an . + /// + /// + /// Requirement coverage: FR-MCP-050, TR-MCP-TPL-005. + /// Test data: template service returns for default-marker-prompt. + /// This data is used to validate fail-fast behavior when required external template content is unavailable. + /// [Fact] - public async Task GetGlobalPromptTemplateAsync_TemplateNotFound_ReturnsNull() + public async Task GetGlobalPromptTemplateAsync_TemplateNotFound_Throws() { _templateService.GetByIdAsync(FileMarkerPromptProvider.TemplateId, Arg.Any()) .Returns((PromptTemplate?)null); var provider = new FileMarkerPromptProvider(_templateService, _logger); - var result = await provider.GetGlobalPromptTemplateAsync(); - - Assert.Null(result); + await Assert.ThrowsAsync(() => provider.GetGlobalPromptTemplateAsync()); } + /// + /// Verifies that template content is returned when the configured marker template exists. + /// + /// + /// Requirement coverage: FR-MCP-050, TR-MCP-TPL-005. + /// Test data: a concrete with handlebars content Hello {{baseUrl}}. + /// This data is used to confirm pass-through of persisted template text used by marker rendering. + /// [Fact] public async Task GetGlobalPromptTemplateAsync_TemplateFound_ReturnsContent() { @@ -47,17 +68,34 @@ public async Task GetGlobalPromptTemplateAsync_TemplateFound_ReturnsContent() Assert.Contains("Hello {{baseUrl}}", result); } + /// + /// Verifies that marker template lookup is cached after the first successful load. + /// + /// + /// Requirement coverage: FR-MCP-050, TR-MCP-TPL-005. + /// Test data: one template payload and two provider reads. + /// This data is used to prove the provider avoids redundant template-service calls while returning stable content. + /// [Fact] public async Task GetGlobalPromptTemplateAsync_CachesResult() { + var template = new PromptTemplate + { + Id = FileMarkerPromptProvider.TemplateId, + Title = "Test", + Category = "system", + Content = "Cached Content", + Engine = "handlebars", + }; _templateService.GetByIdAsync(FileMarkerPromptProvider.TemplateId, Arg.Any()) - .Returns((PromptTemplate?)null); + .Returns(template); var provider = new FileMarkerPromptProvider(_templateService, _logger); var first = await provider.GetGlobalPromptTemplateAsync(); var second = await provider.GetGlobalPromptTemplateAsync(); + Assert.Equal("Cached Content", first); Assert.Equal(first, second); // Should only call the service once due to caching await _templateService.Received(1).GetByIdAsync(FileMarkerPromptProvider.TemplateId, Arg.Any()); diff --git a/tests/McpServer.Support.Mcp.Tests/Services/MarkerFileServiceTests.cs b/tests/McpServer.Support.Mcp.Tests/Services/MarkerFileServiceTests.cs index 54e080e0..eeb6137c 100644 --- a/tests/McpServer.Support.Mcp.Tests/Services/MarkerFileServiceTests.cs +++ b/tests/McpServer.Support.Mcp.Tests/Services/MarkerFileServiceTests.cs @@ -3,32 +3,67 @@ namespace McpServer.Support.Mcp.Tests.Services; -/// Tests for template resolution. +/// +/// Tests prompt composition, template context construction, and marker-file output behavior in . +/// +/// +/// Requirement coverage: FR-MCP-018, FR-MCP-050, TR-MCP-TPL-005. +/// Test data uses deterministic URLs, workspace DTO samples, and template strings so rendering and marker YAML output +/// can be validated without external dependencies. +/// public sealed class MarkerFileServiceTests { private const string BaseUrl = "http://localhost:7147"; + /// + /// Builds a minimal template context for prompt-rendering tests. + /// + /// The base URL inserted into template context values. + /// The API key inserted into template context values. + /// A context dictionary suitable for . + /// + /// Test data: static local URL and optional API key values. + /// This helper standardizes inputs so assertions focus on specific prompt behavior under test. + /// private static Dictionary MakeContext(string baseUrl = BaseUrl, string? apiKey = null) => MarkerFileService.BuildTemplateContext(baseUrl, apiKey, workspace: null, workspacePath: @"C:\test", workspaceName: "test"); + /// + /// Verifies that resolving a prompt with a null global template throws . + /// + /// + /// Requirement coverage: FR-MCP-050, TR-MCP-TPL-005. + /// Test data: a valid context and global template. + /// This data is used to confirm guard-clause enforcement for required global prompt content. + /// [Fact] - public void ResolvePrompt_NullGlobal_NullWorkspace_ReturnsDefault() + public void ResolvePrompt_NullGlobal_Throws() { - var result = MarkerFileService.ResolvePrompt(MakeContext(), null, null); - - Assert.Contains($"MCP Context Server at {BaseUrl}", result); - Assert.Contains($"GET {BaseUrl}/health", result); - Assert.Contains($"{BaseUrl}/mcp-transport", result); + Assert.Throws(() => MarkerFileService.ResolvePrompt(MakeContext(), null, null)); } + /// + /// Verifies that resolving a prompt with whitespace global template content throws . + /// + /// + /// Requirement coverage: FR-MCP-050, TR-MCP-TPL-005. + /// Test data: whitespace-only global template text. + /// This data is used to ensure empty marker template content is rejected the same as null input. + /// [Fact] - public void ResolvePrompt_EmptyGlobal_ReturnsDefault() + public void ResolvePrompt_EmptyGlobal_Throws() { - var result = MarkerFileService.ResolvePrompt(MakeContext(), " ", null); - - Assert.Contains($"MCP Context Server at {BaseUrl}", result); + Assert.Throws(() => MarkerFileService.ResolvePrompt(MakeContext(), " ", null)); } + /// + /// Verifies handlebars substitution for a custom global template string. + /// + /// + /// Requirement coverage: FR-MCP-050, TR-MCP-TPL-005. + /// Test data: template text containing {{baseUrl}} and deterministic . + /// This data is used to validate expected placeholder replacement in global prompt rendering. + /// [Fact] public void ResolvePrompt_CustomGlobal_ReplacesDefault() { @@ -37,32 +72,58 @@ public void ResolvePrompt_CustomGlobal_ReplacesDefault() var result = MarkerFileService.ResolvePrompt(MakeContext(), template, null); Assert.Equal($"Custom prompt for {BaseUrl} with special instructions.", result); - Assert.DoesNotContain("MCP Context Server", result); } + /// + /// Verifies that workspace-specific prompt content is appended after global prompt content. + /// + /// + /// Requirement coverage: FR-MCP-018, FR-MCP-050, TR-MCP-TPL-005. + /// Test data: simple global/workspace prompt strings. + /// This data is used to confirm marker prompts preserve both global and workspace instruction blocks. + /// [Fact] public void ResolvePrompt_WorkspaceAppends() { + var globalTemplate = "Global prompt"; var workspaceTemplate = "This workspace uses Python. Prefer pytest for testing."; - var result = MarkerFileService.ResolvePrompt(MakeContext(), null, workspaceTemplate); + var result = MarkerFileService.ResolvePrompt(MakeContext(), globalTemplate, workspaceTemplate); - // Should contain both the default prompt and the workspace prompt - Assert.Contains($"MCP Context Server at {BaseUrl}", result); - Assert.Contains("This workspace uses Python", result); + // Should contain both the global prompt and the workspace prompt + Assert.Contains(globalTemplate, result); + Assert.Contains(workspaceTemplate, result); + Assert.Contains("\n\n", result); } + /// + /// Verifies that workspace template content receives {{baseUrl}} substitution. + /// + /// + /// Requirement coverage: FR-MCP-050, TR-MCP-TPL-005. + /// Test data: workspace prompt with two {{baseUrl}} placeholders. + /// This data is used to ensure consistent replacement for multiple placeholder occurrences. + /// [Fact] public void ResolvePrompt_WorkspaceBaseUrlSubstitution() { + var globalTemplate = "Global"; var workspaceTemplate = "Dev server at {{baseUrl}}/api. Use {{baseUrl}}/docs for API docs."; - var result = MarkerFileService.ResolvePrompt(MakeContext(), null, workspaceTemplate); + var result = MarkerFileService.ResolvePrompt(MakeContext(), globalTemplate, workspaceTemplate); Assert.Contains($"Dev server at {BaseUrl}/api", result); Assert.Contains($"Use {BaseUrl}/docs for API docs", result); } + /// + /// Verifies that global and workspace prompt outputs are joined with a blank-line separator. + /// + /// + /// Requirement coverage: FR-MCP-050, TR-MCP-TPL-005. + /// Test data: global/workspace strings each containing {{baseUrl}}. + /// This data is used to assert deterministic prompt structure used in marker files. + /// [Fact] public void ResolvePrompt_BothCustom_CombinesWithNewlines() { @@ -74,69 +135,33 @@ public void ResolvePrompt_BothCustom_CombinesWithNewlines() Assert.Equal($"Global: server at {BaseUrl}\n\nWorkspace: extra config for {BaseUrl}", result); } + /// + /// Verifies that whitespace-only workspace prompts are not appended to the rendered global prompt. + /// + /// + /// Requirement coverage: FR-MCP-050, TR-MCP-TPL-005. + /// Test data: valid global prompt and whitespace-only workspace prompt. + /// This data is used to ensure marker prompt composition avoids trailing separators for empty workspace overrides. + /// [Fact] public void ResolvePrompt_EmptyWorkspace_NotAppended() { - var result = MarkerFileService.ResolvePrompt(MakeContext(), null, " "); + var global = "Global prompt"; + var result = MarkerFileService.ResolvePrompt(MakeContext(), global, " "); - // Should be the default prompt only, no trailing separator + // Should be the global prompt only, no trailing separator Assert.DoesNotContain("\n\n ", result); - Assert.Contains($"MCP Context Server at {BaseUrl}", result); - } - - [Fact] - public void DefaultPromptTemplate_ContainsBaseUrlPlaceholder() - { - Assert.Contains("{{baseUrl}}", MarkerFileService.DefaultPromptTemplate); - } - - [Fact] - public void DefaultPromptTemplate_ContainsAllCapabilitySections() - { - var template = MarkerFileService.DefaultPromptTemplate; - Assert.Contains("## Rules", template); - Assert.Contains("## Naming Conventions", template); - Assert.Contains("## Where Things Live", template); - Assert.Contains("## Context Loading by Task Type", template); - Assert.Contains("## Protocols", template); - } - - [Fact] - public void DefaultPromptTemplate_ContainsNamingConventionExamples() - { - var template = MarkerFileService.DefaultPromptTemplate; - Assert.Contains("^[A-Z]+-[A-Z0-9]+-\\d{3}$", template); - Assert.Contains("PLAN-NAMINGCONVENTIONS-001", template); - Assert.Contains("Copilot-20260304T113901Z-namingconv", template); - Assert.Contains("req-20260304T113901Z-plan-namingconventions-001", template); - } - - [Fact] - public void DefaultPromptTemplate_ContainsContextLoadingReferences() - { - var template = MarkerFileService.DefaultPromptTemplate; - Assert.Contains("docs/context/", template); - Assert.Contains("session-log-schema.md", template); - Assert.Contains("todo-schema.md", template); - } - - [Fact] - public void DefaultPromptTemplate_ContainsWorkspace() - { - var template = MarkerFileService.DefaultPromptTemplate; - Assert.Contains("## Workspace", template); - Assert.Contains("{{workspace.Name}}", template); - } - - [Fact] - public void DefaultPromptTemplate_ContainsAuthSection() - { - var template = MarkerFileService.DefaultPromptTemplate; - Assert.Contains("## Authentication", template); - Assert.Contains("{{apiKey}}", template); - Assert.Contains("X-Api-Key", template); + Assert.Equal(global, result); } + /// + /// Verifies that template context includes workspace DTO properties when a workspace is supplied. + /// + /// + /// Requirement coverage: FR-MCP-018, FR-MCP-050. + /// Test data: populated with explicit values for identity, paths, and flags. + /// This data is used to validate serialized workspace context consumed by marker template rendering. + /// [Fact] public void BuildTemplateContext_WithWorkspaceDto_IncludesAllProperties() { @@ -153,9 +178,9 @@ public void BuildTemplateContext_WithWorkspaceDto_IncludesAllProperties() DateTimeModified = new DateTime(2025, 6, 1, 0, 0, 0, DateTimeKind.Utc), RunAs = "admin", PromptTemplate = "custom template", - StatusPrompt = TodoPromptDefaults.StatusPrompt, - ImplementPrompt = TodoPromptDefaults.ImplementPrompt, - PlanPrompt = TodoPromptDefaults.PlanPrompt, + StatusPrompt = string.Empty, + ImplementPrompt = string.Empty, + PlanPrompt = string.Empty, }; var ctx = MarkerFileService.BuildTemplateContext("http://localhost:7200", "tok123", ws, ws.WorkspacePath, ws.Name); @@ -168,6 +193,14 @@ public void BuildTemplateContext_WithWorkspaceDto_IncludesAllProperties() Assert.Equal("cloudflare", wsDict["TunnelProvider"]); } + /// + /// Verifies that template context falls back to provided workspace name/path when workspace DTO is null. + /// + /// + /// Requirement coverage: FR-MCP-018, FR-MCP-050. + /// Test data: null workspace DTO with fallback name/path values. + /// This data is used to ensure marker generation remains stable when workspace metadata is partially unavailable. + /// [Fact] public void BuildTemplateContext_NullWorkspace_UsesFallbacks() { @@ -180,6 +213,14 @@ public void BuildTemplateContext_NullWorkspace_UsesFallbacks() Assert.Equal(false, wsDict["IsPrimary"]); } + /// + /// Verifies handlebars rendering can access workspace properties from the generated template context. + /// + /// + /// Requirement coverage: FR-MCP-050, TR-MCP-TPL-005. + /// Test data: workspace DTO with Name = "TestProj" and global template referencing {{workspace.Name}}. + /// This data is used to confirm nested context resolution during marker prompt rendering. + /// [Fact] public void ResolvePrompt_HandlebarsRendersWorkspaceProperties() { @@ -196,18 +237,26 @@ public void ResolvePrompt_HandlebarsRendersWorkspaceProperties() DateTimeModified = DateTime.UtcNow, RunAs = null, PromptTemplate = null, - StatusPrompt = TodoPromptDefaults.StatusPrompt, - ImplementPrompt = TodoPromptDefaults.ImplementPrompt, - PlanPrompt = TodoPromptDefaults.PlanPrompt, + StatusPrompt = string.Empty, + ImplementPrompt = string.Empty, + PlanPrompt = string.Empty, }; var ctx = MarkerFileService.BuildTemplateContext(BaseUrl, "mytoken", ws, ws.WorkspacePath, ws.Name); - var result = MarkerFileService.ResolvePrompt(ctx, null, null); + var global = "Global for {{workspace.Name}}"; + var result = MarkerFileService.ResolvePrompt(ctx, global, null); - Assert.Contains("TestProj", result); - Assert.Contains("mytoken", result); + Assert.Contains("Global for TestProj", result); } + /// + /// Verifies marker YAML output includes UTC timestamps and diagnostics endpoint references. + /// + /// + /// Requirement coverage: FR-MCP-018. + /// Test data: temp workspace directory, fixed UTC startup timestamp, and explicit global prompt text. + /// This data is used to assert deterministic marker-file metadata and endpoint wiring in generated output. + /// [Fact] public async Task WriteMarkerAsync_EmitsUtcTimestampsAndDiagnosticsEndpoints() { @@ -217,16 +266,19 @@ public async Task WriteMarkerAsync_EmitsUtcTimestampsAndDiagnosticsEndpoints() try { var serverStartedAtUtc = new DateTimeOffset(2026, 2, 26, 8, 30, 0, TimeSpan.Zero); + var globalPrompt = "Test Global Prompt"; await MarkerFileService.WriteMarkerAsync( workspacePath: tempDir, port: 7147, workspaceName: "test", + globalPromptTemplate: globalPrompt, serverStartedAtUtc: serverStartedAtUtc); var markerPath = Path.Combine(tempDir, MarkerFileService.MarkerFileName); var yaml = await File.ReadAllTextAsync(markerPath); + Assert.Contains(globalPrompt, yaml); Assert.Contains("markerWrittenAtUtc:", yaml); Assert.Contains($"serverStartedAtUtc: {serverStartedAtUtc:o}", yaml); Assert.Contains("serverStartupUtc: /server-startup-utc", yaml); @@ -236,7 +288,8 @@ await MarkerFileService.WriteMarkerAsync( { try { - Directory.Delete(tempDir, recursive: true); + if (Directory.Exists(tempDir)) + Directory.Delete(tempDir, recursive: true); } catch { diff --git a/tests/McpServer.Support.Mcp.Tests/Services/SessionLogServiceTests.cs b/tests/McpServer.Support.Mcp.Tests/Services/SessionLogServiceTests.cs index 2fe3bf05..c2058c7d 100644 --- a/tests/McpServer.Support.Mcp.Tests/Services/SessionLogServiceTests.cs +++ b/tests/McpServer.Support.Mcp.Tests/Services/SessionLogServiceTests.cs @@ -126,7 +126,7 @@ public async Task WhenSubmittingWithTagsAndContextThenMultiValuedEntitiesArePers var id = await _sut.SubmitAsync(dto).ConfigureAwait(true); - var entry = await _db.SessionLogEntries + var entry = await _db.SessionLogTurns .Include(e => e.Tags) .Include(e => e.ContextItems) .FirstAsync(e => e.SessionLogId == id) @@ -314,7 +314,7 @@ public async Task WhenUpsertingExistingEntryThenEntryIsUpdatedInPlace() var dto1 = CreateTestDto("Cursor", BuildSessionId("Cursor", "keyed-update")); var id = await _sut.SubmitAsync(dto1).ConfigureAwait(true); - var originalEntryId = (await _db.SessionLogEntries.FirstAsync(e => e.SessionLogId == id).ConfigureAwait(true)).Id; + var originalEntryId = (await _db.SessionLogTurns.FirstAsync(e => e.SessionLogId == id).ConfigureAwait(true)).Id; // Submit with same RequestId but different content var dto2 = CreateTestDto("Cursor", BuildSessionId("Cursor", "keyed-update")); @@ -322,7 +322,7 @@ public async Task WhenUpsertingExistingEntryThenEntryIsUpdatedInPlace() dto2.Entries[0].Response = "Updated response"; await _sut.SubmitAsync(dto2).ConfigureAwait(true); - var updatedEntry = await _db.SessionLogEntries.FirstAsync(e => e.SessionLogId == id).ConfigureAwait(true); + var updatedEntry = await _db.SessionLogTurns.FirstAsync(e => e.SessionLogId == id).ConfigureAwait(true); Assert.Equal(originalEntryId, updatedEntry.Id); // Same row, updated in place Assert.Equal("Updated query text", updatedEntry.QueryText); Assert.Equal("Updated response", updatedEntry.Response); @@ -340,15 +340,15 @@ public async Task WhenUpsertingWithRemovedEntryThenStaleEntryIsDeleted() }); dto1.EntryCount = 2; var id = await _sut.SubmitAsync(dto1).ConfigureAwait(true); - Assert.Equal(2, await _db.SessionLogEntries.CountAsync(e => e.SessionLogId == id).ConfigureAwait(true)); + Assert.Equal(2, await _db.SessionLogTurns.CountAsync(e => e.SessionLogId == id).ConfigureAwait(true)); // Submit with only the first entry — second should be removed var dto2 = CreateTestDto("Cursor", BuildSessionId("Cursor", "keyed-remove")); dto2.EntryCount = 1; await _sut.SubmitAsync(dto2).ConfigureAwait(true); - Assert.Equal(1, await _db.SessionLogEntries.CountAsync(e => e.SessionLogId == id).ConfigureAwait(true)); - var remaining = await _db.SessionLogEntries.FirstAsync(e => e.SessionLogId == id).ConfigureAwait(true); + Assert.Equal(1, await _db.SessionLogTurns.CountAsync(e => e.SessionLogId == id).ConfigureAwait(true)); + var remaining = await _db.SessionLogTurns.FirstAsync(e => e.SessionLogId == id).ConfigureAwait(true); Assert.Equal("req-20260211T100100Z-entry-001", remaining.RequestId); } @@ -367,7 +367,7 @@ public async Task WhenAppendingDialogItemsThenItemsAreAdded() var count = await _sut.AppendProcessingDialogAsync("Cursor", BuildSessionId("Cursor", "dialog-append"), "req-20260211T100100Z-entry-001", items).ConfigureAwait(true); Assert.Equal(2, count); - var entry = await _db.SessionLogEntries + var entry = await _db.SessionLogTurns .Include(e => e.ProcessingDialog) .FirstAsync(e => e.RequestId == "req-20260211T100100Z-entry-001") .ConfigureAwait(true); @@ -397,7 +397,7 @@ await _sut.AppendProcessingDialogAsync("Cursor", BuildSessionId("Cursor", "dialo [new ProcessingDialogItemDto { Role = "model", Content = "Second batch" }]).ConfigureAwait(true); Assert.Equal(2, count); - var entry = await _db.SessionLogEntries + var entry = await _db.SessionLogTurns .Include(e => e.ProcessingDialog) .FirstAsync(e => e.RequestId == "req-20260211T100100Z-entry-001") .ConfigureAwait(true); @@ -471,3 +471,4 @@ private static string BuildSessionId(string agent, string suffix) return $"{agent}-20260304T113901Z-{normalized}"; } } + diff --git a/tests/McpServer.Todo.Validation/AtomicTests/CreateTodoTests.cs b/tests/McpServer.Todo.Validation/AtomicTests/CreateTodoTests.cs index 630e5b11..ea535e9a 100644 --- a/tests/McpServer.Todo.Validation/AtomicTests/CreateTodoTests.cs +++ b/tests/McpServer.Todo.Validation/AtomicTests/CreateTodoTests.cs @@ -12,19 +12,51 @@ public sealed class CreateTodoTests : IAsyncLifetime private readonly TodoEndpointFixture _fixture; private readonly string _testId; + /// + /// Initializes a new instance of CreateTodoTests. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// public CreateTodoTests(TodoEndpointFixture fixture) { _fixture = fixture; _testId = TodoEndpointFixture.GenerateTestId(); } + /// + /// Initializes test state for validation execution. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// public ValueTask InitializeAsync() => ValueTask.CompletedTask; + /// + /// Releases resources used by validation tests. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// public async ValueTask DisposeAsync() { await _fixture.Client.DeleteAsync($"{TodoEndpointFixture.TodoRoute}/{Uri.EscapeDataString(_testId)}"); } + /// + /// Validates the Create_ValidRequest_Returns201 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// [Fact] public async Task Create_ValidRequest_Returns201() { @@ -58,6 +90,14 @@ public async Task Create_ValidRequest_Returns201() Assert.Contains(Uri.EscapeDataString(_testId), response.Headers.Location.ToString()); } + /// + /// Validates the Create_DuplicateId_Returns409 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// [Fact] public async Task Create_DuplicateId_Returns409() { @@ -73,6 +113,14 @@ public async Task Create_DuplicateId_Returns409() Assert.False(result.Success); } + /// + /// Validates the Create_NullBody_Returns400 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// [Fact] public async Task Create_NullBody_Returns400() { @@ -87,6 +135,14 @@ public async Task Create_NullBody_Returns400() $"Expected 400/422 but got {(int)response.StatusCode}."); } + /// + /// Validates the Create_WithImplementationTasks_Returns201 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// [Fact] public async Task Create_WithImplementationTasks_Returns201() { diff --git a/tests/McpServer.Todo.Validation/AtomicTests/DeleteTodoTests.cs b/tests/McpServer.Todo.Validation/AtomicTests/DeleteTodoTests.cs index bdb8603f..952f6e6e 100644 --- a/tests/McpServer.Todo.Validation/AtomicTests/DeleteTodoTests.cs +++ b/tests/McpServer.Todo.Validation/AtomicTests/DeleteTodoTests.cs @@ -11,8 +11,24 @@ public sealed class DeleteTodoTests { private readonly TodoEndpointFixture _fixture; + /// + /// Initializes a new instance of DeleteTodoTests. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// public DeleteTodoTests(TodoEndpointFixture fixture) => _fixture = fixture; + /// + /// Validates the Delete_ExistingItem_Returns200 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// [Fact] public async Task Delete_ExistingItem_Returns200() { @@ -36,6 +52,14 @@ public async Task Delete_ExistingItem_Returns200() Assert.Equal(HttpStatusCode.NotFound, getResponse.StatusCode); } + /// + /// Validates the Delete_NonExistentItem_Returns404 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// [Fact] public async Task Delete_NonExistentItem_Returns404() { diff --git a/tests/McpServer.Todo.Validation/AtomicTests/GetTodoTests.cs b/tests/McpServer.Todo.Validation/AtomicTests/GetTodoTests.cs index 3726fda1..02b922e2 100644 --- a/tests/McpServer.Todo.Validation/AtomicTests/GetTodoTests.cs +++ b/tests/McpServer.Todo.Validation/AtomicTests/GetTodoTests.cs @@ -12,12 +12,28 @@ public sealed class GetTodoTests : IAsyncLifetime private readonly TodoEndpointFixture _fixture; private readonly string _testId; + /// + /// Initializes a new instance of GetTodoTests. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// public GetTodoTests(TodoEndpointFixture fixture) { _fixture = fixture; _testId = TodoEndpointFixture.GenerateTestId(); } + /// + /// Initializes test state for validation execution. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// public async ValueTask InitializeAsync() { var body = new { Id = _testId, Title = "AuditGetTest", Section = "mvp-support", Priority = "medium" }; @@ -25,11 +41,27 @@ public async ValueTask InitializeAsync() Assert.Equal(HttpStatusCode.Created, response.StatusCode); } + /// + /// Releases resources used by validation tests. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// public async ValueTask DisposeAsync() { await _fixture.Client.DeleteAsync($"{TodoEndpointFixture.TodoRoute}/{Uri.EscapeDataString(_testId)}"); } + /// + /// Validates the Get_ValidId_Returns200WithItem scenario. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// [Fact] public async Task Get_ValidId_Returns200WithItem() { @@ -47,6 +79,14 @@ public async Task Get_ValidId_Returns200WithItem() Assert.False(item.Done); } + /// + /// Validates the Get_NonExistentId_Returns404 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// [Fact] public async Task Get_NonExistentId_Returns404() { diff --git a/tests/McpServer.Todo.Validation/AtomicTests/QueryTodoTests.cs b/tests/McpServer.Todo.Validation/AtomicTests/QueryTodoTests.cs index 658fd379..7d39d296 100644 --- a/tests/McpServer.Todo.Validation/AtomicTests/QueryTodoTests.cs +++ b/tests/McpServer.Todo.Validation/AtomicTests/QueryTodoTests.cs @@ -11,8 +11,24 @@ public sealed class QueryTodoTests { private readonly TodoEndpointFixture _fixture; + /// + /// Initializes a new instance of QueryTodoTests. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// public QueryTodoTests(TodoEndpointFixture fixture) => _fixture = fixture; + /// + /// Validates the Query_NoFilters_Returns200WithValidStructure scenario. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// [Fact] public async Task Query_NoFilters_Returns200WithValidStructure() { @@ -27,6 +43,14 @@ public async Task Query_NoFilters_Returns200WithValidStructure() Assert.Equal(result.Items.Count, result.TotalCount); } + /// + /// Validates the Query_ResponseIsJson scenario. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// [Fact] public async Task Query_ResponseIsJson() { @@ -36,6 +60,14 @@ public async Task Query_ResponseIsJson() Assert.Equal("application/json", response.Content.Headers.ContentType?.MediaType); } + /// + /// Validates the Query_ByPriority_Returns200 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// [Fact] public async Task Query_ByPriority_Returns200() { @@ -51,6 +83,14 @@ public async Task Query_ByPriority_Returns200() } } + /// + /// Validates the Query_ByDoneStatus_Returns200 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// [Fact] public async Task Query_ByDoneStatus_Returns200() { @@ -65,6 +105,14 @@ public async Task Query_ByDoneStatus_Returns200() } } + /// + /// Validates the Query_ByKeyword_Returns200 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// [Fact] public async Task Query_ByKeyword_Returns200() { @@ -77,6 +125,14 @@ public async Task Query_ByKeyword_Returns200() Assert.NotNull(result.Items); } + /// + /// Validates the Query_BySection_Returns200 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// [Fact] public async Task Query_BySection_Returns200() { @@ -91,6 +147,14 @@ public async Task Query_BySection_Returns200() } } + /// + /// Validates the Query_ById_Returns200 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// [Fact] public async Task Query_ById_Returns200() { @@ -110,6 +174,14 @@ public async Task Query_ById_Returns200() Assert.Contains(result.Items, i => i.Id == knownId); } + /// + /// Validates the Query_NonMatchingKeyword_ReturnsEmptyList scenario. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// [Fact] public async Task Query_NonMatchingKeyword_ReturnsEmptyList() { diff --git a/tests/McpServer.Todo.Validation/AtomicTests/RequirementsTodoTests.cs b/tests/McpServer.Todo.Validation/AtomicTests/RequirementsTodoTests.cs index 03760b61..955d274e 100644 --- a/tests/McpServer.Todo.Validation/AtomicTests/RequirementsTodoTests.cs +++ b/tests/McpServer.Todo.Validation/AtomicTests/RequirementsTodoTests.cs @@ -12,12 +12,28 @@ public sealed class RequirementsTodoTests : IAsyncLifetime private readonly TodoEndpointFixture _fixture; private readonly string _testId; + /// + /// Initializes a new instance of RequirementsTodoTests. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// public RequirementsTodoTests(TodoEndpointFixture fixture) { _fixture = fixture; _testId = TodoEndpointFixture.GenerateTestId(); } + /// + /// Initializes test state for validation execution. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// public async ValueTask InitializeAsync() { var body = new { Id = _testId, Title = "AuditRequirementsTest", Section = "mvp-support", Priority = "medium" }; @@ -25,11 +41,27 @@ public async ValueTask InitializeAsync() Assert.Equal(HttpStatusCode.Created, response.StatusCode); } + /// + /// Releases resources used by validation tests. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// public async ValueTask DisposeAsync() { await _fixture.Client.DeleteAsync($"{TodoEndpointFixture.TodoRoute}/{Uri.EscapeDataString(_testId)}"); } + /// + /// Validates the Requirements_RegisteredItem_ReturnsResult scenario. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// [Fact] public async Task Requirements_RegisteredItem_ReturnsResult() { @@ -56,6 +88,14 @@ public async Task Requirements_RegisteredItem_ReturnsResult() } } + /// + /// Validates the Requirements_NonExistentItem_Returns422 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// [Fact] public async Task Requirements_NonExistentItem_Returns422() { diff --git a/tests/McpServer.Todo.Validation/AtomicTests/UpdateTodoTests.cs b/tests/McpServer.Todo.Validation/AtomicTests/UpdateTodoTests.cs index 3bd324fd..8af132d5 100644 --- a/tests/McpServer.Todo.Validation/AtomicTests/UpdateTodoTests.cs +++ b/tests/McpServer.Todo.Validation/AtomicTests/UpdateTodoTests.cs @@ -12,12 +12,28 @@ public sealed class UpdateTodoTests : IAsyncLifetime private readonly TodoEndpointFixture _fixture; private readonly string _testId; + /// + /// Initializes a new instance of UpdateTodoTests. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// public UpdateTodoTests(TodoEndpointFixture fixture) { _fixture = fixture; _testId = TodoEndpointFixture.GenerateTestId(); } + /// + /// Initializes test state for validation execution. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// public async ValueTask InitializeAsync() { var body = new { Id = _testId, Title = "AuditUpdateOriginal", Section = "mvp-support", Priority = "low" }; @@ -25,11 +41,27 @@ public async ValueTask InitializeAsync() Assert.Equal(HttpStatusCode.Created, response.StatusCode); } + /// + /// Releases resources used by validation tests. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// public async ValueTask DisposeAsync() { await _fixture.Client.DeleteAsync($"{TodoEndpointFixture.TodoRoute}/{Uri.EscapeDataString(_testId)}"); } + /// + /// Validates the Update_ChangeTitle_Returns200 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// [Fact] public async Task Update_ChangeTitle_Returns200() { @@ -46,6 +78,14 @@ public async Task Update_ChangeTitle_Returns200() Assert.Equal("AuditUpdateRenamed", result.Item.Title); } + /// + /// Validates the Update_ToggleDone_Returns200 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// [Fact] public async Task Update_ToggleDone_Returns200() { @@ -62,6 +102,14 @@ public async Task Update_ToggleDone_Returns200() Assert.True(result.Item.Done, "Item should now be marked done."); } + /// + /// Validates the Update_ChangePriority_Returns200 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// [Fact] public async Task Update_ChangePriority_Returns200() { @@ -78,6 +126,14 @@ public async Task Update_ChangePriority_Returns200() Assert.Equal("high", result.Item.Priority); } + /// + /// Validates the Update_NonExistentId_Returns404 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// [Fact] public async Task Update_NonExistentId_Returns404() { @@ -89,6 +145,14 @@ public async Task Update_NonExistentId_Returns404() Assert.Equal(HttpStatusCode.NotFound, response.StatusCode); } + /// + /// Validates the Update_NullBody_Returns400 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// [Fact] public async Task Update_NullBody_Returns400() { diff --git a/tests/McpServer.Todo.Validation/ErrorTests/TodoErrorTests.cs b/tests/McpServer.Todo.Validation/ErrorTests/TodoErrorTests.cs index 9b0f8059..24c5548e 100644 --- a/tests/McpServer.Todo.Validation/ErrorTests/TodoErrorTests.cs +++ b/tests/McpServer.Todo.Validation/ErrorTests/TodoErrorTests.cs @@ -15,6 +15,14 @@ public sealed class TodoErrorTests private readonly TodoEndpointFixture _fixture; private readonly ITestOutputHelper _output; + /// + /// Initializes a new instance of TodoErrorTests. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// public TodoErrorTests(TodoEndpointFixture fixture, ITestOutputHelper output) { _fixture = fixture; @@ -23,6 +31,14 @@ public TodoErrorTests(TodoEndpointFixture fixture, ITestOutputHelper output) // ── Missing resource tests ─────────────────────────────────────────── + /// + /// Validates the Get_NonExistent_Returns404 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// [Fact] public async Task Get_NonExistent_Returns404() { @@ -32,6 +48,14 @@ public async Task Get_NonExistent_Returns404() Assert.Equal(HttpStatusCode.NotFound, response.StatusCode); } + /// + /// Validates the Update_NonExistent_Returns404 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// [Fact] public async Task Update_NonExistent_Returns404() { @@ -42,6 +66,14 @@ public async Task Update_NonExistent_Returns404() Assert.Equal(HttpStatusCode.NotFound, response.StatusCode); } + /// + /// Validates the Delete_NonExistent_Returns404 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// [Fact] public async Task Delete_NonExistent_Returns404() { @@ -53,6 +85,14 @@ public async Task Delete_NonExistent_Returns404() // ── Duplicate create test ──────────────────────────────────────────── + /// + /// Validates the Create_Duplicate_Returns409 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// [Fact] public async Task Create_Duplicate_Returns409() { @@ -80,6 +120,14 @@ public async Task Create_Duplicate_Returns409() // ── Missing/empty body tests ───────────────────────────────────────── + /// + /// Validates the Create_EmptyBody_ReturnsBadRequest scenario. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// [Fact] public async Task Create_EmptyBody_ReturnsBadRequest() { @@ -93,6 +141,14 @@ public async Task Create_EmptyBody_ReturnsBadRequest() $"Expected 400/422 but got {(int)response.StatusCode}."); } + /// + /// Validates the Update_NullBody_Returns400OrUnsupportedMedia scenario. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// [Fact] public async Task Update_NullBody_Returns400OrUnsupportedMedia() { @@ -110,6 +166,14 @@ public async Task Update_NullBody_Returns400OrUnsupportedMedia() // ── Method not allowed ─────────────────────────────────────────────── + /// + /// Validates the Patch_NotSupported_Returns405 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// [Fact] public async Task Patch_NotSupported_Returns405() { @@ -124,6 +188,14 @@ public async Task Patch_NotSupported_Returns405() // ── Query with invalid filter combinations (should still return 200) ─ + /// + /// Validates the Query_InvalidPriority_Returns200EmptyOrAll scenario. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// [Fact] public async Task Query_InvalidPriority_Returns200EmptyOrAll() { @@ -136,6 +208,14 @@ public async Task Query_InvalidPriority_Returns200EmptyOrAll() Assert.NotNull(result); } + /// + /// Validates the Query_MultipleFilters_Returns200 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// [Fact] public async Task Query_MultipleFilters_Returns200() { diff --git a/tests/McpServer.Todo.Validation/Models/TodoModels.cs b/tests/McpServer.Todo.Validation/Models/TodoModels.cs index 17155408..ab44ff49 100644 --- a/tests/McpServer.Todo.Validation/Models/TodoModels.cs +++ b/tests/McpServer.Todo.Validation/Models/TodoModels.cs @@ -3,60 +3,153 @@ namespace McpServer.Todo.Validation.Models; /// A flattened TODO item with section and priority context. public sealed class TodoFlatItem { + /// + /// Gets or sets Id for validation payload/state handling. + /// public string Id { get; set; } = string.Empty; + /// + /// Gets or sets Title for validation payload/state handling. + /// public string Title { get; set; } = string.Empty; + /// + /// Gets or sets Section for validation payload/state handling. + /// public string Section { get; set; } = string.Empty; + /// + /// Gets or sets Priority for validation payload/state handling. + /// public string Priority { get; set; } = string.Empty; + /// + /// Gets or sets Done for validation payload/state handling. + /// public bool Done { get; set; } + /// + /// Gets or sets Estimate for validation payload/state handling. + /// public string? Estimate { get; set; } + /// + /// Gets or sets Note for validation payload/state handling. + /// public string? Note { get; set; } + /// + /// Gets or sets Description for validation payload/state handling. + /// public List? Description { get; set; } + /// + /// Gets or sets TechnicalDetails for validation payload/state handling. + /// public List? TechnicalDetails { get; set; } + /// + /// Gets or sets ImplementationTasks for validation payload/state handling. + /// public List? ImplementationTasks { get; set; } + /// + /// Gets or sets CompletedDate for validation payload/state handling. + /// public string? CompletedDate { get; set; } + /// + /// Gets or sets DoneSummary for validation payload/state handling. + /// public string? DoneSummary { get; set; } + /// + /// Gets or sets Remaining for validation payload/state handling. + /// public string? Remaining { get; set; } + /// + /// Gets or sets PriorityNote for validation payload/state handling. + /// public string? PriorityNote { get; set; } + /// + /// Gets or sets Reference for validation payload/state handling. + /// public string? Reference { get; set; } + /// + /// Gets or sets DependsOn for validation payload/state handling. + /// public List? DependsOn { get; set; } + /// + /// Gets or sets FunctionalRequirements for validation payload/state handling. + /// public List? FunctionalRequirements { get; set; } + /// + /// Gets or sets TechnicalRequirements for validation payload/state handling. + /// public List? TechnicalRequirements { get; set; } } /// Flattened implementation task. public sealed class TodoFlatTask { + /// + /// Gets or sets Task for validation payload/state handling. + /// public string Task { get; set; } = string.Empty; + /// + /// Gets or sets Done for validation payload/state handling. + /// public bool Done { get; set; } } /// Result of a TODO query. public sealed class TodoQueryResult { + /// + /// Gets or sets Items for validation payload/state handling. + /// public List Items { get; set; } = []; + /// + /// Gets or sets TotalCount for validation payload/state handling. + /// public int TotalCount { get; set; } } /// Result of a TODO mutation (create/update/delete). public sealed class TodoMutationResult { + /// + /// Gets or sets Success for validation payload/state handling. + /// public bool Success { get; set; } + /// + /// Gets or sets Error for validation payload/state handling. + /// public string? Error { get; set; } + /// + /// Gets or sets Item for validation payload/state handling. + /// public TodoFlatItem? Item { get; set; } } /// Result of a requirements analysis. public sealed class RequirementsAnalysisResult { + /// + /// Gets or sets Success for validation payload/state handling. + /// public bool Success { get; set; } + /// + /// Gets or sets FunctionalRequirements for validation payload/state handling. + /// public List? FunctionalRequirements { get; set; } + /// + /// Gets or sets TechnicalRequirements for validation payload/state handling. + /// public List? TechnicalRequirements { get; set; } + /// + /// Gets or sets Error for validation payload/state handling. + /// public string? Error { get; set; } + /// + /// Gets or sets CopilotResponse for validation payload/state handling. + /// public string? CopilotResponse { get; set; } } /// Error response shape. public sealed class ErrorResponse { + /// + /// Gets or sets Error for validation payload/state handling. + /// public string? Error { get; set; } } diff --git a/tests/McpServer.Todo.Validation/SequenceTests/TodoLifecycleSequenceTests.cs b/tests/McpServer.Todo.Validation/SequenceTests/TodoLifecycleSequenceTests.cs index 1c0293fb..ef131882 100644 --- a/tests/McpServer.Todo.Validation/SequenceTests/TodoLifecycleSequenceTests.cs +++ b/tests/McpServer.Todo.Validation/SequenceTests/TodoLifecycleSequenceTests.cs @@ -15,12 +15,28 @@ public sealed class TodoLifecycleSequenceTests private readonly TodoEndpointFixture _fixture; private readonly ITestOutputHelper _output; + /// + /// Initializes a new instance of TodoLifecycleSequenceTests. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// public TodoLifecycleSequenceTests(TodoEndpointFixture fixture, ITestOutputHelper output) { _fixture = fixture; _output = output; } + /// + /// Validates the FullLifecycle_CreateThroughDelete scenario. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// [Fact] public async Task FullLifecycle_CreateThroughDelete() { diff --git a/tests/McpServer.Todo.Validation/TodoEndpointFixture.cs b/tests/McpServer.Todo.Validation/TodoEndpointFixture.cs index 33d8dd72..1435b170 100644 --- a/tests/McpServer.Todo.Validation/TodoEndpointFixture.cs +++ b/tests/McpServer.Todo.Validation/TodoEndpointFixture.cs @@ -17,6 +17,14 @@ public sealed class TodoEndpointFixture : IDisposable /// Pre-configured HTTP client targeting the live service. public HttpClient Client { get; } + /// + /// Initializes a new instance of TodoEndpointFixture. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// public TodoEndpointFixture() { Client = new HttpClient { BaseAddress = new Uri(BaseUrl) }; @@ -30,6 +38,14 @@ public static string GenerateTestId() return $"AUDIT-{suffix}"; } + /// + /// Releases resources used by validation tests. + /// + /// + /// Requirement coverage: TEST-MCP-002, TEST-MCP-074, FR-MCP-002, TR-MCP-TODO-002. + /// Test data: Generated TODO IDs and endpoint payloads for create/update/query/error combinations. + /// Data rationale: These inputs verify TODO endpoint contract stability, mutation behavior, and validation/error handling paths. + /// public void Dispose() => Client.Dispose(); } diff --git a/tests/McpServer.ToolRegistry.Validation/AtomicTests/BucketTests.cs b/tests/McpServer.ToolRegistry.Validation/AtomicTests/BucketTests.cs index c054d13c..0ddb24a8 100644 --- a/tests/McpServer.ToolRegistry.Validation/AtomicTests/BucketTests.cs +++ b/tests/McpServer.ToolRegistry.Validation/AtomicTests/BucketTests.cs @@ -10,10 +10,26 @@ namespace McpServer.ToolRegistry.Validation.AtomicTests; public sealed class BucketTests { private readonly ToolRegistryFixture _f; + /// + /// Initializes a new instance of BucketTests. + /// + /// + /// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. + /// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. + /// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. + /// public BucketTests(ToolRegistryFixture f) => _f = f; // ── List Buckets ───────────────────────────────────────────────────── + /// + /// Validates the ListBuckets_Returns200WithValidStructure scenario. + /// + /// + /// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. + /// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. + /// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. + /// [Fact] public async Task ListBuckets_Returns200WithValidStructure() { @@ -27,6 +43,14 @@ public async Task ListBuckets_Returns200WithValidStructure() // ── Add Bucket ─────────────────────────────────────────────────────── + /// + /// Validates the AddBucket_ValidRequest_Returns201 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. + /// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. + /// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. + /// [Fact] public async Task AddBucket_ValidRequest_Returns201() { @@ -48,6 +72,14 @@ public async Task AddBucket_ValidRequest_Returns201() await _f.Client.DeleteAsync($"{ToolRegistryFixture.BucketRoute}/{name}"); } + /// + /// Validates the AddBucket_Duplicate_Returns409 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. + /// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. + /// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. + /// [Fact] public async Task AddBucket_Duplicate_Returns409() { @@ -69,6 +101,14 @@ public async Task AddBucket_Duplicate_Returns409() // ── Remove Bucket ──────────────────────────────────────────────────── + /// + /// Validates the RemoveBucket_Existing_Returns200 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. + /// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. + /// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. + /// [Fact] public async Task RemoveBucket_Existing_Returns200() { @@ -83,6 +123,14 @@ public async Task RemoveBucket_Existing_Returns200() Assert.True(res.Success); } + /// + /// Validates the RemoveBucket_NonExistent_Returns404 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. + /// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. + /// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. + /// [Fact] public async Task RemoveBucket_NonExistent_Returns404() { @@ -92,6 +140,14 @@ public async Task RemoveBucket_NonExistent_Returns404() // ── Browse Bucket ──────────────────────────────────────────────────── + /// + /// Validates the BrowseBucket_NonExistent_Returns404 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. + /// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. + /// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. + /// [Fact] public async Task BrowseBucket_NonExistent_Returns404() { @@ -99,6 +155,14 @@ public async Task BrowseBucket_NonExistent_Returns404() Assert.Equal(HttpStatusCode.NotFound, r.StatusCode); } + /// + /// Validates the BrowseBucket_Existing_ReturnsResult scenario. + /// + /// + /// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. + /// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. + /// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. + /// [Fact] public async Task BrowseBucket_Existing_ReturnsResult() { @@ -122,6 +186,14 @@ public async Task BrowseBucket_Existing_ReturnsResult() // ── Install from Bucket ────────────────────────────────────────────── + /// + /// Validates the InstallFromBucket_NonExistentBucket_Returns404 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. + /// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. + /// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. + /// [Fact] public async Task InstallFromBucket_NonExistentBucket_Returns404() { @@ -132,6 +204,14 @@ public async Task InstallFromBucket_NonExistentBucket_Returns404() // ── Sync Bucket ────────────────────────────────────────────────────── + /// + /// Validates the SyncBucket_NonExistentBucket_Returns404 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. + /// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. + /// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. + /// [Fact] public async Task SyncBucket_NonExistentBucket_Returns404() { @@ -140,6 +220,14 @@ public async Task SyncBucket_NonExistentBucket_Returns404() Assert.Equal(HttpStatusCode.NotFound, r.StatusCode); } + /// + /// Validates the SyncBucket_Existing_Returns200Or404 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. + /// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. + /// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. + /// [Fact] public async Task SyncBucket_Existing_Returns200Or404() { diff --git a/tests/McpServer.ToolRegistry.Validation/AtomicTests/ToolCrudTests.cs b/tests/McpServer.ToolRegistry.Validation/AtomicTests/ToolCrudTests.cs index a4024b91..e40476a2 100644 --- a/tests/McpServer.ToolRegistry.Validation/AtomicTests/ToolCrudTests.cs +++ b/tests/McpServer.ToolRegistry.Validation/AtomicTests/ToolCrudTests.cs @@ -10,10 +10,26 @@ namespace McpServer.ToolRegistry.Validation.AtomicTests; public sealed class ToolCrudTests { private readonly ToolRegistryFixture _f; + /// + /// Initializes a new instance of ToolCrudTests. + /// + /// + /// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. + /// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. + /// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. + /// public ToolCrudTests(ToolRegistryFixture f) => _f = f; // ── List ───────────────────────────────────────────────────────────── + /// + /// Validates the List_Returns200WithValidStructure scenario. + /// + /// + /// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. + /// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. + /// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. + /// [Fact] public async Task List_Returns200WithValidStructure() { @@ -25,6 +41,14 @@ public async Task List_Returns200WithValidStructure() Assert.True(res.TotalCount >= 0); } + /// + /// Validates the List_ResponseIsJson scenario. + /// + /// + /// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. + /// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. + /// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. + /// [Fact] public async Task List_ResponseIsJson() { @@ -34,6 +58,14 @@ public async Task List_ResponseIsJson() // ── Search ─────────────────────────────────────────────────────────── + /// + /// Validates the Search_WithKeyword_Returns200 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. + /// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. + /// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. + /// [Fact] public async Task Search_WithKeyword_Returns200() { @@ -43,6 +75,14 @@ public async Task Search_WithKeyword_Returns200() Assert.NotNull(res); } + /// + /// Validates the Search_NonMatchingKeyword_ReturnsEmpty scenario. + /// + /// + /// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. + /// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. + /// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. + /// [Fact] public async Task Search_NonMatchingKeyword_ReturnsEmpty() { @@ -56,6 +96,14 @@ public async Task Search_NonMatchingKeyword_ReturnsEmpty() // ── Create + Get + Update + Delete (full mini-cycle) ───────────────── + /// + /// Validates the Create_ValidTool_Returns201 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. + /// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. + /// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. + /// [Fact] public async Task Create_ValidTool_Returns201() { @@ -88,6 +136,14 @@ public async Task Create_ValidTool_Returns201() catch { /* best effort */ } } + /// + /// Validates the Create_DuplicateName_Returns409 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. + /// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. + /// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. + /// [Fact] public async Task Create_DuplicateName_Returns409() { @@ -109,6 +165,14 @@ public async Task Create_DuplicateName_Returns409() } } + /// + /// Validates the Get_ExistingTool_Returns200 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. + /// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. + /// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. + /// [Fact] public async Task Get_ExistingTool_Returns200() { @@ -132,6 +196,14 @@ public async Task Get_ExistingTool_Returns200() } } + /// + /// Validates the Get_NonExistentId_Returns404 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. + /// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. + /// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. + /// [Fact] public async Task Get_NonExistentId_Returns404() { @@ -139,6 +211,14 @@ public async Task Get_NonExistentId_Returns404() Assert.Equal(HttpStatusCode.NotFound, r.StatusCode); } + /// + /// Validates the Update_ChangeName_Returns200 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. + /// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. + /// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. + /// [Fact] public async Task Update_ChangeName_Returns200() { @@ -166,6 +246,14 @@ public async Task Update_ChangeName_Returns200() } } + /// + /// Validates the Update_NonExistentId_Returns404 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. + /// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. + /// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. + /// [Fact] public async Task Update_NonExistentId_Returns404() { @@ -174,6 +262,14 @@ public async Task Update_NonExistentId_Returns404() Assert.Equal(HttpStatusCode.NotFound, r.StatusCode); } + /// + /// Validates the Delete_ExistingTool_Returns200 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. + /// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. + /// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. + /// [Fact] public async Task Delete_ExistingTool_Returns200() { @@ -194,6 +290,14 @@ public async Task Delete_ExistingTool_Returns200() Assert.Equal(HttpStatusCode.NotFound, get.StatusCode); } + /// + /// Validates the Delete_NonExistentId_Returns404 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. + /// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. + /// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. + /// [Fact] public async Task Delete_NonExistentId_Returns404() { @@ -203,6 +307,14 @@ public async Task Delete_NonExistentId_Returns404() // ── Search by created tool tag ─────────────────────────────────────── + /// + /// Validates the Search_ByTag_FindsCreatedTool scenario. + /// + /// + /// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. + /// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. + /// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. + /// [Fact] public async Task Search_ByTag_FindsCreatedTool() { diff --git a/tests/McpServer.ToolRegistry.Validation/ErrorTests/ToolRegistryErrorTests.cs b/tests/McpServer.ToolRegistry.Validation/ErrorTests/ToolRegistryErrorTests.cs index 3f417e45..a223363f 100644 --- a/tests/McpServer.ToolRegistry.Validation/ErrorTests/ToolRegistryErrorTests.cs +++ b/tests/McpServer.ToolRegistry.Validation/ErrorTests/ToolRegistryErrorTests.cs @@ -10,8 +10,24 @@ namespace McpServer.ToolRegistry.Validation.ErrorTests; public sealed class ToolRegistryErrorTests { private readonly ToolRegistryFixture _f; + /// + /// Initializes a new instance of ToolRegistryErrorTests. + /// + /// + /// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. + /// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. + /// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. + /// public ToolRegistryErrorTests(ToolRegistryFixture f) => _f = f; + /// + /// Validates the Get_NonExistentTool_Returns404 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. + /// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. + /// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. + /// [Fact] public async Task Get_NonExistentTool_Returns404() { @@ -19,6 +35,14 @@ public async Task Get_NonExistentTool_Returns404() Assert.Equal(HttpStatusCode.NotFound, r.StatusCode); } + /// + /// Validates the Update_NonExistentTool_Returns404 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. + /// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. + /// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. + /// [Fact] public async Task Update_NonExistentTool_Returns404() { @@ -26,6 +50,14 @@ public async Task Update_NonExistentTool_Returns404() Assert.Equal(HttpStatusCode.NotFound, r.StatusCode); } + /// + /// Validates the Delete_NonExistentTool_Returns404 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. + /// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. + /// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. + /// [Fact] public async Task Delete_NonExistentTool_Returns404() { @@ -33,6 +65,14 @@ public async Task Delete_NonExistentTool_Returns404() Assert.Equal(HttpStatusCode.NotFound, r.StatusCode); } + /// + /// Validates the RemoveBucket_NonExistent_Returns404 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. + /// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. + /// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. + /// [Fact] public async Task RemoveBucket_NonExistent_Returns404() { @@ -40,6 +80,14 @@ public async Task RemoveBucket_NonExistent_Returns404() Assert.Equal(HttpStatusCode.NotFound, r.StatusCode); } + /// + /// Validates the BrowseBucket_NonExistent_Returns404 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. + /// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. + /// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. + /// [Fact] public async Task BrowseBucket_NonExistent_Returns404() { @@ -47,6 +95,14 @@ public async Task BrowseBucket_NonExistent_Returns404() Assert.Equal(HttpStatusCode.NotFound, r.StatusCode); } + /// + /// Validates the SyncBucket_NonExistent_Returns404 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. + /// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. + /// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. + /// [Fact] public async Task SyncBucket_NonExistent_Returns404() { @@ -54,6 +110,14 @@ public async Task SyncBucket_NonExistent_Returns404() Assert.Equal(HttpStatusCode.NotFound, r.StatusCode); } + /// + /// Validates the InstallFromBucket_NonExistent_Returns404 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. + /// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. + /// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. + /// [Fact] public async Task InstallFromBucket_NonExistent_Returns404() { @@ -62,6 +126,14 @@ public async Task InstallFromBucket_NonExistent_Returns404() Assert.Equal(HttpStatusCode.NotFound, r.StatusCode); } + /// + /// Validates the Patch_NotSupported_Returns405 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. + /// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. + /// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. + /// [Fact] public async Task Patch_NotSupported_Returns405() { @@ -73,6 +145,14 @@ public async Task Patch_NotSupported_Returns405() Assert.Equal(HttpStatusCode.MethodNotAllowed, r.StatusCode); } + /// + /// Validates the Get_InvalidIdFormat_Returns404Or400 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. + /// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. + /// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. + /// [Fact] public async Task Get_InvalidIdFormat_Returns404Or400() { @@ -83,6 +163,14 @@ public async Task Get_InvalidIdFormat_Returns404Or400() $"Expected 404/400 but got {(int)r.StatusCode}."); } + /// + /// Validates the Create_DuplicateName_Returns409 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. + /// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. + /// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. + /// [Fact] public async Task Create_DuplicateName_Returns409() { @@ -107,6 +195,14 @@ public async Task Create_DuplicateName_Returns409() } } + /// + /// Validates the AddBucket_Duplicate_Returns409 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. + /// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. + /// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. + /// [Fact] public async Task AddBucket_Duplicate_Returns409() { @@ -126,6 +222,14 @@ public async Task AddBucket_Duplicate_Returns409() } } + /// + /// Validates the Search_WithWorkspace_Returns200 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. + /// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. + /// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. + /// [Fact] public async Task Search_WithWorkspace_Returns200() { @@ -134,6 +238,14 @@ public async Task Search_WithWorkspace_Returns200() Assert.Equal(HttpStatusCode.OK, r.StatusCode); } + /// + /// Validates the List_WithWorkspace_Returns200 scenario. + /// + /// + /// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. + /// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. + /// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. + /// [Fact] public async Task List_WithWorkspace_Returns200() { diff --git a/tests/McpServer.ToolRegistry.Validation/Models/ToolRegistryModels.cs b/tests/McpServer.ToolRegistry.Validation/Models/ToolRegistryModels.cs index 8578619d..7023bf35 100644 --- a/tests/McpServer.ToolRegistry.Validation/Models/ToolRegistryModels.cs +++ b/tests/McpServer.ToolRegistry.Validation/Models/ToolRegistryModels.cs @@ -1,78 +1,273 @@ namespace McpServer.ToolRegistry.Validation.Models; +/// +/// Validation contract type ToolDto. +/// +/// +/// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. +/// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. +/// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. +/// public sealed class ToolDto { + /// + /// Gets or sets Id for validation payload/state handling. + /// public int Id { get; set; } + /// + /// Gets or sets Name for validation payload/state handling. + /// public string Name { get; set; } = string.Empty; + /// + /// Gets or sets Description for validation payload/state handling. + /// public string Description { get; set; } = string.Empty; + /// + /// Gets or sets Tags for validation payload/state handling. + /// public List Tags { get; set; } = []; + /// + /// Gets or sets ParameterSchema for validation payload/state handling. + /// public string? ParameterSchema { get; set; } + /// + /// Gets or sets CommandTemplate for validation payload/state handling. + /// public string? CommandTemplate { get; set; } + /// + /// Gets or sets WorkspacePath for validation payload/state handling. + /// public string? WorkspacePath { get; set; } + /// + /// Gets or sets DateTimeCreated for validation payload/state handling. + /// public DateTimeOffset DateTimeCreated { get; set; } + /// + /// Gets or sets DateTimeModified for validation payload/state handling. + /// public DateTimeOffset DateTimeModified { get; set; } } +/// +/// Validation contract type ToolSearchResult. +/// +/// +/// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. +/// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. +/// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. +/// public sealed class ToolSearchResult { + /// + /// Gets or sets Tools for validation payload/state handling. + /// public List Tools { get; set; } = []; + /// + /// Gets or sets TotalCount for validation payload/state handling. + /// public int TotalCount { get; set; } } +/// +/// Validation contract type ToolMutationResult. +/// +/// +/// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. +/// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. +/// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. +/// public sealed class ToolMutationResult { + /// + /// Gets or sets Success for validation payload/state handling. + /// public bool Success { get; set; } + /// + /// Gets or sets Error for validation payload/state handling. + /// public string? Error { get; set; } + /// + /// Gets or sets Tool for validation payload/state handling. + /// public ToolDto? Tool { get; set; } } +/// +/// Validation contract type BucketDto. +/// +/// +/// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. +/// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. +/// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. +/// public sealed class BucketDto { + /// + /// Gets or sets Id for validation payload/state handling. + /// public int Id { get; set; } + /// + /// Gets or sets Name for validation payload/state handling. + /// public string Name { get; set; } = string.Empty; + /// + /// Gets or sets Owner for validation payload/state handling. + /// public string Owner { get; set; } = string.Empty; + /// + /// Gets or sets Repo for validation payload/state handling. + /// public string Repo { get; set; } = string.Empty; + /// + /// Gets or sets Branch for validation payload/state handling. + /// public string Branch { get; set; } = string.Empty; + /// + /// Gets or sets ManifestPath for validation payload/state handling. + /// public string ManifestPath { get; set; } = string.Empty; + /// + /// Gets or sets DateTimeCreated for validation payload/state handling. + /// public DateTimeOffset DateTimeCreated { get; set; } + /// + /// Gets or sets DateTimeLastSynced for validation payload/state handling. + /// public DateTimeOffset? DateTimeLastSynced { get; set; } } +/// +/// Validation contract type BucketListResult. +/// +/// +/// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. +/// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. +/// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. +/// public sealed class BucketListResult { + /// + /// Gets or sets Buckets for validation payload/state handling. + /// public List Buckets { get; set; } = []; + /// + /// Gets or sets TotalCount for validation payload/state handling. + /// public int TotalCount { get; set; } } +/// +/// Validation contract type BucketMutationResult. +/// +/// +/// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. +/// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. +/// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. +/// public sealed class BucketMutationResult { + /// + /// Gets or sets Success for validation payload/state handling. + /// public bool Success { get; set; } + /// + /// Gets or sets Error for validation payload/state handling. + /// public string? Error { get; set; } + /// + /// Gets or sets Bucket for validation payload/state handling. + /// public BucketDto? Bucket { get; set; } } +/// +/// Validation contract type ToolManifest. +/// +/// +/// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. +/// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. +/// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. +/// public sealed class ToolManifest { + /// + /// Gets or sets Name for validation payload/state handling. + /// public string Name { get; set; } = string.Empty; + /// + /// Gets or sets Description for validation payload/state handling. + /// public string Description { get; set; } = string.Empty; + /// + /// Gets or sets Tags for validation payload/state handling. + /// public List Tags { get; set; } = []; + /// + /// Gets or sets ParameterSchema for validation payload/state handling. + /// public string? ParameterSchema { get; set; } + /// + /// Gets or sets CommandTemplate for validation payload/state handling. + /// public string? CommandTemplate { get; set; } + /// + /// Gets or sets ManifestFile for validation payload/state handling. + /// public string ManifestFile { get; set; } = string.Empty; } +/// +/// Validation contract type BucketBrowseResult. +/// +/// +/// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. +/// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. +/// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. +/// public sealed class BucketBrowseResult { + /// + /// Gets or sets Success for validation payload/state handling. + /// public bool Success { get; set; } + /// + /// Gets or sets Error for validation payload/state handling. + /// public string? Error { get; set; } + /// + /// Gets or sets Tools for validation payload/state handling. + /// public List? Tools { get; set; } } +/// +/// Validation contract type BucketSyncResult. +/// +/// +/// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. +/// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. +/// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. +/// public sealed class BucketSyncResult { + /// + /// Gets or sets Success for validation payload/state handling. + /// public bool Success { get; set; } + /// + /// Gets or sets Error for validation payload/state handling. + /// public string? Error { get; set; } + /// + /// Gets or sets Updated for validation payload/state handling. + /// public int Updated { get; set; } + /// + /// Gets or sets Added for validation payload/state handling. + /// public int Added { get; set; } + /// + /// Gets or sets Unchanged for validation payload/state handling. + /// public int Unchanged { get; set; } } diff --git a/tests/McpServer.ToolRegistry.Validation/SequenceTests/ToolLifecycleSequenceTests.cs b/tests/McpServer.ToolRegistry.Validation/SequenceTests/ToolLifecycleSequenceTests.cs index 32e0136c..6953bf9e 100644 --- a/tests/McpServer.ToolRegistry.Validation/SequenceTests/ToolLifecycleSequenceTests.cs +++ b/tests/McpServer.ToolRegistry.Validation/SequenceTests/ToolLifecycleSequenceTests.cs @@ -12,8 +12,24 @@ public sealed class ToolLifecycleSequenceTests private readonly ToolRegistryFixture _f; private readonly ITestOutputHelper _out; + /// + /// Initializes a new instance of ToolLifecycleSequenceTests. + /// + /// + /// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. + /// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. + /// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. + /// public ToolLifecycleSequenceTests(ToolRegistryFixture f, ITestOutputHelper o) { _f = f; _out = o; } + /// + /// Validates the FullToolLifecycle_CreateThroughDelete scenario. + /// + /// + /// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. + /// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. + /// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. + /// [Fact] public async Task FullToolLifecycle_CreateThroughDelete() { @@ -105,6 +121,14 @@ public async Task FullToolLifecycle_CreateThroughDelete() } } + /// + /// Validates the FullBucketLifecycle_AddThroughRemove scenario. + /// + /// + /// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. + /// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. + /// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. + /// [Fact] public async Task FullBucketLifecycle_AddThroughRemove() { diff --git a/tests/McpServer.ToolRegistry.Validation/ToolRegistryFixture.cs b/tests/McpServer.ToolRegistry.Validation/ToolRegistryFixture.cs index 128c6877..88c7a69a 100644 --- a/tests/McpServer.ToolRegistry.Validation/ToolRegistryFixture.cs +++ b/tests/McpServer.ToolRegistry.Validation/ToolRegistryFixture.cs @@ -5,12 +5,32 @@ namespace McpServer.ToolRegistry.Validation; /// Shared fixture providing an HttpClient for the live MCP Server. public sealed class ToolRegistryFixture : IDisposable { + /// + /// Defines BaseUrl constant used by validation tests. + /// public const string BaseUrl = "http://localhost:7147"; + /// + /// Defines ToolRoute constant used by validation tests. + /// public const string ToolRoute = "/mcpserver/tools"; + /// + /// Defines BucketRoute constant used by validation tests. + /// public const string BucketRoute = "/mcpserver/tools/buckets"; + /// + /// Gets or sets Client for validation payload/state handling. + /// public HttpClient Client { get; } + /// + /// Initializes a new instance of ToolRegistryFixture. + /// + /// + /// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. + /// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. + /// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. + /// public ToolRegistryFixture() { Client = new HttpClient { BaseAddress = new Uri(BaseUrl) }; @@ -24,8 +44,24 @@ public static string GenerateToolName() => public static string GenerateBucketName() => $"audit-bucket-{Guid.NewGuid().ToString("N")[..8]}"; + /// + /// Releases resources used by validation tests. + /// + /// + /// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. + /// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. + /// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. + /// public void Dispose() => Client.Dispose(); } +/// +/// xUnit collection wiring for shared validation fixtures in ToolRegistryCollection. +/// +/// +/// Requirement coverage: TEST-MCP-008, FR-MCP-012, TR-MCP-TR-001, TR-MCP-TR-002, TR-MCP-TR-003. +/// Test data: Generated tool/bucket names and CRUD/search/browse/sync payload objects for registry endpoints. +/// Data rationale: These inputs verify tool-registry bucket/tool lifecycle endpoints and search/sync behavior. +/// [CollectionDefinition("ToolRegistry")] public sealed class ToolRegistryCollection : ICollectionFixture; diff --git a/tests/McpServer.Workspace.Validation/AtomicTests/CreateWorkspaceTests.cs b/tests/McpServer.Workspace.Validation/AtomicTests/CreateWorkspaceTests.cs index e8621138..723102ba 100644 --- a/tests/McpServer.Workspace.Validation/AtomicTests/CreateWorkspaceTests.cs +++ b/tests/McpServer.Workspace.Validation/AtomicTests/CreateWorkspaceTests.cs @@ -13,6 +13,7 @@ public sealed class CreateWorkspaceTests : IAsyncLifetime private readonly string _testPath; private readonly string _testKey; + /// Initializes a new instance. public CreateWorkspaceTests(WorkspaceEndpointFixture fixture) { _fixture = fixture; @@ -20,14 +21,17 @@ public CreateWorkspaceTests(WorkspaceEndpointFixture fixture) _testKey = WorkspaceEndpointFixture.EncodeKey(_testPath); } + /// Initializes resources asynchronously. public ValueTask InitializeAsync() => ValueTask.CompletedTask; + /// Disposes resources asynchronously. public async ValueTask DisposeAsync() { // Clean up: delete the test workspace if it was created. await _fixture.Client.DeleteAsync($"{WorkspaceEndpointFixture.WorkspaceRoute}/{_testKey}"); } + /// Test method. [Fact] public async Task Create_ValidRequest_Returns201() { @@ -50,6 +54,7 @@ public async Task Create_ValidRequest_Returns201() Assert.Contains(_testKey, response.Headers.Location.ToString()); } + /// Test method. [Fact] public async Task Create_DuplicatePath_Returns409() { @@ -66,6 +71,7 @@ public async Task Create_DuplicatePath_Returns409() Assert.False(result.Success); } + /// Test method. [Fact] public async Task Create_NoName_DerivesFromPath() { @@ -81,6 +87,7 @@ public async Task Create_NoName_DerivesFromPath() Assert.False(string.IsNullOrWhiteSpace(result.Workspace.Name)); } + /// Test method. [Fact] public async Task Create_NullBody_Returns400() { diff --git a/tests/McpServer.Workspace.Validation/AtomicTests/DeleteWorkspaceTests.cs b/tests/McpServer.Workspace.Validation/AtomicTests/DeleteWorkspaceTests.cs index ecb054d4..ac1419e3 100644 --- a/tests/McpServer.Workspace.Validation/AtomicTests/DeleteWorkspaceTests.cs +++ b/tests/McpServer.Workspace.Validation/AtomicTests/DeleteWorkspaceTests.cs @@ -11,8 +11,10 @@ public sealed class DeleteWorkspaceTests { private readonly WorkspaceEndpointFixture _fixture; + /// Initializes a new instance. public DeleteWorkspaceTests(WorkspaceEndpointFixture fixture) => _fixture = fixture; + /// Test method. [Fact] public async Task Delete_ExistingWorkspace_Returns200() { @@ -40,6 +42,7 @@ public async Task Delete_ExistingWorkspace_Returns200() Assert.Equal(HttpStatusCode.NotFound, getResponse.StatusCode); } + /// Test method. [Fact] public async Task Delete_NonExistentWorkspace_Returns404() { @@ -55,6 +58,7 @@ public async Task Delete_NonExistentWorkspace_Returns404() Assert.False(result.Success); } + /// Test method. [Fact] public async Task Delete_InvalidKey_Returns400() { diff --git a/tests/McpServer.Workspace.Validation/AtomicTests/GetWorkspaceTests.cs b/tests/McpServer.Workspace.Validation/AtomicTests/GetWorkspaceTests.cs index 79cbfd2e..3fae221d 100644 --- a/tests/McpServer.Workspace.Validation/AtomicTests/GetWorkspaceTests.cs +++ b/tests/McpServer.Workspace.Validation/AtomicTests/GetWorkspaceTests.cs @@ -13,6 +13,7 @@ public sealed class GetWorkspaceTests : IAsyncLifetime private readonly string _testPath; private readonly string _testKey; + /// Initializes a new instance. public GetWorkspaceTests(WorkspaceEndpointFixture fixture) { _fixture = fixture; @@ -20,6 +21,7 @@ public GetWorkspaceTests(WorkspaceEndpointFixture fixture) _testKey = WorkspaceEndpointFixture.EncodeKey(_testPath); } + /// Initializes resources asynchronously. public async ValueTask InitializeAsync() { var body = new { WorkspacePath = _testPath, Name = "AuditGetTest" }; @@ -27,11 +29,13 @@ public async ValueTask InitializeAsync() Assert.Equal(HttpStatusCode.Created, response.StatusCode); } + /// Disposes resources asynchronously. public async ValueTask DisposeAsync() { await _fixture.Client.DeleteAsync($"{WorkspaceEndpointFixture.WorkspaceRoute}/{_testKey}"); } + /// Test method. [Fact] public async Task Get_ValidKey_Returns200WithWorkspace() { @@ -45,6 +49,7 @@ public async Task Get_ValidKey_Returns200WithWorkspace() Assert.Equal("AuditGetTest", dto.Name); } + /// Test method. [Fact] public async Task Get_NonExistentKey_Returns404() { @@ -54,6 +59,7 @@ public async Task Get_NonExistentKey_Returns404() Assert.Equal(HttpStatusCode.NotFound, response.StatusCode); } + /// Test method. [Fact] public async Task Get_InvalidBase64Key_Returns400() { diff --git a/tests/McpServer.Workspace.Validation/AtomicTests/InitWorkspaceTests.cs b/tests/McpServer.Workspace.Validation/AtomicTests/InitWorkspaceTests.cs index 34d4c158..1ffab600 100644 --- a/tests/McpServer.Workspace.Validation/AtomicTests/InitWorkspaceTests.cs +++ b/tests/McpServer.Workspace.Validation/AtomicTests/InitWorkspaceTests.cs @@ -13,6 +13,7 @@ public sealed class InitWorkspaceTests : IAsyncLifetime private readonly string _testPath; private readonly string _testKey; + /// Initializes a new instance. public InitWorkspaceTests(WorkspaceEndpointFixture fixture) { _fixture = fixture; @@ -20,6 +21,7 @@ public InitWorkspaceTests(WorkspaceEndpointFixture fixture) _testKey = WorkspaceEndpointFixture.EncodeKey(_testPath); } + /// Initializes resources asynchronously. public async ValueTask InitializeAsync() { var body = new { WorkspacePath = _testPath, Name = "AuditInitTest" }; @@ -27,11 +29,13 @@ public async ValueTask InitializeAsync() Assert.Equal(HttpStatusCode.Created, response.StatusCode); } + /// Disposes resources asynchronously. public async ValueTask DisposeAsync() { await _fixture.Client.DeleteAsync($"{WorkspaceEndpointFixture.WorkspaceRoute}/{_testKey}"); } + /// Test method. [Fact] public async Task Init_RegisteredWorkspace_ReturnsResult() { @@ -58,6 +62,7 @@ public async Task Init_RegisteredWorkspace_ReturnsResult() } } + /// Test method. [Fact] public async Task Init_InvalidKey_Returns400() { diff --git a/tests/McpServer.Workspace.Validation/AtomicTests/ListWorkspacesTests.cs b/tests/McpServer.Workspace.Validation/AtomicTests/ListWorkspacesTests.cs index c1e9883d..5743c1ea 100644 --- a/tests/McpServer.Workspace.Validation/AtomicTests/ListWorkspacesTests.cs +++ b/tests/McpServer.Workspace.Validation/AtomicTests/ListWorkspacesTests.cs @@ -11,8 +11,10 @@ public sealed class ListWorkspacesTests { private readonly WorkspaceEndpointFixture _fixture; + /// Initializes a new instance. public ListWorkspacesTests(WorkspaceEndpointFixture fixture) => _fixture = fixture; + /// Test method. [Fact] public async Task List_Returns200_WithValidStructure() { @@ -27,6 +29,7 @@ public async Task List_Returns200_WithValidStructure() Assert.Equal(result.Items.Count, result.TotalCount); } + /// Test method. [Fact] public async Task List_ResponseIsJson() { diff --git a/tests/McpServer.Workspace.Validation/AtomicTests/StartWorkspaceTests.cs b/tests/McpServer.Workspace.Validation/AtomicTests/StartWorkspaceTests.cs index 78f7418e..eb3d43d5 100644 --- a/tests/McpServer.Workspace.Validation/AtomicTests/StartWorkspaceTests.cs +++ b/tests/McpServer.Workspace.Validation/AtomicTests/StartWorkspaceTests.cs @@ -13,6 +13,7 @@ public sealed class StartWorkspaceTests : IAsyncLifetime private readonly string _testPath; private readonly string _testKey; + /// Initializes a new instance. public StartWorkspaceTests(WorkspaceEndpointFixture fixture) { _fixture = fixture; @@ -20,6 +21,7 @@ public StartWorkspaceTests(WorkspaceEndpointFixture fixture) _testKey = WorkspaceEndpointFixture.EncodeKey(_testPath); } + /// Initializes resources asynchronously. public async ValueTask InitializeAsync() { var body = new { WorkspacePath = _testPath, Name = "AuditStartTest" }; @@ -27,6 +29,7 @@ public async ValueTask InitializeAsync() Assert.Equal(HttpStatusCode.Created, response.StatusCode); } + /// Disposes resources asynchronously. public async ValueTask DisposeAsync() { // Stop first in case it was started, then delete. @@ -34,6 +37,7 @@ public async ValueTask DisposeAsync() await _fixture.Client.DeleteAsync($"{WorkspaceEndpointFixture.WorkspaceRoute}/{_testKey}"); } + /// Test method. [Fact] public async Task Start_RegisteredWorkspace_ReturnsProcessStatus() { @@ -47,6 +51,7 @@ public async Task Start_RegisteredWorkspace_ReturnsProcessStatus() // It may or may not successfully start depending on environment, but should return the DTO. } + /// Test method. [Fact] public async Task Start_NonExistentWorkspace_Returns404() { @@ -58,6 +63,7 @@ public async Task Start_NonExistentWorkspace_Returns404() Assert.Equal(HttpStatusCode.NotFound, response.StatusCode); } + /// Test method. [Fact] public async Task Start_InvalidKey_Returns400() { diff --git a/tests/McpServer.Workspace.Validation/AtomicTests/StatusWorkspaceTests.cs b/tests/McpServer.Workspace.Validation/AtomicTests/StatusWorkspaceTests.cs index bc8c9237..82b0a099 100644 --- a/tests/McpServer.Workspace.Validation/AtomicTests/StatusWorkspaceTests.cs +++ b/tests/McpServer.Workspace.Validation/AtomicTests/StatusWorkspaceTests.cs @@ -13,6 +13,7 @@ public sealed class StatusWorkspaceTests : IAsyncLifetime private readonly string _testPath; private readonly string _testKey; + /// Initializes a new instance. public StatusWorkspaceTests(WorkspaceEndpointFixture fixture) { _fixture = fixture; @@ -20,6 +21,7 @@ public StatusWorkspaceTests(WorkspaceEndpointFixture fixture) _testKey = WorkspaceEndpointFixture.EncodeKey(_testPath); } + /// Initializes resources asynchronously. public async ValueTask InitializeAsync() { var body = new { WorkspacePath = _testPath, Name = "AuditStatusTest" }; @@ -27,11 +29,13 @@ public async ValueTask InitializeAsync() Assert.Equal(HttpStatusCode.Created, response.StatusCode); } + /// Disposes resources asynchronously. public async ValueTask DisposeAsync() { await _fixture.Client.DeleteAsync($"{WorkspaceEndpointFixture.WorkspaceRoute}/{_testKey}"); } + /// Test method. [Fact] public async Task Status_NotStarted_ReturnsNotRunning() { @@ -45,6 +49,7 @@ public async Task Status_NotStarted_ReturnsNotRunning() Assert.False(status.IsRunning, "Workspace that was never started should report IsRunning=false."); } + /// Test method. [Fact] public async Task Status_InvalidKey_Returns400() { diff --git a/tests/McpServer.Workspace.Validation/AtomicTests/StopWorkspaceTests.cs b/tests/McpServer.Workspace.Validation/AtomicTests/StopWorkspaceTests.cs index fb02c50f..f8b23d67 100644 --- a/tests/McpServer.Workspace.Validation/AtomicTests/StopWorkspaceTests.cs +++ b/tests/McpServer.Workspace.Validation/AtomicTests/StopWorkspaceTests.cs @@ -13,6 +13,7 @@ public sealed class StopWorkspaceTests : IAsyncLifetime private readonly string _testPath; private readonly string _testKey; + /// Initializes a new instance. public StopWorkspaceTests(WorkspaceEndpointFixture fixture) { _fixture = fixture; @@ -20,6 +21,7 @@ public StopWorkspaceTests(WorkspaceEndpointFixture fixture) _testKey = WorkspaceEndpointFixture.EncodeKey(_testPath); } + /// Initializes resources asynchronously. public async ValueTask InitializeAsync() { var body = new { WorkspacePath = _testPath, Name = "AuditStopTest" }; @@ -27,11 +29,13 @@ public async ValueTask InitializeAsync() Assert.Equal(HttpStatusCode.Created, response.StatusCode); } + /// Disposes resources asynchronously. public async ValueTask DisposeAsync() { await _fixture.Client.DeleteAsync($"{WorkspaceEndpointFixture.WorkspaceRoute}/{_testKey}"); } + /// Test method. [Fact] public async Task Stop_NotRunning_ReturnsStatus() { @@ -46,6 +50,7 @@ public async Task Stop_NotRunning_ReturnsStatus() Assert.False(status.IsRunning); } + /// Test method. [Fact] public async Task Stop_InvalidKey_Returns400() { diff --git a/tests/McpServer.Workspace.Validation/AtomicTests/UpdateWorkspaceTests.cs b/tests/McpServer.Workspace.Validation/AtomicTests/UpdateWorkspaceTests.cs index 0e7929cb..0fb04531 100644 --- a/tests/McpServer.Workspace.Validation/AtomicTests/UpdateWorkspaceTests.cs +++ b/tests/McpServer.Workspace.Validation/AtomicTests/UpdateWorkspaceTests.cs @@ -13,6 +13,7 @@ public sealed class UpdateWorkspaceTests : IAsyncLifetime private readonly string _testPath; private readonly string _testKey; + /// Initializes a new instance. public UpdateWorkspaceTests(WorkspaceEndpointFixture fixture) { _fixture = fixture; @@ -20,6 +21,7 @@ public UpdateWorkspaceTests(WorkspaceEndpointFixture fixture) _testKey = WorkspaceEndpointFixture.EncodeKey(_testPath); } + /// Initializes resources asynchronously. public async ValueTask InitializeAsync() { var body = new { WorkspacePath = _testPath, Name = "AuditUpdateOriginal" }; @@ -27,11 +29,13 @@ public async ValueTask InitializeAsync() Assert.Equal(HttpStatusCode.Created, response.StatusCode); } + /// Disposes resources asynchronously. public async ValueTask DisposeAsync() { await _fixture.Client.DeleteAsync($"{WorkspaceEndpointFixture.WorkspaceRoute}/{_testKey}"); } + /// Test method. [Fact] public async Task Update_ChangeName_Returns200() { @@ -48,6 +52,7 @@ public async Task Update_ChangeName_Returns200() Assert.Equal("AuditUpdateRenamed", result.Workspace.Name); } + /// Test method. [Fact] public async Task Update_ChangeTodoPath_Returns200() { @@ -64,6 +69,7 @@ public async Task Update_ChangeTodoPath_Returns200() Assert.Equal("custom/todo.yaml", result.Workspace.TodoPath); } + /// Test method. [Fact] public async Task Update_NonExistentKey_Returns404() { diff --git a/tests/McpServer.Workspace.Validation/ErrorTests/WorkspaceErrorTests.cs b/tests/McpServer.Workspace.Validation/ErrorTests/WorkspaceErrorTests.cs index 2b30dda1..4baf512b 100644 --- a/tests/McpServer.Workspace.Validation/ErrorTests/WorkspaceErrorTests.cs +++ b/tests/McpServer.Workspace.Validation/ErrorTests/WorkspaceErrorTests.cs @@ -15,6 +15,7 @@ public sealed class WorkspaceErrorTests private readonly WorkspaceEndpointFixture _fixture; private readonly ITestOutputHelper _output; + /// Initializes a new instance. public WorkspaceErrorTests(WorkspaceEndpointFixture fixture, ITestOutputHelper output) { _fixture = fixture; @@ -23,6 +24,7 @@ public WorkspaceErrorTests(WorkspaceEndpointFixture fixture, ITestOutputHelper o // ── Invalid Base64URL key tests ────────────────────────────────────── + /// Returns 400 for invalid key in GET. [Theory] [InlineData("!!!invalid!!!")] [InlineData("not-valid-base64-@#$")] @@ -39,6 +41,7 @@ public async Task Get_InvalidKey_Returns400(string badKey) Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode); } + /// Returns 400 for invalid key in PUT. [Theory] [InlineData("!!!invalid!!!")] [InlineData("not-valid-base64-@#$")] @@ -51,6 +54,7 @@ public async Task Put_InvalidKey_Returns400(string badKey) Assert.Equal(HttpStatusCode.BadRequest, response.StatusCode); } + /// Returns 400 for invalid key in DELETE. [Theory] [InlineData("!!!invalid!!!")] [InlineData("not-valid-base64-@#$")] @@ -64,6 +68,7 @@ public async Task Delete_InvalidKey_Returns400(string badKey) // ── Missing resource tests ─────────────────────────────────────────── + /// Test method. [Fact] public async Task Get_NonExistent_Returns404() { @@ -73,6 +78,7 @@ public async Task Get_NonExistent_Returns404() Assert.Equal(HttpStatusCode.NotFound, response.StatusCode); } + /// Test method. [Fact] public async Task Update_NonExistent_Returns404() { @@ -83,6 +89,7 @@ public async Task Update_NonExistent_Returns404() Assert.Equal(HttpStatusCode.NotFound, response.StatusCode); } + /// Test method. [Fact] public async Task Delete_NonExistent_Returns404() { @@ -92,6 +99,7 @@ public async Task Delete_NonExistent_Returns404() Assert.Equal(HttpStatusCode.NotFound, response.StatusCode); } + /// Test method. [Fact] public async Task Start_NonExistent_Returns404() { @@ -103,6 +111,7 @@ public async Task Start_NonExistent_Returns404() // ── Duplicate create test ──────────────────────────────────────────── + /// Test method. [Fact] public async Task Create_Duplicate_Returns409() { @@ -131,6 +140,7 @@ public async Task Create_Duplicate_Returns409() // ── Missing/empty body tests ───────────────────────────────────────── + /// Test method. [Fact] public async Task Create_EmptyBody_ReturnsBadRequest() { @@ -145,6 +155,7 @@ public async Task Create_EmptyBody_ReturnsBadRequest() $"Expected 400/422 but got {(int)response.StatusCode}."); } + /// Test method. [Fact] public async Task Update_NullBody_ReturnsBadRequest() { @@ -163,6 +174,7 @@ public async Task Update_NullBody_ReturnsBadRequest() // ── Method not allowed ─────────────────────────────────────────────── + /// Test method. [Fact] public async Task Patch_NotSupported_Returns405() { diff --git a/tests/McpServer.Workspace.Validation/Models/WorkspaceModels.cs b/tests/McpServer.Workspace.Validation/Models/WorkspaceModels.cs index 09ade144..21cc1a59 100644 --- a/tests/McpServer.Workspace.Validation/Models/WorkspaceModels.cs +++ b/tests/McpServer.Workspace.Validation/Models/WorkspaceModels.cs @@ -3,50 +3,71 @@ namespace McpServer.Workspace.Validation.Models; /// Read-only workspace view returned by the API. public sealed class WorkspaceDto { + /// Gets or sets WorkspacePath. public string WorkspacePath { get; set; } = string.Empty; + /// Gets or sets Name. public string Name { get; set; } = string.Empty; + /// Gets or sets TodoPath. public string TodoPath { get; set; } = string.Empty; + /// Gets or sets TunnelProvider. public string? TunnelProvider { get; set; } + /// Gets or sets DateTimeCreated. public DateTimeOffset DateTimeCreated { get; set; } + /// Gets or sets DateTimeModified. public DateTimeOffset DateTimeModified { get; set; } + /// Gets or sets RunAs. public string? RunAs { get; set; } } /// Result of listing workspaces. public sealed class WorkspaceListResult { + /// Gets or sets Items. public List Items { get; set; } = []; + /// Gets or sets TotalCount. public int TotalCount { get; set; } } /// Result of a workspace mutation (create/update/delete). public sealed class WorkspaceMutationResult { + /// Gets or sets Success. public bool Success { get; set; } + /// Gets or sets Error. public string? Error { get; set; } + /// Gets or sets Workspace. public WorkspaceDto? Workspace { get; set; } } /// Result of workspace initialization. public sealed class WorkspaceInitResult { + /// Gets or sets Success. public bool Success { get; set; } + /// Gets or sets Error. public string? Error { get; set; } + /// Gets or sets FilesCreated. public List? FilesCreated { get; set; } } /// Process status for a workspace instance. public sealed class WorkspaceProcessStatus { + /// Gets or sets IsRunning. public bool IsRunning { get; set; } + /// Gets or sets Pid. public int? Pid { get; set; } + /// Gets or sets Uptime. public string? Uptime { get; set; } + /// Gets or sets Port. public int? Port { get; set; } + /// Gets or sets Error. public string? Error { get; set; } } /// Error response shape. public sealed class ErrorResponse { + /// Gets or sets Error. public string? Error { get; set; } } diff --git a/tests/McpServer.Workspace.Validation/SequenceTests/WorkspaceLifecycleSequenceTests.cs b/tests/McpServer.Workspace.Validation/SequenceTests/WorkspaceLifecycleSequenceTests.cs index a50c0f2f..7a8346e0 100644 --- a/tests/McpServer.Workspace.Validation/SequenceTests/WorkspaceLifecycleSequenceTests.cs +++ b/tests/McpServer.Workspace.Validation/SequenceTests/WorkspaceLifecycleSequenceTests.cs @@ -16,12 +16,14 @@ public sealed class WorkspaceLifecycleSequenceTests private readonly WorkspaceEndpointFixture _fixture; private readonly ITestOutputHelper _output; + /// Initializes a new instance. public WorkspaceLifecycleSequenceTests(WorkspaceEndpointFixture fixture, ITestOutputHelper output) { _fixture = fixture; _output = output; } + /// Test method. [Fact] public async Task FullLifecycle_CreateThroughDelete() { diff --git a/tests/McpServer.Workspace.Validation/WorkspaceEndpointFixture.cs b/tests/McpServer.Workspace.Validation/WorkspaceEndpointFixture.cs index 12845c4b..636dce66 100644 --- a/tests/McpServer.Workspace.Validation/WorkspaceEndpointFixture.cs +++ b/tests/McpServer.Workspace.Validation/WorkspaceEndpointFixture.cs @@ -21,6 +21,7 @@ public sealed class WorkspaceEndpointFixture : IDisposable /// Optional API key. Set via MCPSERVER_APIKEY environment variable. public string? ApiKey { get; } + /// Initializes a new instance. public WorkspaceEndpointFixture() { Client = new HttpClient { BaseAddress = new Uri(BaseUrl) }; @@ -44,6 +45,7 @@ public static string GenerateTestWorkspacePath() return $@"C:\Temp\McpAuditTest_{Guid.NewGuid():N}"; } + /// Disposes resources. public void Dispose() => Client.Dispose(); } diff --git a/tools/McpServerTools b/tools/McpServerTools new file mode 160000 index 00000000..d5fb2a4f --- /dev/null +++ b/tools/McpServerTools @@ -0,0 +1 @@ +Subproject commit d5fb2a4f5662723e2c4aada1d48aaa55d035caf2 diff --git a/tools/bash/mcp-session.sh b/tools/bash/mcp-session.sh index aff97a70..1ae7879a 100644 --- a/tools/bash/mcp-session.sh +++ b/tools/bash/mcp-session.sh @@ -6,7 +6,7 @@ # source ./mcp-session.sh # mcp_session_init # reads marker, sets vars # mcp_session_create "Copilot" "My session" "claude-sonnet-4" # creates session -# mcp_session_add_entry "req-001" "Fix bug" "Fix the auth bug" "in_progress" +# mcp_session_add_turn "req-001" "Fix bug" "Fix the auth bug" "in_progress" # mcp_session_send_dialog "req-001" "Analyzing the issue..." "reasoning" # mcp_session_update # pushes to server # ───────────────────────────────────────────────────────────────────────────── @@ -41,7 +41,10 @@ mcp_session_init() { MCP_BASE_URL=$(grep -oP 'baseUrl:\s*\K\S+' "$marker") MCP_API_KEY=$(grep -oP 'apiKey:\s*\K\S+' "$marker") - MCP_WORKSPACE_PATH=$(grep -oP 'workspacePath:\s*\K.+' "$marker" | sed 's/[[:space:]]*$//') + MCP_WORKSPACE_PATH=$(grep -oP 'workspacePath:\s*\K.+' "$marker" | sed 's/[[:space:]]*$//' || true) + if [[ -z "$MCP_WORKSPACE_PATH" ]]; then + MCP_WORKSPACE_PATH=$(dirname "$marker") + fi MCP_SESSION_FILE=$(mktemp /tmp/mcp-session-XXXXXX.json) # Verify connectivity @@ -70,6 +73,8 @@ mcp_session_create() { "started": "${now}", "lastUpdated": "${now}", "status": "in_progress", + "entryCount": 0, + "totalTokens": 0, "entries": [] } EOF @@ -109,10 +114,10 @@ mcp_session_query() { "${MCP_BASE_URL}/mcpserver/sessionlog?limit=${limit}" } -# ─── Entries ───────────────────────────────────────────────────────────────── +# ─── Turns ─────────────────────────────────────────────────────────────────── -mcp_session_add_entry() { - # Usage: mcp_session_add_entry [response] [interpretation] +mcp_session_add_turn() { + # Usage: mcp_session_add_turn [response] [interpretation] local req_id="$1" query_title="$2" query_text="$3" status="$4" local response="${5:-}" interpretation="${6:-}" local now; now=$(date -u +"%Y-%m-%dT%H:%M:%SZ") @@ -151,8 +156,8 @@ mcp_session_add_entry() { _mcp_session_push } -mcp_session_update_entry() { - # Usage: mcp_session_update_entry +mcp_session_update_turn() { + # Usage: mcp_session_update_turn # Fields: response, status, interpretation local req_id="$1" field="$2" value="$3" @@ -193,6 +198,8 @@ mcp_session_add_action() { else . end ) ' "$MCP_SESSION_FILE" > "$tmp" && mv "$tmp" "$MCP_SESSION_FILE" + + _mcp_session_push } mcp_session_add_file() { @@ -203,6 +210,8 @@ mcp_session_add_file() { jq --arg rid "$req_id" --arg fp "$file_path" \ '.entries |= map(if .requestId == $rid then .filesModified += [$fp] else . end)' \ "$MCP_SESSION_FILE" > "$tmp" && mv "$tmp" "$MCP_SESSION_FILE" + + _mcp_session_push } mcp_session_add_tag() { @@ -213,6 +222,56 @@ mcp_session_add_tag() { jq --arg rid "$req_id" --arg tag "$tag" \ '.entries |= map(if .requestId == $rid then .tags += [$tag] else . end)' \ "$MCP_SESSION_FILE" > "$tmp" && mv "$tmp" "$MCP_SESSION_FILE" + + _mcp_session_push +} + +mcp_session_add_context() { + # Usage: mcp_session_add_context + local req_id="$1" context_item="$2" + + local tmp; tmp=$(mktemp) + jq --arg rid "$req_id" --arg item "$context_item" \ + '.entries |= map(if .requestId == $rid then .contextList += [$item] else . end)' \ + "$MCP_SESSION_FILE" > "$tmp" && mv "$tmp" "$MCP_SESSION_FILE" + + _mcp_session_push +} + +mcp_session_add_decision() { + # Usage: mcp_session_add_decision + local req_id="$1" decision="$2" + + local tmp; tmp=$(mktemp) + jq --arg rid "$req_id" --arg decision "$decision" \ + '.entries |= map(if .requestId == $rid then .designDecisions += [$decision] else . end)' \ + "$MCP_SESSION_FILE" > "$tmp" && mv "$tmp" "$MCP_SESSION_FILE" + + _mcp_session_push +} + +mcp_session_add_requirement() { + # Usage: mcp_session_add_requirement + local req_id="$1" requirement="$2" + + local tmp; tmp=$(mktemp) + jq --arg rid "$req_id" --arg requirement "$requirement" \ + '.entries |= map(if .requestId == $rid then .requirementsDiscovered += [$requirement] else . end)' \ + "$MCP_SESSION_FILE" > "$tmp" && mv "$tmp" "$MCP_SESSION_FILE" + + _mcp_session_push +} + +mcp_session_add_blocker() { + # Usage: mcp_session_add_blocker + local req_id="$1" blocker="$2" + + local tmp; tmp=$(mktemp) + jq --arg rid "$req_id" --arg blocker "$blocker" \ + '.entries |= map(if .requestId == $rid then .blockers += [$blocker] else . end)' \ + "$MCP_SESSION_FILE" > "$tmp" && mv "$tmp" "$MCP_SESSION_FILE" + + _mcp_session_push } # ─── Dialog ────────────────────────────────────────────────────────────────── @@ -241,6 +300,7 @@ mcp_session_send_dialog() { # ─── Internal ──────────────────────────────────────────────────────────────── _mcp_session_push() { + _mcp_session_normalize curl -sf -X POST \ -H "X-Api-Key: ${MCP_API_KEY}" \ -H "X-Workspace-Path: ${MCP_WORKSPACE_PATH}" \ @@ -249,3 +309,16 @@ _mcp_session_push() { "${MCP_BASE_URL}/mcpserver/sessionlog" \ > /dev/null } + +_mcp_session_normalize() { + local tmp; tmp=$(mktemp) + jq ' + if (.entries | type) == "array" then . + elif (.turns | type) == "array" then . + { entries: .turns } + else . + { entries: [] } + end + | del(.turns) + | .entryCount = (.entries | length) + | .totalTokens = (([.entries[]?.tokenCount // 0] | add) // 0) + ' "$MCP_SESSION_FILE" > "$tmp" && mv "$tmp" "$MCP_SESSION_FILE" +} diff --git a/tools/bash/mcp-session.tests.sh b/tools/bash/mcp-session.tests.sh index 67850ce1..09dde30c 100644 --- a/tools/bash/mcp-session.tests.sh +++ b/tools/bash/mcp-session.tests.sh @@ -149,11 +149,11 @@ it "returns the session ID" \ rm -f \"\$MCP_SESSION_FILE\" " -# -- mcp_session_add_entry -- +# -- mcp_session_add_turn -- -describe "mcp_session_add_entry" +describe "mcp_session_add_turn" -it "adds entry with correct requestId and queryTitle" \ +it "adds turn with correct requestId and queryTitle" \ bash -c " source '$SCRIPT_DIR/mcp-session.sh' curl() { :; } @@ -161,14 +161,14 @@ it "adds entry with correct requestId and queryTitle" \ MCP_API_KEY='key' MCP_SESSION_FILE=\$(mktemp /tmp/mcp-test-XXXXXX.json) mcp_session_create 'A' 't' 'm' 'sid' > /dev/null - mcp_session_add_entry 'req-001' 'Fix bug' 'Fix the auth bug' 'in_progress' + mcp_session_add_turn 'req-001' 'Fix bug' 'Fix the auth bug' 'in_progress' rid=\$(jq -r '.entries[0].requestId' \"\$MCP_SESSION_FILE\") qt=\$(jq -r '.entries[0].queryTitle' \"\$MCP_SESSION_FILE\") [[ \"\$rid\" == 'req-001' && \"\$qt\" == 'Fix bug' ]] rm -f \"\$MCP_SESSION_FILE\" " -it "sets entry status correctly" \ +it "sets turn status correctly" \ bash -c " source '$SCRIPT_DIR/mcp-session.sh' curl() { :; } @@ -176,13 +176,13 @@ it "sets entry status correctly" \ MCP_API_KEY='key' MCP_SESSION_FILE=\$(mktemp /tmp/mcp-test-XXXXXX.json) mcp_session_create 'A' 't' 'm' 'sid' > /dev/null - mcp_session_add_entry 'r1' 'title' 'text' 'completed' + mcp_session_add_turn 'r1' 'title' 'text' 'completed' st=\$(jq -r '.entries[0].status' \"\$MCP_SESSION_FILE\") [[ \"\$st\" == 'completed' ]] rm -f \"\$MCP_SESSION_FILE\" " -it "initializes empty collections on entry" \ +it "initializes empty collections on turn" \ bash -c " source '$SCRIPT_DIR/mcp-session.sh' curl() { :; } @@ -190,14 +190,14 @@ it "initializes empty collections on entry" \ MCP_API_KEY='key' MCP_SESSION_FILE=\$(mktemp /tmp/mcp-test-XXXXXX.json) mcp_session_create 'A' 't' 'm' 'sid' > /dev/null - mcp_session_add_entry 'r1' 'title' 'text' 'in_progress' + mcp_session_add_turn 'r1' 'title' 'text' 'in_progress' jq -e '.entries[0].actions | length == 0' \"\$MCP_SESSION_FILE\" > /dev/null && jq -e '.entries[0].filesModified | length == 0' \"\$MCP_SESSION_FILE\" > /dev/null && jq -e '.entries[0].designDecisions | length == 0' \"\$MCP_SESSION_FILE\" > /dev/null rm -f \"\$MCP_SESSION_FILE\" " -it "appends multiple entries" \ +it "appends multiple turns" \ bash -c " source '$SCRIPT_DIR/mcp-session.sh' curl() { :; } @@ -205,18 +205,18 @@ it "appends multiple entries" \ MCP_API_KEY='key' MCP_SESSION_FILE=\$(mktemp /tmp/mcp-test-XXXXXX.json) mcp_session_create 'A' 't' 'm' 'sid' > /dev/null - mcp_session_add_entry 'r1' 'First' 'text1' 'in_progress' - mcp_session_add_entry 'r2' 'Second' 'text2' 'completed' + mcp_session_add_turn 'r1' 'First' 'text1' 'in_progress' + mcp_session_add_turn 'r2' 'Second' 'text2' 'completed' count=\$(jq '.entries | length' \"\$MCP_SESSION_FILE\") [[ \"\$count\" == '2' ]] rm -f \"\$MCP_SESSION_FILE\" " -# -- mcp_session_update_entry -- +# -- mcp_session_update_turn -- -describe "mcp_session_update_entry" +describe "mcp_session_update_turn" -it "updates entry response field" \ +it "updates turn response field" \ bash -c " source '$SCRIPT_DIR/mcp-session.sh' curl() { :; } @@ -224,14 +224,14 @@ it "updates entry response field" \ MCP_API_KEY='key' MCP_SESSION_FILE=\$(mktemp /tmp/mcp-test-XXXXXX.json) mcp_session_create 'A' 't' 'm' 'sid' > /dev/null - mcp_session_add_entry 'r1' 'title' 'text' 'in_progress' - mcp_session_update_entry 'r1' 'response' 'All done!' + mcp_session_add_turn 'r1' 'title' 'text' 'in_progress' + mcp_session_update_turn 'r1' 'response' 'All done!' resp=\$(jq -r '.entries[0].response' \"\$MCP_SESSION_FILE\") [[ \"\$resp\" == 'All done!' ]] rm -f \"\$MCP_SESSION_FILE\" " -it "updates entry status field" \ +it "updates turn status field" \ bash -c " source '$SCRIPT_DIR/mcp-session.sh' curl() { :; } @@ -239,8 +239,8 @@ it "updates entry status field" \ MCP_API_KEY='key' MCP_SESSION_FILE=\$(mktemp /tmp/mcp-test-XXXXXX.json) mcp_session_create 'A' 't' 'm' 'sid' > /dev/null - mcp_session_add_entry 'r1' 'title' 'text' 'in_progress' - mcp_session_update_entry 'r1' 'status' 'completed' + mcp_session_add_turn 'r1' 'title' 'text' 'in_progress' + mcp_session_update_turn 'r1' 'status' 'completed' st=\$(jq -r '.entries[0].status' \"\$MCP_SESSION_FILE\") [[ \"\$st\" == 'completed' ]] rm -f \"\$MCP_SESSION_FILE\" @@ -258,7 +258,7 @@ it "adds action with correct fields" \ MCP_API_KEY='key' MCP_SESSION_FILE=\$(mktemp /tmp/mcp-test-XXXXXX.json) mcp_session_create 'A' 't' 'm' 'sid' > /dev/null - mcp_session_add_entry 'r1' 'title' 'text' 'in_progress' + mcp_session_add_turn 'r1' 'title' 'text' 'in_progress' mcp_session_add_action 'r1' 'Created file' 'create' 'new.cs' 'completed' desc=\$(jq -r '.entries[0].actions[0].description' \"\$MCP_SESSION_FILE\") atype=\$(jq -r '.entries[0].actions[0].type' \"\$MCP_SESSION_FILE\") @@ -275,7 +275,7 @@ it "auto-increments action order" \ MCP_API_KEY='key' MCP_SESSION_FILE=\$(mktemp /tmp/mcp-test-XXXXXX.json) mcp_session_create 'A' 't' 'm' 'sid' > /dev/null - mcp_session_add_entry 'r1' 'title' 'text' 'in_progress' + mcp_session_add_turn 'r1' 'title' 'text' 'in_progress' mcp_session_add_action 'r1' 'First' 'edit' 'a.cs' mcp_session_add_action 'r1' 'Second' 'edit' 'b.cs' o1=\$(jq '.entries[0].actions[0].order' \"\$MCP_SESSION_FILE\") @@ -284,6 +284,22 @@ it "auto-increments action order" \ rm -f \"\$MCP_SESSION_FILE\" " +it "pushes immediately after adding an action" \ + bash -c " + source '$SCRIPT_DIR/mcp-session.sh' + call_log=\$(mktemp /tmp/mcp-curl-log-XXXXXX) + curl() { echo called >> \"\$call_log\"; } + MCP_BASE_URL='http://test:9999' + MCP_API_KEY='key' + MCP_SESSION_FILE=\$(mktemp /tmp/mcp-test-XXXXXX.json) + mcp_session_create 'A' 't' 'm' 'sid' > /dev/null + mcp_session_add_turn 'r1' 'title' 'text' 'in_progress' + mcp_session_add_action 'r1' 'Tracked change' 'edit' 'src/a.cs' + calls=\$(wc -l < \"\$call_log\") + [[ \"\$calls\" -ge 3 ]] + rm -f \"\$MCP_SESSION_FILE\" \"\$call_log\" + " + # -- mcp_session_add_file / mcp_session_add_tag -- describe "mcp_session_add_file and mcp_session_add_tag" @@ -296,7 +312,7 @@ it "appends file to filesModified" \ MCP_API_KEY='key' MCP_SESSION_FILE=\$(mktemp /tmp/mcp-test-XXXXXX.json) mcp_session_create 'A' 't' 'm' 'sid' > /dev/null - mcp_session_add_entry 'r1' 'title' 'text' 'in_progress' + mcp_session_add_turn 'r1' 'title' 'text' 'in_progress' mcp_session_add_file 'r1' 'src/main.cs' mcp_session_add_file 'r1' 'src/test.cs' count=\$(jq '.entries[0].filesModified | length' \"\$MCP_SESSION_FILE\") @@ -313,7 +329,7 @@ it "appends tag to tags array" \ MCP_API_KEY='key' MCP_SESSION_FILE=\$(mktemp /tmp/mcp-test-XXXXXX.json) mcp_session_create 'A' 't' 'm' 'sid' > /dev/null - mcp_session_add_entry 'r1' 'title' 'text' 'in_progress' + mcp_session_add_turn 'r1' 'title' 'text' 'in_progress' mcp_session_add_tag 'r1' 'bugfix' tag=\$(jq -r '.entries[0].tags[0]' \"\$MCP_SESSION_FILE\") [[ \"\$tag\" == 'bugfix' ]] @@ -381,4 +397,4 @@ echo "----------------------------------------" if [[ $FAILED -gt 0 ]]; then exit 1 -fi \ No newline at end of file +fi diff --git a/tools/powershell/McpSession.Tests.ps1 b/tools/powershell/McpSession.Tests.ps1 index 891316c6..b60b611a 100644 --- a/tools/powershell/McpSession.Tests.ps1 +++ b/tools/powershell/McpSession.Tests.ps1 @@ -117,11 +117,12 @@ workspace: demo $s.status | Should -Be 'in_progress' } - It 'initializes empty entries list' { - $s = New-McpSessionLog -SourceType 'T' -Title 't' -Model 'm' - $s.entries.GetType().Name | Should -BeLike 'List*' - $s.entries.Count | Should -Be 0 - } + It 'initializes empty turns list' { + $s = New-McpSessionLog -SourceType 'T' -Title 't' -Model 'm' + $s.turns.GetType().Name | Should -BeLike 'List*' + $s.turns.Count | Should -Be 0 + $s.entries.Count | Should -Be 0 + } It 'auto-generates sessionId with source prefix' { $s = New-McpSessionLog -SourceType 'Copilot' -Title 't' -Model 'm' @@ -140,40 +141,55 @@ workspace: demo $s.lastUpdated | Should -Match '^\d{4}-\d{2}-\d{2}T' } - It 'pushes to server on creation' { - New-McpSessionLog -SourceType 'T' -Title 't' -Model 'm' - Should -Invoke Invoke-RestMethod -ModuleName McpSession -ParameterFilter { - $Method -eq 'Post' -and $Uri -like '*/mcpserver/sessionlog' - } - } - } - - # ── Add-McpSessionEntry ─────────────────────────────────────────────────── - - Describe 'Add-McpSessionEntry' { + It 'pushes to server on creation' { + New-McpSessionLog -SourceType 'T' -Title 't' -Model 'm' + Should -Invoke Invoke-RestMethod -ModuleName McpSession -ParameterFilter { + $Method -eq 'Post' -and $Uri -like '*/mcpserver/sessionlog' + } + } + + It 'posts canonical entries payload (not turns) to server' { + $script:capturedBody = $null + Mock Invoke-RestMethod { + param($Uri, $Method, $Body) + if ($Method -eq 'Post' -and $Uri -like '*/mcpserver/sessionlog') { + $script:capturedBody = $Body + } + return $null + } -ModuleName McpSession + + New-McpSessionLog -SourceType 'T' -Title 't' -Model 'm' | Out-Null + $script:capturedBody | Should -Match '"entries"' + $script:capturedBody | Should -Not -Match '"turns"' + } + } + + # ── Add-McpSessionTurn ─────────────────────────────────────────────────── + + Describe 'Add-McpSessionTurn' { BeforeEach { Initialize-McpSession -BaseUrl 'http://test:9999' -ApiKey 'k' } - It 'adds entry to session entries list' { + It 'adds turn to session turns list' { $s = New-McpSessionLog -SourceType 'T' -Title 't' -Model 'm' - $e = Add-McpSessionEntry -Session $s -QueryTitle 'Fix bug' -QueryText 'Fix the auth bug' - $s.entries.Count | Should -Be 1 + $e = Add-McpSessionTurn -Session $s -QueryTitle 'Fix bug' -QueryText 'Fix the auth bug' + $s.turns.Count | Should -Be 1 $e.queryTitle | Should -Be 'Fix bug' $e.queryText | Should -Be 'Fix the auth bug' } It 'defaults status to in_progress' { $s = New-McpSessionLog -SourceType 'T' -Title 't' -Model 'm' - $e = Add-McpSessionEntry -Session $s -QueryTitle 'q' -QueryText 'q' + $e = Add-McpSessionTurn -Session $s -QueryTitle 'q' -QueryText 'q' $e.status | Should -Be 'in_progress' } It 'auto-generates sequential requestIds' { $s = New-McpSessionLog -SourceType 'T' -Title 't' -Model 'm' - $e1 = Add-McpSessionEntry -Session $s -QueryTitle 'First' -QueryText 'q1' -NoPush - $e2 = Add-McpSessionEntry -Session $s -QueryTitle 'Second' -QueryText 'q2' -NoPush - $e3 = Add-McpSessionEntry -Session $s -QueryTitle 'Third' -QueryText 'q3' -NoPush + $e1 = Add-McpSessionTurn -Session $s -QueryTitle 'First' -QueryText 'q1' -NoPush + $e2 = Add-McpSessionTurn -Session $s -QueryTitle 'Second' -QueryText 'q2' -NoPush + $e3 = Add-McpSessionTurn -Session $s -QueryTitle 'Third' -QueryText 'q3' -NoPush $e1.requestId | Should -Be 'req-001' $e2.requestId | Should -Be 'req-002' $e3.requestId | Should -Be 'req-003' @@ -181,19 +197,19 @@ workspace: demo It 'inherits model from session' { $s = New-McpSessionLog -SourceType 'T' -Title 't' -Model 'claude-sonnet' - $e = Add-McpSessionEntry -Session $s -QueryTitle 'q' -QueryText 'q' -NoPush + $e = Add-McpSessionTurn -Session $s -QueryTitle 'q' -QueryText 'q' -NoPush $e.model | Should -Be 'claude-sonnet' } It 'accepts explicit model override' { $s = New-McpSessionLog -SourceType 'T' -Title 't' -Model 'default' - $e = Add-McpSessionEntry -Session $s -QueryTitle 'q' -QueryText 'q' -Model 'override' -NoPush + $e = Add-McpSessionTurn -Session $s -QueryTitle 'q' -QueryText 'q' -Model 'override' -NoPush $e.model | Should -Be 'override' } It 'initializes empty mutable collections' { $s = New-McpSessionLog -SourceType 'T' -Title 't' -Model 'm' - $e = Add-McpSessionEntry -Session $s -QueryTitle 'q' -QueryText 'q' -NoPush + $e = Add-McpSessionTurn -Session $s -QueryTitle 'q' -QueryText 'q' -NoPush $e.designDecisions.Count | Should -Be 0 $e.requirementsDiscovered.Count | Should -Be 0 $e.filesModified.Count | Should -Be 0 @@ -202,60 +218,60 @@ workspace: demo $e.processingDialog.Count | Should -Be 0 } - It 'adds entry locally without extra push when -NoPush is set' { + It 'adds turn locally without extra push when -NoPush is set' { $s = New-McpSessionLog -SourceType 'T' -Title 't' -Model 'm' $originalUpdated = $s.lastUpdated - Add-McpSessionEntry -Session $s -QueryTitle 'NoPush test' -QueryText 'test' -NoPush - # Entry was added to in-memory list - $s.entries.Count | Should -Be 1 - $s.entries[0].queryTitle | Should -Be 'NoPush test' + Add-McpSessionTurn -Session $s -QueryTitle 'NoPush test' -QueryText 'test' -NoPush + # Turn was added to in-memory list + $s.turns.Count | Should -Be 1 + $s.turns[0].queryTitle | Should -Be 'NoPush test' # lastUpdated should NOT have been bumped (Update-McpSessionLog was not called) $s.lastUpdated | Should -Be $originalUpdated } } - # ── Set-McpSessionEntry ─────────────────────────────────────────────────── + # ── Set-McpSessionTurn ─────────────────────────────────────────────────── - Describe 'Set-McpSessionEntry' { + Describe 'Set-McpSessionTurn' { BeforeEach { Initialize-McpSession -BaseUrl 'http://test:9999' -ApiKey 'k' } It 'updates response field' { $s = New-McpSessionLog -SourceType 'T' -Title 't' -Model 'm' - $e = Add-McpSessionEntry -Session $s -QueryTitle 'q' -QueryText 'q' -NoPush - Set-McpSessionEntry -Entry $e -Response 'All done!' -NoPush + $e = Add-McpSessionTurn -Session $s -QueryTitle 'q' -QueryText 'q' -NoPush + Set-McpSessionTurn -Turn $e -Response 'All done!' -NoPush $e.response | Should -Be 'All done!' } It 'updates status field' { $s = New-McpSessionLog -SourceType 'T' -Title 't' -Model 'm' - $e = Add-McpSessionEntry -Session $s -QueryTitle 'q' -QueryText 'q' -NoPush - Set-McpSessionEntry -Entry $e -Status completed -NoPush + $e = Add-McpSessionTurn -Session $s -QueryTitle 'q' -QueryText 'q' -NoPush + Set-McpSessionTurn -Turn $e -Status completed -NoPush $e.status | Should -Be 'completed' } It 'appends to filesModified' { $s = New-McpSessionLog -SourceType 'T' -Title 't' -Model 'm' - $e = Add-McpSessionEntry -Session $s -QueryTitle 'q' -QueryText 'q' -NoPush - Set-McpSessionEntry -Entry $e -FilesModified @('a.cs', 'b.cs') -NoPush - Set-McpSessionEntry -Entry $e -FilesModified @('c.cs') -NoPush + $e = Add-McpSessionTurn -Session $s -QueryTitle 'q' -QueryText 'q' -NoPush + Set-McpSessionTurn -Turn $e -FilesModified @('a.cs', 'b.cs') -NoPush + Set-McpSessionTurn -Turn $e -FilesModified @('c.cs') -NoPush $e.filesModified.Count | Should -Be 3 $e.filesModified[2] | Should -Be 'c.cs' } It 'appends to designDecisions' { $s = New-McpSessionLog -SourceType 'T' -Title 't' -Model 'm' - $e = Add-McpSessionEntry -Session $s -QueryTitle 'q' -QueryText 'q' -NoPush - Set-McpSessionEntry -Entry $e -DesignDecisions @('Use JWT', 'Skip caching') -NoPush + $e = Add-McpSessionTurn -Session $s -QueryTitle 'q' -QueryText 'q' -NoPush + Set-McpSessionTurn -Turn $e -DesignDecisions @('Use JWT', 'Skip caching') -NoPush $e.designDecisions.Count | Should -Be 2 } It 'pushes to server when Session is provided and NoPush is not set' { $s = New-McpSessionLog -SourceType 'T' -Title 't' -Model 'm' - $e = Add-McpSessionEntry -Session $s -QueryTitle 'q' -QueryText 'q' -NoPush + $e = Add-McpSessionTurn -Session $s -QueryTitle 'q' -QueryText 'q' -NoPush Mock Invoke-RestMethod { $null } -ModuleName McpSession - Set-McpSessionEntry -Entry $e -Session $s -Response 'done' + Set-McpSessionTurn -Turn $e -Session $s -Response 'done' Should -Invoke Invoke-RestMethod -ModuleName McpSession -ParameterFilter { $Method -eq 'Post' -and $Uri -like '*/mcpserver/sessionlog' } @@ -271,10 +287,10 @@ workspace: demo It 'adds action with auto-incrementing order' { $s = New-McpSessionLog -SourceType 'T' -Title 't' -Model 'm' - $e = Add-McpSessionEntry -Session $s -QueryTitle 'q' -QueryText 'q' -NoPush - $a1 = Add-McpAction -Entry $e -Description 'Created file' -Type create -FilePath 'new.cs' - $a2 = Add-McpAction -Entry $e -Description 'Edited file' -Type edit -FilePath 'old.cs' - $a3 = Add-McpAction -Entry $e -Description 'Committed' -Type commit + $e = Add-McpSessionTurn -Session $s -QueryTitle 'q' -QueryText 'q' -NoPush + $a1 = Add-McpAction -Turn $e -Description 'Created file' -Type create -FilePath 'new.cs' + $a2 = Add-McpAction -Turn $e -Description 'Edited file' -Type edit -FilePath 'old.cs' + $a3 = Add-McpAction -Turn $e -Description 'Committed' -Type commit $e.actions.Count | Should -Be 3 $a1.order | Should -Be 1 $a2.order | Should -Be 2 @@ -283,8 +299,8 @@ workspace: demo It 'sets correct type and description' { $s = New-McpSessionLog -SourceType 'T' -Title 't' -Model 'm' - $e = Add-McpSessionEntry -Session $s -QueryTitle 'q' -QueryText 'q' -NoPush - $a = Add-McpAction -Entry $e -Description 'Deleted unused file' -Type delete -FilePath 'old.txt' + $e = Add-McpSessionTurn -Session $s -QueryTitle 'q' -QueryText 'q' -NoPush + $a = Add-McpAction -Turn $e -Description 'Deleted unused file' -Type delete -FilePath 'old.txt' $a.description | Should -Be 'Deleted unused file' $a.type | Should -Be 'delete' $a.filePath | Should -Be 'old.txt' @@ -292,25 +308,35 @@ workspace: demo It 'defaults status to completed' { $s = New-McpSessionLog -SourceType 'T' -Title 't' -Model 'm' - $e = Add-McpSessionEntry -Session $s -QueryTitle 'q' -QueryText 'q' -NoPush - $a = Add-McpAction -Entry $e -Description 'test' -Type edit + $e = Add-McpSessionTurn -Session $s -QueryTitle 'q' -QueryText 'q' -NoPush + $a = Add-McpAction -Turn $e -Description 'test' -Type edit $a.status | Should -Be 'completed' } It 'accepts explicit status' { $s = New-McpSessionLog -SourceType 'T' -Title 't' -Model 'm' - $e = Add-McpSessionEntry -Session $s -QueryTitle 'q' -QueryText 'q' -NoPush - $a = Add-McpAction -Entry $e -Description 'WIP' -Type edit -Status in_progress + $e = Add-McpSessionTurn -Session $s -QueryTitle 'q' -QueryText 'q' -NoPush + $a = Add-McpAction -Turn $e -Description 'WIP' -Type edit -Status in_progress $a.status | Should -Be 'in_progress' } - It 'defaults filePath to empty string' { - $s = New-McpSessionLog -SourceType 'T' -Title 't' -Model 'm' - $e = Add-McpSessionEntry -Session $s -QueryTitle 'q' -QueryText 'q' -NoPush - $a = Add-McpAction -Entry $e -Description 'Design choice' -Type design_decision - $a.filePath | Should -Be '' - } - } + It 'defaults filePath to empty string' { + $s = New-McpSessionLog -SourceType 'T' -Title 't' -Model 'm' + $e = Add-McpSessionTurn -Session $s -QueryTitle 'q' -QueryText 'q' -NoPush + $a = Add-McpAction -Turn $e -Description 'Design choice' -Type design_decision + $a.filePath | Should -Be '' + } + + It 'pushes to server when Session is provided and NoPush is not set' { + $s = New-McpSessionLog -SourceType 'T' -Title 't' -Model 'm' + $e = Add-McpSessionTurn -Session $s -QueryTitle 'q' -QueryText 'q' -NoPush + Mock Invoke-RestMethod { $null } -ModuleName McpSession + Add-McpAction -Turn $e -Session $s -Description 'Tracked change' -Type edit -FilePath 'src/a.cs' | Out-Null + Should -Invoke Invoke-RestMethod -ModuleName McpSession -ParameterFilter { + $Method -eq 'Post' -and $Uri -like '*/mcpserver/sessionlog' + } + } + } # ── Update-McpSessionLog ────────────────────────────────────────────────── diff --git a/tools/powershell/McpSession.psm1 b/tools/powershell/McpSession.psm1 index 9ae4d94c..77407e68 100644 --- a/tools/powershell/McpSession.psm1 +++ b/tools/powershell/McpSession.psm1 @@ -6,14 +6,14 @@ Provides cmdlets to create, update, query, and manage session logs on an MCP Context Server. Automatically reads connection details from the AGENTS-README-FIRST.yaml marker file. -.NOTES - Usage: Import-Module ./McpSession.psm1 - Initialize-McpSession # reads marker, sets connection - $s = New-McpSessionLog -Title "My session" # creates session - Add-McpSessionEntry -Session $s -QueryTitle "Fix bug" -QueryText "Fix the auth bug" -Status in_progress - Send-McpDialog -Session $s -RequestId req-001 -Content "Analyzing the issue..." -Category reasoning - Update-McpSessionLog -Session $s # pushes to server -#> +.NOTES + Usage: Import-Module ./McpSession.psm1 + Initialize-McpSession # reads marker, sets connection + $s = New-McpSessionLog -Title "My session" # creates session + Add-McpSessionTurn -Session $s -QueryTitle "Fix bug" -QueryText "Fix the auth bug" -Status in_progress + Send-McpDialog -Session $s -RequestId req-001 -Content "Analyzing the issue..." -Category reasoning + Update-McpSessionLog -Session $s # pushes to server +#> # ─── Module state ──────────────────────────────────────────────────────────── $script:McpBaseUrl = $null @@ -77,7 +77,7 @@ function Initialize-McpSession { # ─── Session object ────────────────────────────────────────────────────────── -function New-McpSessionLog { +function New-McpSessionLog { <# .SYNOPSIS Create a new session log object and POST it to the server. .PARAMETER SourceType Agent identifier (e.g. "Copilot", "Cline", "Cursor"). @@ -99,22 +99,26 @@ function New-McpSessionLog { } $now = (Get-Date).ToUniversalTime().ToString("o") - $session = [PSCustomObject]@{ - sourceType = $SourceType - sessionId = $SessionId - title = $Title - model = $Model - started = $now - lastUpdated = $now - status = "in_progress" - entries = [System.Collections.Generic.List[object]]::new() - } - - Push-SessionLog $session - return $session -} - -function Update-McpSessionLog { + $session = [PSCustomObject]@{ + sourceType = $SourceType + sessionId = $SessionId + title = $Title + model = $Model + started = $now + lastUpdated = $now + status = "in_progress" + entryCount = 0 + totalTokens = 0 + entries = [System.Collections.Generic.List[object]]::new() + } + # Keep legacy "turns" alias in-memory for older scripts/tests. + $session | Add-Member -NotePropertyName turns -NotePropertyValue $session.entries -Force + + Push-SessionLog $session + return $session +} + +function Update-McpSessionLog { <# .SYNOPSIS Push the current session log state to the server. .PARAMETER Session The session object returned by New-McpSessionLog. @@ -127,14 +131,20 @@ function Update-McpSessionLog { [ValidateSet("in_progress","completed")][string]$Status, [string]$Title ) - Assert-Initialized - - $Session.lastUpdated = (Get-Date).ToUniversalTime().ToString("o") - if ($Status) { $Session.status = $Status } - if ($Title) { $Session.title = $Title } - - Push-SessionLog $Session -} + Assert-Initialized + + $turns = Get-McpSessionTurnList -Session $Session + $Session.lastUpdated = (Get-Date).ToUniversalTime().ToString("o") + $Session.entryCount = $turns.Count + $totalTokens = @($turns | ForEach-Object { + if ($_.PSObject.Properties.Name -contains "tokenCount" -and $null -ne $_.tokenCount) { [int]$_.tokenCount } else { 0 } + } | Measure-Object -Sum).Sum + $Session.totalTokens = if ($null -eq $totalTokens) { 0 } else { [int]$totalTokens } + if ($Status) { $Session.status = $Status } + if ($Title) { $Session.title = $Title } + + Push-SessionLog $Session +} function Get-McpSessionLog { <# @@ -152,22 +162,53 @@ function Get-McpSessionLog { return Invoke-RestMethod -Uri $uri -Headers $script:McpHeaders } -# ─── Entries ───────────────────────────────────────────────────────────────── - -function Add-McpSessionEntry { - <# - .SYNOPSIS Add a request entry to the session and push to server. - .PARAMETER Session The session object. - .PARAMETER RequestId Unique ID for this request. Auto-generated if omitted. - .PARAMETER QueryTitle Short summary of the query. - .PARAMETER QueryText Full user query or task description. - .PARAMETER Interpretation Your understanding of what was asked. - .PARAMETER Response Your response text. - .PARAMETER Status "in_progress" or "completed". - .PARAMETER Model Model used for this entry. Defaults to session model. - .PARAMETER Tags Array of tags (e.g. "refactor", "bugfix"). - .PARAMETER ContextList Array of files or resources referenced. - .PARAMETER Push If set, immediately push to server. Default: true. +# ─── Turns ─────────────────────────────────────────────────────────────────── + +function Get-McpSessionTurnList { + <# + .SYNOPSIS Ensure the session object exposes a "turns" list and return it. + .PARAMETER Session The session object. + #> + [CmdletBinding()] + param( + [Parameter(Mandatory)][PSCustomObject]$Session + ) + + if ($Session.PSObject.Properties.Name -contains "entries") { + if (-not ($Session.PSObject.Properties.Name -contains "turns")) { + $Session | Add-Member -NotePropertyName turns -NotePropertyValue $Session.entries -Force + } else { + $Session.turns = $Session.entries + } + return ,$Session.entries + } + + $entries = [System.Collections.Generic.List[object]]::new() + if ($Session.PSObject.Properties.Name -contains "turns") { + foreach ($item in @($Session.turns)) { + [void]$entries.Add($item) + } + } + + $Session | Add-Member -NotePropertyName entries -NotePropertyValue $entries -Force + $Session | Add-Member -NotePropertyName turns -NotePropertyValue $entries -Force + return ,$Session.entries +} + +function Add-McpSessionTurn { + <# + .SYNOPSIS Add a request turn to the session and push to server. + .PARAMETER Session The session object. + .PARAMETER RequestId Unique ID for this request. Auto-generated if omitted. + .PARAMETER QueryTitle Short summary of the query. + .PARAMETER QueryText Full user query or task description. + .PARAMETER Interpretation Your understanding of what was asked. + .PARAMETER Response Your response text. + .PARAMETER Status "in_progress" or "completed". + .PARAMETER Model Model used for this turn. Defaults to session model. + .PARAMETER Tags Array of tags (e.g. "refactor", "bugfix"). + .PARAMETER ContextList Array of files or resources referenced. + .PARAMETER Push If set, immediately push to server. Default: true. #> [CmdletBinding()] param( @@ -177,118 +218,205 @@ function Add-McpSessionEntry { [Parameter(Mandatory)][string]$QueryText, [string]$Interpretation = "", [string]$Response = "", - [ValidateSet("in_progress","completed")][string]$Status = "in_progress", - [string]$Model, - [string[]]$Tags = @(), - [string[]]$ContextList = @(), - [switch]$NoPush - ) - - if (-not $RequestId) { $RequestId = "req-$('{0:D3}' -f ($Session.entries.Count + 1))" } - if (-not $Model) { $Model = $Session.model } - - $entry = [PSCustomObject]@{ - requestId = $RequestId - timestamp = (Get-Date).ToUniversalTime().ToString("o") - queryText = $QueryText - queryTitle = $QueryTitle + [ValidateSet("in_progress","completed")][string]$Status = "in_progress", + [string]$Model, + [string[]]$Tags = @(), + [string[]]$ContextList = @(), + [Nullable[int]]$TokenCount, + [string]$ModelProvider = "", + [string]$FailureNote = "", + [Nullable[double]]$Score, + [Nullable[bool]]$IsPremium, + [string[]]$DesignDecisions = @(), + [string[]]$RequirementsDiscovered = @(), + [string[]]$FilesModified = @(), + [string[]]$Blockers = @(), + [switch]$NoPush + ) + + $turns = Get-McpSessionTurnList -Session $Session + if (-not $RequestId) { $RequestId = "req-$('{0:D3}' -f ($turns.Count + 1))" } + if (-not $Model) { $Model = $Session.model } + + $turn = [PSCustomObject]@{ + requestId = $RequestId + timestamp = (Get-Date).ToUniversalTime().ToString("o") + queryText = $QueryText + queryTitle = $QueryTitle response = $Response - interpretation = $Interpretation - status = $Status - model = $Model - tags = $Tags - contextList = $ContextList - designDecisions = [System.Collections.Generic.List[string]]::new() - requirementsDiscovered = [System.Collections.Generic.List[string]]::new() - filesModified = [System.Collections.Generic.List[string]]::new() - blockers = [System.Collections.Generic.List[string]]::new() - actions = [System.Collections.Generic.List[object]]::new() - processingDialog = [System.Collections.Generic.List[object]]::new() - } - - $Session.entries.Add($entry) - - if (-not $NoPush) { - Update-McpSessionLog -Session $Session - } - return $entry -} - -function Set-McpSessionEntry { - <# - .SYNOPSIS Update fields on an existing entry and optionally push. - .PARAMETER Entry The entry object returned by Add-McpSessionEntry. - .PARAMETER Session The parent session object. - .PARAMETER Response Updated response text. - .PARAMETER Status Updated status. - #> - [CmdletBinding()] - param( - [Parameter(Mandatory)][PSCustomObject]$Entry, - [PSCustomObject]$Session, - [string]$Response, - [ValidateSet("in_progress","completed")][string]$Status, - [string[]]$FilesModified, - [string[]]$DesignDecisions, - [switch]$NoPush - ) - - if ($Response) { $Entry.response = $Response } - if ($Status) { $Entry.status = $Status } - if ($FilesModified) { foreach ($f in $FilesModified) { $Entry.filesModified.Add($f) } } - if ($DesignDecisions) { foreach ($d in $DesignDecisions) { $Entry.designDecisions.Add($d) } } - - if ($Session -and -not $NoPush) { - Update-McpSessionLog -Session $Session - } -} + interpretation = $Interpretation + status = $Status + model = $Model + modelProvider = $ModelProvider + tokenCount = if ($TokenCount.HasValue) { $TokenCount.Value } else { $null } + failureNote = if ([string]::IsNullOrWhiteSpace($FailureNote)) { $null } else { $FailureNote } + score = if ($Score.HasValue) { $Score.Value } else { $null } + isPremium = if ($IsPremium.HasValue) { $IsPremium.Value } else { $null } + tags = [System.Collections.Generic.List[string]]::new($Tags) + contextList = [System.Collections.Generic.List[string]]::new($ContextList) + designDecisions = [System.Collections.Generic.List[string]]::new($DesignDecisions) + requirementsDiscovered = [System.Collections.Generic.List[string]]::new($RequirementsDiscovered) + filesModified = [System.Collections.Generic.List[string]]::new($FilesModified) + blockers = [System.Collections.Generic.List[string]]::new($Blockers) + actions = [System.Collections.Generic.List[object]]::new() + processingDialog = [System.Collections.Generic.List[object]]::new() + } + + [void]$turns.Add($turn) + + if (-not $NoPush) { + Update-McpSessionLog -Session $Session + } + return $turn +} + +function Set-McpSessionTurn { + <# + .SYNOPSIS Update fields on an existing turn and optionally push. + .PARAMETER Turn The turn object returned by Add-McpSessionTurn. + .PARAMETER Session The parent session object. + .PARAMETER Response Updated response text. + .PARAMETER Status Updated status. + #> + [CmdletBinding()] + param( + [Parameter(Mandatory)][PSCustomObject]$Turn, + [PSCustomObject]$Session, + [string]$Response, + [string]$Interpretation, + [ValidateSet("in_progress","completed")][string]$Status, + [Nullable[int]]$TokenCount, + [string]$ModelProvider, + [string]$FailureNote, + [Nullable[double]]$Score, + [Nullable[bool]]$IsPremium, + [string[]]$Tags, + [string[]]$ContextList, + [string[]]$FilesModified, + [string[]]$DesignDecisions, + [string[]]$RequirementsDiscovered, + [string[]]$Blockers, + [switch]$NoPush + ) + + if ($Response) { $Turn.response = $Response } + if ($Interpretation) { $Turn.interpretation = $Interpretation } + if ($Status) { $Turn.status = $Status } + if ($TokenCount.HasValue) { $Turn.tokenCount = $TokenCount.Value } + if ($ModelProvider) { $Turn.modelProvider = $ModelProvider } + if ($FailureNote) { $Turn.failureNote = $FailureNote } + if ($Score.HasValue) { $Turn.score = $Score.Value } + if ($IsPremium.HasValue) { $Turn.isPremium = $IsPremium.Value } + if ($Tags) { + $list = Get-McpSessionTurnStringList -Turn $Turn -Field "tags" + foreach ($t in $Tags) { $list.Add($t) } + } + if ($ContextList) { + $list = Get-McpSessionTurnStringList -Turn $Turn -Field "contextList" + foreach ($c in $ContextList) { $list.Add($c) } + } + if ($FilesModified) { + $list = Get-McpSessionTurnStringList -Turn $Turn -Field "filesModified" + foreach ($f in $FilesModified) { $list.Add($f) } + } + if ($DesignDecisions) { + $list = Get-McpSessionTurnStringList -Turn $Turn -Field "designDecisions" + foreach ($d in $DesignDecisions) { $list.Add($d) } + } + if ($RequirementsDiscovered) { + $list = Get-McpSessionTurnStringList -Turn $Turn -Field "requirementsDiscovered" + foreach ($r in $RequirementsDiscovered) { $list.Add($r) } + } + if ($Blockers) { + $list = Get-McpSessionTurnStringList -Turn $Turn -Field "blockers" + foreach ($b in $Blockers) { $list.Add($b) } + } + + if ($Session -and -not $NoPush) { + Update-McpSessionLog -Session $Session + } +} # ─── Actions ───────────────────────────────────────────────────────────────── -function Add-McpAction { - <# - .SYNOPSIS Add an action to a session entry. - .PARAMETER Entry The entry object. - .PARAMETER Description What was done. - .PARAMETER Type Action type: edit, create, delete, commit, design_decision, etc. - .PARAMETER FilePath Affected file path (empty string if N/A). +function Add-McpAction { + <# + .SYNOPSIS Add an action to a session turn. + .PARAMETER Turn The turn object. + .PARAMETER Description What was done. + .PARAMETER Type Action type: edit, create, delete, commit, design_decision, etc. + .PARAMETER FilePath Affected file path (empty string if N/A). .PARAMETER Status "completed", "in_progress", or "failed". #> - [CmdletBinding()] - param( - [Parameter(Mandatory)][PSCustomObject]$Entry, - [Parameter(Mandatory)][string]$Description, - [Parameter(Mandatory)][ValidateSet( - "edit","create","delete","design_decision","commit", - "pr_comment","issue_comment","web_reference", - "dependency_add","license_violation","origin_violation", - "origin_review","entity_violation","copilot_invocation","policy_change" - )][string]$Type, - [string]$FilePath = "", - [ValidateSet("completed","in_progress","failed")][string]$Status = "completed" - ) - - $action = [PSCustomObject]@{ - order = $Entry.actions.Count + 1 - description = $Description - type = $Type - status = $Status - filePath = $FilePath - } - $Entry.actions.Add($action) - return $action -} + [CmdletBinding()] + param( + [Parameter(Mandatory)][PSCustomObject]$Turn, + [Parameter(Mandatory)][string]$Description, + [Parameter(Mandatory)][ValidateSet( + "edit","create","delete","design_decision","commit", + "pr_comment","issue_comment","web_reference", + "dependency_add","license_violation","origin_violation", + "origin_review","entity_violation","copilot_invocation","policy_change" + )][string]$Type, + [PSCustomObject]$Session, + [string]$FilePath = "", + [ValidateSet("completed","in_progress","failed")][string]$Status = "completed", + [switch]$NoPush + ) + + $action = [PSCustomObject]@{ + order = $Turn.actions.Count + 1 + description = $Description + type = $Type + status = $Status + filePath = $FilePath + } + $Turn.actions.Add($action) + if ($Session -and -not $NoPush) { + Update-McpSessionLog -Session $Session + } + return $action +} + +function Add-McpTurnDetail { + <# + .SYNOPSIS Append detail text to a turn list field and optionally push. + .PARAMETER Turn The turn object. + .PARAMETER Field One of tags/contextList/designDecisions/requirementsDiscovered/filesModified/blockers. + .PARAMETER Value Detail string to append. + .PARAMETER Session Optional parent session for immediate persistence. + .PARAMETER NoPush When set, do not push even when Session is provided. + #> + [CmdletBinding()] + param( + [Parameter(Mandatory)][PSCustomObject]$Turn, + [Parameter(Mandatory)][ValidateSet("tags","contextList","designDecisions","requirementsDiscovered","filesModified","blockers")][string]$Field, + [Parameter(Mandatory)][string]$Value, + [PSCustomObject]$Session, + [switch]$NoPush + ) + + if ([string]::IsNullOrWhiteSpace($Value)) { + return + } + + $list = Get-McpSessionTurnStringList -Turn $Turn -Field $Field + $list.Add($Value) + if ($Session -and -not $NoPush) { + Update-McpSessionLog -Session $Session + } +} # ─── Dialog ────────────────────────────────────────────────────────────────── -function Send-McpDialog { +function Send-McpDialog { <# - .SYNOPSIS Post reasoning dialog items to the session log dialog endpoint. - .PARAMETER Session The session object. - .PARAMETER RequestId The request entry ID. - .PARAMETER Content The reasoning text or observation. - .PARAMETER Role "model", "tool", "system", or "user". - .PARAMETER Category "reasoning", "tool_call", "tool_result", "observation", or "decision". + .SYNOPSIS Post reasoning dialog items to the session log dialog endpoint. + .PARAMETER Session The session object. + .PARAMETER RequestId The request turn ID. + .PARAMETER Content The reasoning text or observation. + .PARAMETER Role "model", "tool", "system", or "user". + .PARAMETER Category "reasoning", "tool_call", "tool_result", "observation", or "decision". #> [CmdletBinding()] param( @@ -314,26 +442,61 @@ function Send-McpDialog { # ─── Helpers ───────────────────────────────────────────────────────────────── -function Assert-Initialized { +function Assert-Initialized { if (-not $script:McpBaseUrl) { throw "MCP session not initialized. Call Initialize-McpSession first." } -} - -function Push-SessionLog { - param([PSCustomObject]$Session) - $body = $Session | ConvertTo-Json -Depth 10 - Invoke-RestMethod -Uri "$($script:McpBaseUrl)/mcpserver/sessionlog" -Method Post -Headers $script:McpHeaders -Body $body | Out-Null -} - -# ─── Exports ───────────────────────────────────────────────────────────────── -Export-ModuleMember -Function @( - 'Initialize-McpSession', - 'New-McpSessionLog', - 'Update-McpSessionLog', - 'Get-McpSessionLog', - 'Add-McpSessionEntry', - 'Set-McpSessionEntry', - 'Add-McpAction', - 'Send-McpDialog' -) +} + +function Get-McpSessionTurnStringList { + param( + [Parameter(Mandatory)][PSCustomObject]$Turn, + [Parameter(Mandatory)][string]$Field + ) + + $current = $Turn.$Field + if ($current -is [System.Collections.Generic.List[string]]) { + return ,$current + } + + $list = [System.Collections.Generic.List[string]]::new() + foreach ($value in @($current)) { + if ($null -ne $value) { + [void]$list.Add([string]$value) + } + } + $Turn.$Field = $list + return ,$list +} + +function Push-SessionLog { + param([PSCustomObject]$Session) + $turns = Get-McpSessionTurnList -Session $Session + $payload = [ordered]@{} + foreach ($property in $Session.PSObject.Properties) { + if ($property.Name -ne "turns") { + $payload[$property.Name] = $property.Value + } + } + $payload.entries = $turns + $payload.entryCount = $turns.Count + $totalTokens = @($turns | ForEach-Object { + if ($_.PSObject.Properties.Name -contains "tokenCount" -and $null -ne $_.tokenCount) { [int]$_.tokenCount } else { 0 } + } | Measure-Object -Sum).Sum + $payload.totalTokens = if ($null -eq $totalTokens) { 0 } else { [int]$totalTokens } + $body = $payload | ConvertTo-Json -Depth 12 + Invoke-RestMethod -Uri "$($script:McpBaseUrl)/mcpserver/sessionlog" -Method Post -Headers $script:McpHeaders -Body $body | Out-Null +} + +# ─── Exports ───────────────────────────────────────────────────────────────── +Export-ModuleMember -Function @( + 'Initialize-McpSession', + 'New-McpSessionLog', + 'Update-McpSessionLog', + 'Get-McpSessionLog', + 'Add-McpSessionTurn', + 'Set-McpSessionTurn', + 'Add-McpAction', + 'Add-McpTurnDetail', + 'Send-McpDialog' +)