feat(agent): ephemeral-helper add-on supervision (delivery-models 3.2) (#3425) #3469

Merged
mfreeman451 merged 1 commit from feat/addon-ephemeral-helper into staging 2026-05-31 16:26:41 +00:00
Owner

What

delivery-models task 3.2ephemeral-helper supervision, the last unimplemented supervision model. This completes the agent-side supervision coverage (config-toggle, agent-sidecar, systemd-service/systemd-timer, ephemeral-helper).

An ephemeral_helper add-on (e.g. remote-access's rdp-adapter) is a short-lived, one-shot binary the agent does not run or supervise. The dispatch:

  • stages + capability-grants the binary (reusing stageAndCapability — so it benefits from tarball delivery, setcap, and rollback);
  • registers its resolved path so the consuming subsystem can spawn it on demand (EphemeralHelperPath(id));
  • on reconcile, deregisters a helper whose assignment was disabled/removed (the staged binary stays on disk; nothing system-level was installed).

classifyAddonSupervision now routes ephemeral_helper to a dedicated addonDispatchEphemeral; the now-unused addonDispatchExternalUnimplemented placeholder is removed since every supervision model is handled.

Also: tasks.md reconciliation

Brought add-native-addon-delivery-models/tasks.md current — 3.1 (systemd dispatch, merged #3467) and 1.2 agent-half (tarball extraction, merged #3468) are marked done, plus 3.2 and 5.2 here. Only two tasks remain in the change, both build/packaging: 1.1 (carve serviceradar-netprobe out of the base agent) and 1.2 build-half (produce the signed per-arch tarball + os-package template).

Verification

Unit-tested: ephemeral registry remember/lookup/reconcile, supervision classification. go build/vet/golangci-lint clean. (No system-level side effects to host-verify — the agent only stages + registers a path; the staging/setcap path it reuses was host-verified in prior slices. Wiring remote-access to call EphemeralHelperPath is part of remote-access's own migration.)

🤖 Generated with Claude Code

## What delivery-models **task 3.2** — `ephemeral-helper` supervision, the last unimplemented supervision model. This completes the agent-side supervision coverage (`config-toggle`, `agent-sidecar`, `systemd-service`/`systemd-timer`, `ephemeral-helper`). An `ephemeral_helper` add-on (e.g. remote-access's `rdp-adapter`) is a short-lived, one-shot binary the agent does **not** run or supervise. The dispatch: - stages + capability-grants the binary (reusing `stageAndCapability` — so it benefits from tarball delivery, setcap, and rollback); - registers its resolved path so the consuming subsystem can spawn it on demand (`EphemeralHelperPath(id)`); - on reconcile, deregisters a helper whose assignment was disabled/removed (the staged binary stays on disk; nothing system-level was installed). `classifyAddonSupervision` now routes `ephemeral_helper` to a dedicated `addonDispatchEphemeral`; the now-unused `addonDispatchExternalUnimplemented` placeholder is removed since every supervision model is handled. ## Also: tasks.md reconciliation Brought `add-native-addon-delivery-models/tasks.md` current — **3.1** (systemd dispatch, merged #3467) and **1.2 agent-half** (tarball extraction, merged #3468) are marked done, plus **3.2** and **5.2** here. Only **two** tasks remain in the change, both build/packaging: **1.1** (carve `serviceradar-netprobe` out of the base agent) and **1.2 build-half** (produce the signed per-arch tarball + os-package template). ## Verification Unit-tested: ephemeral registry remember/lookup/reconcile, supervision classification. `go build`/`vet`/`golangci-lint` clean. (No system-level side effects to host-verify — the agent only stages + registers a path; the staging/setcap path it reuses was host-verified in prior slices. Wiring remote-access to call `EphemeralHelperPath` is part of remote-access's own migration.) 🤖 Generated with [Claude Code](https://claude.com/claude-code)
feat(agent): ephemeral-helper add-on supervision (delivery-models 3.2) (#3425)
Some checks failed
Secret Scan / gitleaks (pull_request) Successful in 30s
lint / lint (push) Successful in 1m18s
CI / build (pull_request) Failing after 1m49s
lint / lint (pull_request) Successful in 1m49s
Golang Tests / test-go (push) Failing after 2m35s
d4c4463205
Completes the agent-side supervision coverage. ephemeral_helper add-ons (e.g.
remote-access's rdp-adapter) are short-lived one-shot binaries the agent does not run
itself: the dispatch stages + capability-grants the binary (reusing stageAndCapability)
and registers its resolved path so the consuming subsystem can spawn it on demand
(EphemeralHelperPath). Reconciliation deregisters a helper when its assignment is
disabled/removed. config_toggle remains a compiled-in acknowledgement.

classifyAddonSupervision now routes ephemeral_helper to a dedicated addonDispatchEphemeral
(the unused addonDispatchExternalUnimplemented placeholder is removed — every supervision
model is now handled).

Also reconciles the delivery-models tasks.md to current reality (3.1 systemd dispatch and
1.2 agent-side tarball extraction are merged; 3.2 + 5.2 done here). Remaining in the
change: the base-agent packaging carve (1.1) and the build-side production of the signed
per-arch tarball / os-package template (1.2 build half).

Unit-tested: ephemeral registry/reconcile, classify; build/vet/golangci-lint clean.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
mfreeman451 left a comment

lgtm

lgtm
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
carverauto/serviceradar!3469
No description provided.