Wraps the daemon Registry as a provider.Provider with REST endpoints for
list, get, stop, and health check. Implements Streamable and Describable
for WS event streaming and OpenAPI generation. Adds go-api, go-ws, and
gin as direct dependencies for the pkg/api sub-package.
Co-Authored-By: Virgil <virgil@lethean.io>
When Registry is set on DaemonOptions, Start() auto-registers the daemon
(filling PID and Health address) and Stop() auto-unregisters it. Consumers
without a registry are completely unaffected.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- WaitForHealth: use http.Client with 2s timeout instead of DefaultClient
- Daemon.Stop: use errors.Join for proper error unwrapping
- Remove unused OnReload field from DaemonOptions
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Local variable `core` shadowed the package import `core`, causing
`core.ServiceFor` to be interpreted as a method call instead of a
package-level function. Aliased import as `framework`.
Also fixes pre-existing compilation failure in go-process test suite.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
PIDFile manages a process ID lock file with Acquire/Release semantics.
Detects stale PIDs via signal(0) probe, creates parent directories
automatically. Includes standalone ReadPID helper for checking if a
PID file's process is still alive.
Co-Authored-By: Virgil <virgil@lethean.io>
Signal() now properly forwards to cmd.Process.Signal() instead of
calling Kill(). SetDefault(nil) returns error instead of panicking.
Wait() returns descriptive errors with process context.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add go-devops build system configuration for standardised
build, test, and release workflows across the Go ecosystem.
Co-Authored-By: Virgil <virgil@lethean.io>
Process management with Core IPC integration, output streaming via
ring buffer, exec wrapper with logging, and dependency-aware runner.
Moved from forge.lthn.ai/core/go/pkg/process to standalone module.
Co-Authored-By: Virgil <virgil@lethean.io>