feat(agent): report per-add-on version + arch in capability status (#3425) #3489

Merged
mfreeman451 merged 1 commit from feat/addon-status-version-arch into staging 2026-06-01 05:01:14 +00:00
Owner

What

Task 7.1 (add-agent-feature-sets) — the add-on capability status reported per-add-on state/health but dropped the version the manager already computes, and never reported arch. So the AddonStatus read model's version/arch columns stayed null and the Edge Ops drift card couldn't surface them.

  • proto SidecarStatus: add version (7) + arch (8); regenerate the Go stub. Wire-compatible (new optional scalar fields) — existing Go/Rust/Elixir consumers are unaffected.
  • agent addon.Status: add Arch (set to runtime.GOARCH at manager init, since the agent runs the arch-matching artifact); ToProtoStatuses now maps Version + Arch.
  • core AddonStatusIngestor: populate the (already-accepted, already-nullable) version/arch columns from the sidecar payload.
  • tests: ToProtoStatuses asserts version/arch; ingestor test asserts they land in the read model.

Why

Foundation for migrate-netprobe-to-native-addon §2.3 (netprobe sidecar-path version/arch + capture status) and the add-native-addon-edge-ops drift card — the per-add-on AddonStatus shape the Edge Ops UI consumes.

Validation

  • go test ./go/pkg/agent/addon/ (ToProtoStatuses) — green
  • go vet — clean
  • bazel build //proto:proto //go/pkg/agent/addon:addon — green (proto regen + new runtime stdlib import need no BUILD changes)
  • Elixir ingestor test is integration-gated (CNPG); the resource already accepts version/arch, the change passes two more map keys through the existing helper.

🤖 Generated with Claude Code

## What Task **7.1** (`add-agent-feature-sets`) — the add-on capability status reported per-add-on state/health but **dropped the version** the manager already computes, and **never reported arch**. So the `AddonStatus` read model's `version`/`arch` columns stayed null and the Edge Ops drift card couldn't surface them. - **proto** `SidecarStatus`: add `version` (7) + `arch` (8); regenerate the Go stub. Wire-compatible (new optional scalar fields) — existing Go/Rust/Elixir consumers are unaffected. - **agent** `addon.Status`: add `Arch` (set to `runtime.GOARCH` at manager init, since the agent runs the arch-matching artifact); `ToProtoStatuses` now maps `Version` + `Arch`. - **core** `AddonStatusIngestor`: populate the (already-accepted, already-nullable) `version`/`arch` columns from the sidecar payload. - **tests**: `ToProtoStatuses` asserts version/arch; ingestor test asserts they land in the read model. ## Why Foundation for `migrate-netprobe-to-native-addon` **§2.3** (netprobe sidecar-path version/arch + capture status) and the `add-native-addon-edge-ops` drift card — the per-add-on `AddonStatus` shape the Edge Ops UI consumes. ## Validation - `go test ./go/pkg/agent/addon/` (ToProtoStatuses) — green - `go vet` — clean - `bazel build //proto:proto //go/pkg/agent/addon:addon` — green (proto regen + new `runtime` stdlib import need no BUILD changes) - Elixir ingestor test is integration-gated (CNPG); the resource already accepts `version`/`arch`, the change passes two more map keys through the existing helper. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
feat(agent): report per-add-on version + arch in capability status (#3425)
Some checks failed
Helm Lint / Helm Lint (pull_request) Successful in 18s
Secret Scan / gitleaks (pull_request) Successful in 51s
Rust Add-on Interop Test / interop (push) Successful in 2m32s
lint / lint (push) Successful in 2m40s
lint / lint (pull_request) Successful in 2m19s
Golang Tests / test-go (push) Successful in 3m52s
CI / build (pull_request) Failing after 15m13s
Elixir Quality / Elixir Quality (pull_request) Failing after 29m18s
b2d30c20a4
Task 7.1: the add-on capability status reported per-add-on state/health but
dropped the version the manager already computes, and never reported arch — so
the AddonStatus read model's version/arch columns stayed null and Edge Ops drift
couldn't show them.

- proto SidecarStatus: add `version` (7) + `arch` (8); regenerate the Go stub.
  Wire-compatible (new optional fields) so existing consumers are unaffected.
- addon.Status: add Arch (set to runtime.GOARCH at manager init, since the agent
  runs the arch-matching artifact); ToProtoStatuses now maps Version + Arch.
- core AddonStatusIngestor: populate the (already-accepted) version/arch columns
  from the sidecar payload.
- tests: ToProtoStatuses asserts version/arch; ingestor test asserts they land.

Foundation for migrate-netprobe §2.3 (netprobe sidecar-path version/arch +
capture status) and the Edge Ops drift card.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
mfreeman451 left a comment

lgtm

lgtm
mfreeman451 deleted branch feat/addon-status-version-arch 2026-06-01 05:01:15 +00:00
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!3489
No description provided.