You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Suspended servers are not started or restarted by direct commands or scheduled tasks. Scheduled start, restart, update, and reinstall tasks are skipped, while scheduled stops remain available.
Installations and updates leave suspended servers stopped.
If a suspended server is detected running, the system attempts to stop it after a 30-second grace period and retries no more than once per minute.
Documentation
Added guidance on suspended-server behavior, including the grace period before stopping a running server.
Included review availability: This review used your included allowance. 3 included reviews remain after this review. Your included PR review attempts over the past 7 days set your current allowance at 5 reviews per hour.
📝 Walkthrough
The change adds suspension checks across server autostart, start and restart commands, post-install startup, scheduled tasks, and the server loop. The loop now stops suspended servers that remain running after a grace period. The test workflow and selected Go dependency versions are also updated.
Changes: Suspended server handling
Layer / File(s)
Summary
Suspension state and autostart internal/app/domain/server.go, internal/app/domain/server_autostart_test.go
The domain exposes ErrServerBlocked and Server.IsSuspended. CanAutoStart now checks suspension, and tests cover suspension state updates from panel pushes.
Start and restart commands refuse suspended servers and record the refusal in command output and results. Tests cover suspended and unsuspended execution.
The scheduler skips suspended-server start, restart, update, install, and reinstall commands before loading them. Scheduled stop commands remain permitted.
Stopping suspended servers found running internal/app/servers_loop/{loop.go,loop_test.go}, internal/processmanager/README.md
The loop tracks suspended servers found running, waits through a grace period, then runs stop commands asynchronously with a retry interval. Tests cover timing, retries, and command locks. The README documents this behavior.
Toolchain updates
Layer / File(s)
Summary
Workflow and Go dependency versions .github/workflows/test.yml, go.mod
The golangci-lint workflow version, Go directive, and selected indirect dependency versions are updated.
sequenceDiagram
participant ServersLoop
participant CommandLoader
participant StopCommand
ServersLoop->>ServersLoop: Track a suspended server found running
ServersLoop->>CommandLoader: Load the stop command after the grace period
CommandLoader-->>ServersLoop: Return the stop command
ServersLoop->>StopCommand: Execute with a timeout
StopCommand-->>ServersLoop: Return result and output
Loading
Merge Risk:🔵 Low · up to e843d
A narrow timing window can stop a server shortly after it is unsuspended, potentially leaving it offline until restarted. Synchronizing suspension updates and the stop would prevent this; the impact is limited to the affected server.
Pre-merge checks: 4 · 1
Failed checks: 1 warning
Check name
Status
Explanation
Resolution
Docstring Coverage
Docstring coverage is 28.21% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 39 functions across 18 files. (2 skipped:…
Write docstrings for the functions missing them to satisfy the coverage threshold.
Passed checks: 4 passed
Check name
Status
Explanation
Description Check
Check skipped - CodeRabbit’s high-level summary is enabled.
Title check
The title identifies the main suspension feature. It is concise but broad and does not describe the affected server commands or daemon behavior.
Linked Issues check
Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check
Check skipped because no linked issues were found for this pull request.
Full details: Docstring Coverage
Explanation
Docstring coverage is 28.21% which is insufficient. The required threshold is 80.00%. Docstring coverage is scoped to functions touched by this diff. Analyzed 39 functions across 18 files. (2 skipped: 2 unsupported.)
Fix all pre-merge checks with AI
Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts
Comment @coderabbitai help to get the list of available commands.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary by CodeRabbit