Conversation
…atus, history, rollback, cancel)
…suppress NDJSON noise
…roups returns hostStatuses
…pper, host defaults from body
… phase B endpoint, intent-gated, in-flight guarded
…ntent-gated kind=test_hook
… notifications/test endpoint
…ck webhook smoke test
…ved host's current/ release
…ck to DB snapshotter
…a IDeployEventBroadcaster
|
Warning Rate limit exceeded
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 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 configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (11)
✨ Finishing Touches🧪 Generate unit tests (beta)
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. Review rate limit: 0/1 reviews remaining, refill in 53 minutes and 9 seconds.Comment |
There was a problem hiding this comment.
💡 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".
| { | ||
| sw.Stop(); | ||
| _active.TryRemove(deployId, out _); | ||
| await _runs.MarkCompletedAsync(deployId, success, exitCode, errorMessage, sw.ElapsedMilliseconds, CancellationToken.None); |
There was a problem hiding this comment.
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 👍 / 👎.
| 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; |
There was a problem hiding this comment.
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 👍 / 👎.
| var rollbackTasks = row.HostDeployIds.Select(async kvp => | ||
| { | ||
| try | ||
| { | ||
| await _backend.RollbackAsync(kvp.Value, ct); |
There was a problem hiding this comment.
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 👍 / 👎.
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.