Skip to content

feat: integrate WDC deploy plugin updates#4

Merged
lukyrys merged 37 commits intomainfrom
feature/nksdeploy-wdc-integration
May 4, 2026
Merged

feat: integrate WDC deploy plugin updates#4
lukyrys merged 37 commits intomainfrom
feature/nksdeploy-wdc-integration

Conversation

@lukyrys
Copy link
Copy Markdown
Contributor

@lukyrys lukyrys commented May 4, 2026

Integrates the NKS deploy plugin branch and related Apache/MySQL/PHP plugin fixes. Also aligns the plugin SDK package version with the current monorepo release used by CI.\n\nValidation:\n- git diff --check origin/feature/nksdeploy-wdc-integration..HEAD\n- dotnet restore/build for every plugin project using the local SDK release feed\n\nNotes:\n- dotnet test at repo root is not applicable because this standalone plugin repo has no solution or root project.

lukyrys added 30 commits April 26, 2026 07:07
… phase B endpoint, intent-gated, in-flight guarded
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 4, 2026

Warning

Rate limit exceeded

@lukyrys has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 53 minutes and 9 seconds before requesting another review.

To keep reviews running without waiting, you can enable usage-based add-on for your organization. This allows additional reviews beyond the hourly cap. Account admins can enable it under billing.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: f9114423-1410-4815-9e5d-41a502ea3b63

📥 Commits

Reviewing files that changed from the base of the PR and between bb39c97 and a769ff8.

📒 Files selected for processing (11)
  • Directory.Build.props
  • NKS.WebDevConsole.Plugin.LocalRsync/LocalRsyncBackend.cs
  • NKS.WebDevConsole.Plugin.LocalRsync/LocalRsyncPlugin.cs
  • NKS.WebDevConsole.Plugin.LocalRsync/NKS.WebDevConsole.Plugin.LocalRsync.csproj
  • NKS.WebDevConsole.Plugin.LocalRsync/plugin.json
  • NKS.WebDevConsole.Plugin.NksDeploy/NKS.WebDevConsole.Plugin.NksDeploy.csproj
  • NKS.WebDevConsole.Plugin.NksDeploy/NksDeployBackend.cs
  • NKS.WebDevConsole.Plugin.NksDeploy/NksDeployGroupCoordinator.cs
  • NKS.WebDevConsole.Plugin.NksDeploy/NksDeployPlugin.cs
  • NKS.WebDevConsole.Plugin.NksDeploy/NksDeployRoutes.cs
  • NKS.WebDevConsole.Plugin.NksDeploy/plugin.json
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feature/nksdeploy-wdc-integration

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

❤️ Share
Review rate limit: 0/1 reviews remaining, refill in 53 minutes and 9 seconds.

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

@lukyrys lukyrys merged commit 970694c into main May 4, 2026
4 checks passed
@lukyrys lukyrys deleted the feature/nksdeploy-wdc-integration branch May 4, 2026 00:02
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: a769ff8f36

ℹ️ 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 +279 to +282
{
sw.Stop();
_active.TryRemove(deployId, out _);
await _runs.MarkCompletedAsync(deployId, success, exitCode, errorMessage, sw.ElapsedMilliseconds, CancellationToken.None);
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 Preserve cancelled status when marking deploy completion

This finally block always calls MarkCompletedAsync(..., success: false, ...) after cancellation, which overwrites the earlier UpdateStatusAsync(..., "cancelled", ...) in the catch path. The same file already documents that MarkCompletedAsync clobbers custom statuses (see rollback handling), so canceled deploys will be recorded as failed and surfaced with the wrong terminal phase/history semantics.

Useful? React with 👍 / 👎.

Comment on lines +291 to +295
var run = await runs.GetByIdAsync(deployId, ct);
if (run is null) return Results.NotFound(new { error = "deploy_not_found", deployId });

var rejection = await CheckIntentAsync(ctx, intentValidator, "rollback", domain, run.Host, ct);
if (rejection is not null) return rejection;
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 Enforce route domain match before rollback execution

After loading the run by deployId, this handler never verifies that run.Domain matches the {domain} route segment before executing rollback. A caller can pass a deploy ID from another site and trigger rollback under the wrong route scope, which breaks per-site isolation assumptions and can perform destructive actions on an unintended domain.

Useful? React with 👍 / 👎.

Comment on lines +120 to +124
var rollbackTasks = row.HostDeployIds.Select(async kvp =>
{
try
{
await _backend.RollbackAsync(kvp.Value, ct);
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 Include in-flight hosts in group rollback

Group rollback only iterates row.HostDeployIds, but those IDs are recorded after each host StartDeployAsync completes (later in RunGroupAsync). If rollback is requested while the group is still deploying, active hosts are absent from this map, so no cancellation/rollback is sent to them and the operation can report rollback while deploys keep running.

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