Skip to content

Merge develop into main#36

Merged
sharpninja merged 11 commits intomainfrom
develop
Apr 5, 2026
Merged

Merge develop into main#36
sharpninja merged 11 commits intomainfrom
develop

Conversation

@sharpninja
Copy link
Copy Markdown
Owner

Summary

Routine develop → main merge.

Notable changes on develop since main:

  • Move TodoWorkflow from McpServer.Repl.Host to McpServer.Repl.Core so library consumers (e.g. McpServer.Director) can reference it without depending on the Repl.Host executable project
  • Exclude integration tests from CI Test target
  • Fix QR code login URL missing /device path segment for OIDC+tunnel flow
  • Nuke build system migration
  • GitVersion bump to 0.2.84

Test plan

  • CI green on develop
  • No migration changes require coordination

🤖 Generated with Claude Code

sharpninja and others added 11 commits April 1, 2026 10:58
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Migrate deterministic build/test/package/validation scripts to Nuke targets:
Compile, Test, Publish, PackNuGet, PackReplTool, PackageMsix, InstallReplTool,
StartServer, BumpVersion, ValidateConfig, ValidateTraceability, TestMultiInstance,
TestGraphRagSmoke, and Clean. Extract testable helpers (ConfigValidator,
TraceabilityValidator, GitVersionBumper, MsixHelper) with 43 unit tests.

Update Azure Pipelines to use Nuke targets and add GitHub Actions workflow.
Update all user-facing documentation with Nuke build commands.

Also includes McpAgent REPL integration and REPL migration guide.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add Nuke build system with 15 targets (Compile, Test, Publish, PackNuGet, PackReplTool, PackageMsix, InstallReplTool, StartServer, BumpVersion, ValidateConfig, ValidateTraceability, TestMultiInstance, TestGraphRagSmoke, Clean, Restore). Extract testable helpers with 43 unit tests. Migrate Azure Pipelines and add GitHub Actions. Update all documentation.
Add Nuke build system and migrate build scripts
Replace CDN-dependent JavaScript QR code generation with server-side
SVG rendering using QRCoder. The /pair/qr endpoint generates the QR
code image, which works on LAN-only environments without internet.
When a tunnel provider is active, the QR code encodes the tunnel's
public URL. When external Keycloak OIDC is configured, the QR code
points to the identity server proxy login page through the tunnel.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add server-side QR code to pairing key page
The QR code encoded .../auth/ui{authorityPath} which points to realm
metadata, not the device verification page. AuthConfigController builds
verification_uri as .../auth/ui{authorityPath}/device, so align the QR
URL to match so mobile scans land on the correct login endpoint.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
IntegrationTests projects require a running server and are not suitable
for CI pipelines. Filter to only .Tests and .Validation projects.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Relocate TodoWorkflow so the REPL TODO workflow is available to
library consumers (e.g. McpServer.Director) without referencing
the Repl.Host executable project. Update namespace to
McpServer.Repl.Core and fix the Host service registration to
match.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@sharpninja sharpninja merged commit f6cf268 into main Apr 5, 2026
6 of 10 checks passed
Copy link
Copy Markdown

@chatgpt-codex-connector chatgpt-codex-connector bot left a comment

Choose a reason for hiding this comment

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

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 349a90878a

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment on lines +47 to +49
var queryUri = $"/mcpserver/graphrag/query?q={Uri.EscapeDataString(GraphRagQuery)}";
var queryResponse = await http.GetAsync(queryUri);
queryResponse.EnsureSuccessStatusCode();
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Call GraphRAG query endpoint with POST JSON payload

TestGraphRagSmoke issues GET /mcpserver/graphrag/query?q=..., but the server endpoint is implemented as HttpPost("query") and validates a JSON GraphRagQueryRequest body. In practice this step returns 405/400 even when GraphRAG is healthy, so the smoke target fails for normal runs instead of validating query functionality.

Useful? React with 👍 / 👎.

Comment on lines +76 to +80
while (DateTime.UtcNow < deadline)
{
if (process.HasExited)
throw new InvalidOperationException($"Process {process.Id} exited before becoming healthy.");

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

P1 Badge Return from WaitForHealthy after a successful probe

WaitForHealthy never performs a health probe or returns a port on success; it only loops with Task.Delay until the deadline, then throws a timeout. Because both instance checks depend on this method, TestMultiInstance will always fail after TimeoutSeconds (or earlier if a process exits), making the target unusable as a smoke test.

Useful? React with 👍 / 👎.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant