-
Notifications
You must be signed in to change notification settings - Fork 0
Technical Requirements
TR1. — Placeholder requirement backfilled by DB-FK-001. Status: pending Scope: layer-1+
TR10. — Placeholder requirement backfilled by DB-FK-001. Status: pending Scope: layer-1+
TR11. — Placeholder requirement backfilled by DB-FK-001. Status: pending Scope: layer-1+
TR2. — Placeholder requirement backfilled by DB-FK-001. Status: pending Scope: layer-1+
TR3. — Placeholder requirement backfilled by DB-FK-001. Status: pending Scope: layer-1+
TR4. — Placeholder requirement backfilled by DB-FK-001. Status: pending Scope: layer-1+
TR5. — Placeholder requirement backfilled by DB-FK-001. Status: pending Scope: layer-1+
TR6. — Placeholder requirement backfilled by DB-FK-001. Status: pending Scope: layer-1+
TR7. — Placeholder requirement backfilled by DB-FK-001. Status: pending Scope: layer-1+
TR8. — Placeholder requirement backfilled by DB-FK-001. Status: pending Scope: layer-1+
TR9. — Placeholder requirement backfilled by DB-FK-001. Status: pending Scope: layer-1+
Workspace auth token cache service — Provide a shared auth service that resolves the active workspace, validates JWT expiration before reuse, deletes expired cache entries, and persists new identity-server tokens in the workspace. Covered by: FR: FR-AUTH-CACHE-001; TEST: TEST-AUTH-CACHE-001 Status: pending Scope: layer-1+ Acceptance Criteria:
- The shared auth layer exposes read, write, and delete behavior for workspace-scoped identity tokens.
- JWT exp is checked locally before a cached token is reused.
Lockstep families move as single units — Package families (Avalonia core, SharpNinja.McpServer.*, xunit v3 stack, Microsoft.Extensions/ASP.NET Core runtime-aligned set) are upgraded as single units within one gated slice; no new prerelease versions introduced except replacing existing prerelease pins with stable releases. Each slice is one revertable commit validated by a Byrd gate (0 failed, 0 skipped). Covered by: FR: FR-DEPS-UPGRADE-001 Status: pending Scope: layer-1+
TR-E1-001 — Placeholder requirement backfilled for TODO link TR-E1-001. Status: pending Scope: layer-1+
TR-E1-002 — Placeholder requirement backfilled for TODO link TR-E1-002. Status: pending Scope: layer-1+
TR-E1-003 — Placeholder requirement backfilled for TODO link TR-E1-003. Status: pending Scope: layer-1+
YAML Generation Test — TR for YAML document generation test Status: pending Scope: layer-1+
TR-MCP-TRIAGE-004 — Placeholder requirement backfilled for TODO link TR-MCP-TRIAGE-004. Status: pending Scope: layer-1+
TR-RTUI-001 — Placeholder requirement backfilled by DB-FK-001. Status: pending Scope: layer-1+
TR-RTUI-002 — Placeholder requirement backfilled by DB-FK-001. Status: pending Scope: layer-1+
TR-RTUI-003 — Placeholder requirement backfilled by DB-FK-001. Status: pending Scope: layer-1+
TR-RTUI-004 — Placeholder requirement backfilled by DB-FK-001. Status: pending Scope: layer-1+
TR-RTUI-005 — Placeholder requirement backfilled by DB-FK-001. Status: pending Scope: layer-1+
TR-RTUI-006 — Placeholder requirement backfilled by DB-FK-001. Status: pending Scope: layer-1+
TR-RTUI-101 — Placeholder requirement backfilled by DB-FK-001. Status: pending Scope: layer-1+
TR-RTUI-102 — Placeholder requirement backfilled by DB-FK-001. Status: pending Scope: layer-1+
TR-RTUI-103 — Placeholder requirement backfilled by DB-FK-001. Status: pending Scope: layer-1+
TR-RTUI-104 — Placeholder requirement backfilled by DB-FK-001. Status: pending Scope: layer-1+
TR-RTUI-105 — Placeholder requirement backfilled by DB-FK-001. Status: pending Scope: layer-1+
TR-RTUI-106 — Placeholder requirement backfilled by DB-FK-001. Status: pending Scope: layer-1+
TR-RTUI-107 — Placeholder requirement backfilled by DB-FK-001. Status: pending Scope: layer-1+
TR-RTUI-108 — Placeholder requirement backfilled by DB-FK-001. Status: pending Scope: layer-1+
TR-RTUI-109 — Placeholder requirement backfilled by DB-FK-001. Status: pending Scope: layer-1+
TR-RTUI-110 — Placeholder requirement backfilled by DB-FK-001. Status: pending Scope: layer-1+
TR-RTUI-111 — Placeholder requirement backfilled by DB-FK-001. Status: pending Scope: layer-1+
TR-RTUI-112 — Placeholder requirement backfilled by DB-FK-001. Status: pending Scope: layer-1+
TR-RTUI-113 — Placeholder requirement backfilled by DB-FK-001. Status: pending Scope: layer-1+
TR-RTUI-114 — Placeholder requirement backfilled by DB-FK-001. Status: pending Scope: layer-1+
TR-RTUI-115 — Placeholder requirement backfilled by DB-FK-001. Status: pending Scope: layer-1+
TR-RTUI-116 — Placeholder requirement backfilled by DB-FK-001. Status: pending Scope: layer-1+
TR-RTUI-117 — Placeholder requirement backfilled by DB-FK-001. Status: pending Scope: layer-1+
TR-RTUI-118 — Placeholder requirement backfilled by DB-FK-001. Status: pending Scope: layer-1+
TR-RTUI-119 — Placeholder requirement backfilled by DB-FK-001. Status: pending Scope: layer-1+
TR-RTUI-120 — Placeholder requirement backfilled by DB-FK-001. Status: pending Scope: layer-1+
TR-RTUI-121 — Placeholder requirement backfilled by DB-FK-001. Status: pending Scope: layer-1+
TR-RTUI-122 — Placeholder requirement backfilled by DB-FK-001. Status: pending Scope: layer-1+
TR-RTUI-123 — Placeholder requirement backfilled by DB-FK-001. Status: pending Scope: layer-1+
TR-RTUI-124 — Placeholder requirement backfilled by DB-FK-001. Status: pending Scope: layer-1+
TR-RTUI-125 — Placeholder requirement backfilled by DB-FK-001. Status: pending Scope: layer-1+
TR-RTUI-126 — Placeholder requirement backfilled by DB-FK-001. Status: pending Scope: layer-1+
TR-RTUI-127 — Placeholder requirement backfilled by DB-FK-001. Status: pending Scope: layer-1+
TR-RTUI-128 — Placeholder requirement backfilled by DB-FK-001. Status: pending Scope: layer-1+
TR-TEST-001 — Placeholder requirement backfilled for TODO link TR-TEST-001. Status: pending Scope: layer-1+
NSubstitute-only test doubles — Test projects must use NSubstitute for mocks/substitutes and must not reference or use any other mocking framework. Status: completed Scope: layer-1+ Acceptance Criteria:
- No source file imports or uses APIs from disallowed mock frameworks.
- Test project package references include NSubstitute where substitutes are needed and exclude disallowed mock packages.
Typed triage grouping actions — The Web triage page must call typed McpServer.Client triage endpoints for moving reports to a new group, moving reports to an existing group, and combining multiple groups. Covered by: FR: FR-TRIAGE-002; TEST: TEST-TRIAGE-002 Status: pending Scope: layer-1+
Typed triage client endpoints — Use SharpNinja.McpServer.Client 1.2.0 typed TriageClient endpoints for dashboard, groups, reports, runs, and triage-created TODO queries. Covered by: FR: FR-TRIAGE-001; TEST: TEST-TRIAGE-001 Status: planned Scope: layer-1+ Acceptance Criteria:
- Direct SharpNinja.McpServer.Client package references are upgraded to 1.2.0.
- UI queries call TriageClient.GetDashboardAsync, QueryGroupsAsync, GetGroupAsync, GetReportAsync, QueryRunsAsync, GetRunAsync, and QueryCreatedTodosAsync.
Core command layer dependency boundary — Core command layer must not depend on UI.Core, app, Android, Desktop, or platform service interfaces while completing CQRS/ViewModel refactor slices. Covered by: FR: FR-VM-CQRS-ANDROIDVOICE-001, FR-VM-CQRS-EVENTS-001; TEST: TEST-VM-CQRS-FINISH-001 Status: completed Scope: layer-1+
Blazor Hybrid host architecture — Implement the desktop host using a supported .NET Blazor Hybrid project type and factor shared mcp-web startup/UI registration so both ASP.NET Core web and hybrid hosts use the same application surface. Covered by: FR: FR-WEB-001; TEST: TEST-WEB-001 Status: completed Scope: layer-1+ Acceptance Criteria:
- Hybrid host startup registers the same UI.Core and McpServer.Client-backed services needed by existing pages. (evidence: src/McpServerManager.Web.Hybrid/MauiProgram.cs)
- Shared web assets and root components are referenced without copying generated build output. (evidence: src/McpServerManager.Web.Hybrid/wwwroot/index.html; src/McpServerManager.Web.Hybrid/McpServerManager.Web.Hybrid.csproj)
Nuke web tool pipeline uses hybrid project path — Update the Nuke web tool deploy target so ExecuteDotnetToolPipeline publishes src/McpServerManager.Web.Hybrid/McpServerManager.Web.Hybrid.csproj for the SharpNinja.McpServer.Web package and mcp-web command. Covered by: FR: FR-WEB-HYBRID-TOOL-001; TEST: TEST-WEB-HYBRID-TOOL-001 Status: completed Scope: layer-1+ Acceptance Criteria:
- DeployWebUiCore references the hybrid project path. (evidence: build/Build.BuildAndDeployTargets.cs:759-761; dotnet build build/Build.csproj --no-restore; build.ps1 UpdateWebUiTool --what-if --skip-version-bump; git diff --check.)
- Generic UpdateDotnetTool defaults remain Director-oriented unless overridden. (evidence: build/Build.BuildAndDeployTargets.cs:759-761; dotnet build build/Build.csproj --no-restore; build.ps1 UpdateWebUiTool --what-if --skip-version-bump; git diff --check.)
Shared app shell navigation and workspace reload state — Implement the persistent back button, Ctrl+W workspace picker, workspace change invalidation, and TODO done filter using shared Blazor shell/view-model behavior so Web and Hybrid hosts remain aligned. Covered by: FR: FR-WEB-NAV-001; TEST: TEST-WEB-NAV-001 Status: pending Scope: layer-1+
Generated from MCP requirements wiki export.