Process lifecycle management with supervisor pattern
  • Go 88.3%
  • TypeScript 11.3%
  • HTML 0.4%
Find a file
Snider ee29b19f38
Some checks failed
CI / Test + Coverage (push) Has been cancelled
CI / golangci-lint (push) Has been cancelled
CI / SonarCloud (push) Has been cancelled
chore(repo): refresh submodules + go.work hygiene (Phase 2 cascade unblock)
- git submodule update on external/* to current dev tips
- go.work paths fixed for Phase 1 /go/ subtree layout where stale
- go.work go-version bumped 1.26.0 → 1.26.2 to match submodule floor

Workspace-mode build (`go build ./...`) is the verification path. Some
repos may surface transitive dep issues (api/go.sum checksum drift, etc.)
which are separate cascade tickets — not blocking this metadata refresh.

Co-Authored-By: Cladius Maximus <cladius@lethean.io>
2026-05-01 09:40:46 +01:00
.core chore: add .core/ build and release configs 2026-03-06 18:52:37 +00:00
.github/workflows ci(public): add github actions workflow + README badge block 2026-04-30 15:24:43 +01:00
.idea chore: add .core/ and .idea/ to .gitignore 2026-03-15 10:17:50 +00:00
docs fix(pidfile): replace path.Dir with filepath.Dir for cross-platform compat 2026-04-07 08:59:29 +01:00
external chore(repo): refresh submodules + go.work hygiene (Phase 2 cascade unblock) 2026-05-01 09:40:46 +01:00
go chore(go-process): clear 1 audit finding — banned-imports (Mantis #1328) 2026-05-01 07:58:19 +01:00
specs refactor(core): go-process round 2 — full 24-dim COMPLIANT 2026-04-29 06:27:25 +01:00
ui feat(ui): expose process control client methods 2026-04-04 08:11:19 +00:00
.gitignore chore: add .core/ and .idea/ to .gitignore 2026-03-15 10:17:50 +00:00
.gitmodules chore(go-process): restructure Go module under go/ + go.work + external/ submodules 2026-04-30 12:29:00 +01:00
.woodpecker.yml chore(go-process): restructure Go module under go/ + go.work + external/ submodules 2026-04-30 12:29:00 +01:00
AGENTS.md refactor(core): align go-process with hardened core/go reference shape 2026-04-29 05:43:57 +01:00
CLAUDE.md chore(go-process): restructure Go module under go/ + go.work + external/ submodules 2026-04-30 12:29:00 +01:00
go.work chore(go-process): restructure Go module under go/ + go.work + external/ submodules 2026-04-30 12:29:00 +01:00
go.work.sum chore(repo): refresh submodules + go.work hygiene (Phase 2 cascade unblock) 2026-05-01 09:40:46 +01:00
LICENCE chore: add EUPL-1.2 LICENCE file (UK English canonical) 2026-05-01 08:34:43 +01:00
README.md ci(public): add github actions workflow + README badge block 2026-04-30 15:24:43 +01:00
sonar-project.properties chore(go-process): restructure Go module under go/ + go.work + external/ submodules 2026-04-30 12:29:00 +01:00

go-process

Process orchestration — daemons, runners, registry, pidfiles, IPC bus

CI Quality Gate Coverage Security Rating Maintainability Rating Reliability Rating Code Smells Lines of Code Go Reference License: EUPL-1.2

go-process is the process-management service for Core applications. It wraps external command execution, lifecycle tracking, output capture, daemon PID files, health endpoints, and REST/WebSocket provider integration around the dappco.re/go runtime conventions.

The package is intended for applications that need to start and observe local commands without scattering process handling across the codebase. A Service owns the process table, streams output through Core actions, exposes snapshots through Info, and provides helpers for stdin, waiting, killing, signalling, and cleanup. Higher-level packages build on the same primitives: Runner executes dependent command pipelines, Daemon manages PID files and health probes, and pkg/api mounts the service into Gin routes.

Quick Start

coreApp := core.New()
raw, err := process.NewService(process.Options{})(coreApp)
if err != nil {
    return err
}

svc := raw.(*process.Service)
proc, err := svc.Start(context.Background(), "echo", "hello")
if err != nil {
    return err
}
<-proc.Done()
core.Println(proc.Output())

For command pipelines, construct a Runner from the same service and submit RunSpec values. Dependencies are declared with After, and failed dependencies skip downstream work unless the dependency allows failure.

Development

This repository follows the Core v0.9 compliance shape. Public symbols have file-aware tests and examples in sibling files, Core wrappers replace banned stdlib convenience packages, and Result-returning operations must be checked.

Before handing off changes, run:

GOWORK=off go mod tidy
GOWORK=off go vet ./...
GOWORK=off go test -count=1 ./...
gofmt -l .
bash /Users/snider/Code/core/go/tests/cli/v090-upgrade/audit.sh .