Sidecars

Service Inspector

Inspect Windows service health and logs, understand lifecycle controls and avoid replaying uncertain external effects.

0.1.2Alpha capabilityDeclared targets: Windowsuk.capp.sidecar.service-inspector

Inspect a declared service

Service Inspector is a Windows, shell-owned viewer and controller for services already declared in the executable's verified plan. It helps explain whether an app dependency is starting, running, unhealthy or stopped without turning the app into a general remote-administration tool.

Include uk.capp.sidecar.service-inspector in the package and open it with Ctrl+Shift+S by default. The inspector does not add services to a plan. An application with no declared services will not acquire a backend simply because this viewer is selected.

First diagnostic session

  1. Start the installed application and allow its own service bootstrap to run. Open the inspector and identify the relevant service by its declared ID.
  2. Compare lifecycle state, process ID, selected port, uptime and health. Read the nearby launcher/supervisor events when a value is missing or contradictory.
  3. Inspect the bounded stdout/stderr tail. Pause display updates while reading, search for a specific error, then resume to inspect new output.
  4. Use an explicit health check when appropriate. A process ID or open port alone does not establish that an application request will succeed.
  5. Export a focused, redacted diagnostic report only after reviewing it for private application data.

The default status polling interval is 1,500 ms, with bounded event/log retention. A snapshot can lag a service transition; it is not a permanent process audit log. A paused log view is not a request to stop the service.

Controls and their effects

Control or observationScopeImportant limit
Status, PID, port and uptimeServices in this executable planNot arbitrary processes on the computer
Health checkThe service's declared health behaviourNot an end-to-end test of every app operation
Start, stop and restartA named service already admitted by the planCan interrupt real work; these are not read-only diagnostics
Stdout/stderr and structured eventsRetained output from the declared service pathBounded tails may omit earlier output
Open workspace or log locationHost-managed paths associated with the serviceNo arbitrary file-picker or remote path authority
Copy/export reportThe inspector's diagnostic snapshotRedaction still needs human review

allowLifecycleControls governs the lifecycle UI; allowOpenPaths governs managed-path actions. Keep them disabled in a diagnostic-only package that does not need those controls. The compiled service policy remains authoritative even when a button is present.

Before restarting, check whether the service has an in-flight job, transfer or transaction. Inspect the application's persisted operation state after interruption; restarting a service is not permission to repeat an uncertain external effect. A service becoming healthy again does not prove that interrupted work completed.

Optional viewer, separate supervisor

The service supervisor and this inspector have separate roles. Applications with declared bundled services can run without the viewer. Closing the inspector does not mean “stop the backend”; removing it from a future build should not remove the app's declared service plan.

The Windows bootstrap installs the native service bridge and loads the plan before starting the inspector. A temporarily unavailable bridge is treated as a recoverable waiting state, with retries for up to 30 seconds. A waiting bridge is not proof that the plan contains no services.

This viewer does not create a remote administration port or a portable arbitrary-service-management API. Use the installed app-owned controls. Do not couple your product to private inspector globals or copy its native command names into remote webpages.

Configuration and sharing

Start with the default shortcut-only presentation. Choose startup and docking behaviour for the target app, then set the polling and retention limits appropriate to the diagnostics you need. Raising retention does not make the service's own logs unlimited or durable.

Keep secret redaction enabled. Application stdout/stderr can contain ordinary private text that does not look like a credential. Check URLs, paths, account identifiers, arguments and user content before copying or exporting a report. Use Debug Inspector when the problem is primarily a route, console or app-request event rather than a service lifecycle issue.

Package changes require a new installed build. Changing the web docs, Library draft or an inspector window does not retrofit native service bridges into an existing executable.

Troubleshooting

SymptomCheck and next step
Inspector does not openConfirm the installed Windows package includes it and the shortcut is enabled.
Waiting for bridge persistsRead the bootstrap failure and verify the plan/native bridge belong to that package; retrying a UI panel cannot install missing native commands.
Service list is emptyCheck that the executable actually declares bundled services. Selection of the viewer alone is insufficient.
Lifecycle/path buttons are unavailableCheck the corresponding compiled configuration and service policy. Do not bypass the restriction through private command objects.
Healthy service but broken applicationTest the app route, authentication and actual request separately. Health is a narrower observation.
Restart leaves work uncertainReconcile the app's durable operation/result before offering another effect.
Required log line is missingThe retained tail is bounded. Inspect the permitted physical log location when available and safe.

Qualify startup, health failure, explicit restart and app shutdown in the installed Windows package. Source and browser tests cannot establish actual process-tree behaviour on a user's machine.

Configuration reference

These are the selected package's configuration fields. String credential values and installation-specific defaults are never published here. A field's presence does not bypass its runtime policy.

FieldTypeMeaning and constraints
overlayDockselectOverlay position. Choices: right, bottom, floating, fullscreen
startupselectOpen behaviour. Choices: shortcut, remember, open
pollIntervalMsnumberRefresh interval (ms). Bounds: 750 to 10000
retainEventsnumberEvent buffer. Bounds: 250 to 10000
retainLogCharsnumberVisible log retention. Bounds: 10000 to 1000000
allowLifecycleControlscheckboxAllow start, stop and restart
allowOpenPathscheckboxAllow opening managed paths
redactSecretscheckboxRedact secrets

Component changelog

baseline0.1.2Permalink

Service Inspector

Observe and manage services already declared by the installed application.

Documentation snapshot, not a historical release date.
View component notes →
↑ ↓ to navigate · Enter to open · Esc to close. Search stays in your browser.