From f1941449132abae32f324b3ada2b5179aafcf7a0 Mon Sep 17 00:00:00 2001 From: Eureka Date: Thu, 29 Oct 2026 13:07:21 +0100 Subject: [PATCH] Research: presence provider library/launcher split prior art (cultlib-gaps B4b2) Co-Authored-By: Claude Opus 5.5 --- ...esence-provider-library-split-prior-art.md | 28 +++++++++++++++++++ 1 file changed, 28 insertions(+) create mode 100644 docs/research/2026-10-29-presence-provider-library-split-prior-art.md diff --git a/docs/research/2026-10-29-presence-provider-library-split-prior-art.md b/docs/research/2026-10-29-presence-provider-library-split-prior-art.md new file mode 100644 index 00000000..8acf0479 --- /dev/null +++ b/docs/research/2026-10-29-presence-provider-library-split-prior-art.md @@ -0,0 +1,28 @@ +# Prior art: presence provider as a library, launcher as a consumer + +Served: `cultlib-gaps:cut_spec:cut-cultnet-rs-presence-provider-a.r1` and the +Defaulted rulings `presence-provider-network-free-core`, +`presence-credentials-both-idunn-drivers` and `presence-provider-consumers-adopt`, +applying the operator's `gamecult-chat:ruling:presence-one-owner-library-launcher-consumer`. +Imagination pass, 2026-10-29, from recall of the cited manuals (not re-fetched). + +- libsystemd `sd_notify(3)`: a service links a small library and reports its + own state (READY, STATUS, WATCHDOG); programs that cannot link it use + `systemd-notify(1)` or a wrapper. Same split as cultnet-rs provider plus + idunn-launch as the sidecar consumer. +- `sd_listen_fds_with_names(3)`: checks LISTEN_PID against the process, sets + close-on-exec on passed descriptors, finds them by name, and can unset the + LISTEN_* environment. This set is the descriptor rule the provider adopts. +- systemd watchdog (`WATCHDOG=1` within `WatchdogSec`): the model for the + warming heartbeat. +- Consul: TTL checks updated by the service through the client API, versus + script/HTTP checks the agent runs for services that cannot. In-process + versus sidecar again. +- Kubernetes: kubelet-run probes observe from outside; readiness gates are + reported by the app. Idunn's route challenge is the outside observer, the + signed presence the app's own report. + +Existing copies compared: CodexConnector `src/idunn_health.rs` (two +descriptors, strict PID check), Idunn launcher (two descriptors, no PID check), +cultnet-ts `idunn-runtime-authority.ts` (descriptors by name, systemd private +PID case). The provider takes the strictest union.