Process lifecycle management with supervisor pattern
Find a file
Snider 6db0ad26e3 fix(registry): idempotent Unregister/Release when file missing
The coreio.Local.Delete error wraps the underlying os.ErrNotExist
through core.E, so the prior os.IsNotExist check on the registry
Unregister path never matched. Same wrapping broke the daemon
Stop path that relied on pidfile.Release being a no-op for absent
files.

Switch both to coreio.Local.Exists before Delete, which is the
idempotent pattern the callers already assume. Adds coverage for
TestPIDFile_Release_MissingIsNoop and fixes TestRegistry_Unregister
MissingIsNoop.

Co-Authored-By: Virgil <virgil@lethean.io>
2026-04-14 19:44:06 +01:00
.core chore: add .core/ build and release configs 2026-03-06 18:52:37 +00: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
exec merge: resolve github/main conflicts keeping dappco.re module paths 2026-04-07 08:29:01 +01:00
pkg/api fix(process): add missing processHandle/currentPID helpers + trim daemon payload 2026-04-14 19:25:59 +01:00
specs docs(api): enumerate all 15 RegisterRoutes routes in spec 2026-04-07 09:08:31 +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
actions.go feat(process): detached-by-default start + RFC API aliases + JSON tags 2026-04-14 19:01:26 +01:00
buffer.go fix(process): handle zero-capacity ring buffers 2026-04-04 02:07:23 +00:00
buffer_test.go merge: resolve github/main conflicts keeping dappco.re module paths 2026-04-07 08:29:01 +01:00
CLAUDE.md docs(ax): align process docs with AX action/result contract 2026-03-30 06:34:38 +00:00
daemon.go Handle nil contexts in runner and daemon 2026-04-04 06:48:18 +00:00
daemon_test.go Handle nil contexts in runner and daemon 2026-04-04 06:48:18 +00:00
errors.go feat(process): add service error helper 2026-04-04 07:24:12 +00:00
errors_test.go feat(process): add service error helper 2026-04-04 07:24:12 +00:00
global_test.go feat(process): add package register helper 2026-04-04 07:19:56 +00:00
go.mod merge: resolve github/main conflicts keeping dappco.re module paths 2026-04-07 08:29:01 +01:00
go.sum merge: resolve github/main conflicts keeping dappco.re module paths 2026-04-07 08:29:01 +01:00
health.go fix(process): harden health server snapshots 2026-04-04 07:00:45 +00:00
health_test.go fix(process): harden health server snapshots 2026-04-04 07:00:45 +00:00
pidfile.go fix(registry): idempotent Unregister/Release when file missing 2026-04-14 19:44:06 +01:00
pidfile_test.go fix(registry): idempotent Unregister/Release when file missing 2026-04-14 19:44:06 +01:00
process.go fix(process): keep signal zero as liveness probe 2026-04-04 07:29:00 +00:00
process_global.go feat(process): add package register helper 2026-04-04 07:19:56 +00:00
process_handle.go fix(process): add missing processHandle/currentPID helpers + trim daemon payload 2026-04-14 19:25:59 +01:00
process_test.go fix(process): keep signal zero as liveness probe 2026-04-04 07:29:00 +00:00
program.go fix(process): prefer resolved program path 2026-04-04 03:10:39 +00:00
program_test.go fix(process): prefer resolved program path 2026-04-04 03:10:39 +00:00
registry.go fix(registry): idempotent Unregister/Release when file missing 2026-04-14 19:44:06 +01:00
registry_test.go fix(process): make registry unregister idempotent 2026-04-04 01:55:10 +00:00
runner.go feat(process): detached-by-default start + RFC API aliases + JSON tags 2026-04-14 19:01:26 +01:00
runner_test.go feat(process): validate runner dependencies 2026-04-04 07:37:50 +00:00
service.go feat(process): detached-by-default start + RFC API aliases + JSON tags 2026-04-14 19:01:26 +01:00
service_test.go feat(process): detached-by-default start + RFC API aliases + JSON tags 2026-04-14 19:01:26 +01:00
types.go feat(process): detached-by-default start + RFC API aliases + JSON tags 2026-04-14 19:01:26 +01:00