Skip to content

Service manager#3814

Open
patrickelectric wants to merge 8 commits intobluerobotics:masterfrom
patrickelectric:service-manager
Open

Service manager#3814
patrickelectric wants to merge 8 commits intobluerobotics:masterfrom
patrickelectric:service-manager

Conversation

@patrickelectric
Copy link
Member

@patrickelectric patrickelectric commented Mar 4, 2026

Add service manager page

  • It does not have persistent settings, that will come in a future PR

Note

Medium Risk
Adds a new UI surface that can start/stop/restart services and change runtime resource limits via the new /service-manager API, so mistakes or backend/API mismatch could impact system stability. Also changes default Python logging sinks to split stdout/stderr, which may affect log collection behavior.

Overview
Introduces a new Service Manager tool page (/tools/service-manager) that lists services and allows start/stop/restart, viewing tailed stdout/stderr logs, inspecting live metrics charts, and editing basic config (enabled/restart behavior + cgroup limits and optional command override).

Wires the frontend to the backend by adding /service-manager routing/menu entry, new TS API/types, and a Vite dev proxy for the /service-manager path.

Adjusts Python logging initialization in commonwealth to route Loguru INFO-ish levels to stdout and ERROR-ish levels to stderr (while still publishing serialized logs), and updates UV workspace/dependency configs to include service_manager in the secondary venv and exclude it from the primary workspace build; also removes the run-service copy step from core/Dockerfile.

Written by Cursor Bugbot for commit 008ca50. This will update automatically on new commits. Configure here.

Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
Signed-off-by: Patrick José Pereira <patrickelectric@gmail.com>
Copy link

@sourcery-ai sourcery-ai bot left a comment

Choose a reason for hiding this comment

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

Sorry @patrickelectric, your pull request is larger than the review limit of 150000 diff characters

Copy link

@cursor cursor bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Bugbot Free Tier Details

Your team is on the Bugbot Free tier. On this plan, Bugbot will review limited PRs each billing cycle for each member of your team.

To receive Bugbot reviews on all of your PRs, visit the Cursor dashboard to activate Pro and start your 14-day free trial.

Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

io_read_rate_mbps: number
io_write_rate_mbps: number
pids: number
}
Copy link

Choose a reason for hiding this comment

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

ServiceMetrics TypeScript interface missing six API fields

High Severity

The ServiceMetrics interface is missing swap_mb, swap_peak_mb, net_rx_mb, net_tx_mb, net_rx_rate_mbps, and net_tx_rate_mbps. The backend's to_dict() in metrics.py returns all these fields, and the Vue component references them extensively in the template (Swap card, Network card, peak labels) and in computed properties (memoryChartSeries, networkChartSeries). With strict: true in the project's tsconfig, accessing these undeclared properties on the typed ServiceMetrics objects will fail TypeScript compilation, breaking the Swap and Network sections of the Metrics tab entirely.

Additional Locations (2)

Fix in Cursor Fix in Web

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